전체 글 8

사라진 12월의 fix: eeegrd 사이트 회귀 버그 추적기

어떤 회귀는 발견되는 데 1달이 걸렸고, 발견된 뒤에도 진짜 원인을 찾는 데 한 시간이 더 걸렸다. 그 회귀를 만든 사람은 나였다.들어가며안녕하세요, SCG 장재원입니다.오늘은 작업 중 코드가 이전 형상 (버전) 으로 돌아가게 된 계기와, 그에 대한 회고 및 반성을 주제로 글을 써볼까 합니다. 회고록 형식으로 쓴 글이어서 ‘~다’ 로 문장을 마무리한 점 양해 부탁드립니다! 그럼 시작! 이번 학기에 나는 종합설계프로젝트(전전 졸업평가 강좌)를 듣고 있었다. 어느 날 같이 팀 프로젝트를 하는 멤버들이 작년 작품을 참고하려고 전자전기공학부 졸업작품 전시회 페이지인 eeegrd.skku.edu에 접속했는데, 설문조사 페이지에서 이메일 인증이 안 되어 사이트에 들어가지 못한다고 알려왔다. 이상한 일이었다. 분..

Troubleshooting 2026.05.18

DNS 관리 도구를 만들다가, 결국 DNS 서버를 만든 이야기 (1)

0. 들어가며안녕하세요~ 시스템컨설턴트그룹 25기 인프라 담당 권민성입니다.오늘은 DNS 관리 도구를 만들다가, 결국 유사 DNS 서버를 만들게 된 이야기를 해보려고 합니다. DNS란?우선 DNS(Domain Name System)은 우리가 사용하는 도메인 이름을 실제 서버의 IP 주소로 변환해 주는 시스템입니다.예를 들어, 우리가 브라우저에 google.com을 입력하면, 컴퓨터는 해당 도메인의 IP 주소를 알아내기 위해 DNS 서버에 질의를 보내고, 그 결과로 얻은 IP로 실제 서버와 통신을 하게 됩니다.이때 도메인에 대한 실제 정보를 가지고 있고, 요청에 대해 응답을 해주는 서버를 DNS 서버라고 합니다. 대표적으로 많이 사용되는 DNS 서버로는 ISC에서 개발한 BIND9이 있습니다. 실제로 ns..

Infra 2026.05.15

Postfix에서 메일을 Slack으로 포워딩하는 방법

안녕하세요, 시스템컨설턴트그룹28기 김준호입니다.시스템컨설턴트그룹에서는 Postfix 기반의 메일 서버를 운영하며 부원들에게 각자의 이메일 계정을 발급하고 있습니다. 외부와의 소통이나 여러 요청 사항은 주로 회장메일을 통해 주고받습니다.기존에는 회장메일로 도착한 메일을 담당자가 직접 확인한 뒤 필요한 내용을 부원들에게 공유했지만, 직접 메일함에 접속해야 하는 번거로움과 부원들에 대한 접근성이 낮다는 문제가 있었습니다.이를 개선하기 위해 회장메일로 들어온 이메일을 Slack 채널로 자동 전달하는 작업을 진행했는데, 그 과정에서 있었던 일들을 공유하려 합니다.Postfix란?Postfix는 리눅스 환경에서 널리 사용되는 메일 전송 에이전트입니다. 메일을 수신하거나 다른 메일 서버로 전달하는 역할을 하며, 설..

Infra 2026.05.10

웍실 네트워크 개편

안녕하세요! 시스템컨설턴트그룹 30기 인프라 담당 신동현입니다. 얼마 전 양현준님과 함께 미루고 미뤄왔던 웍실 네트워크 개편을 드디어 진행했습니다. 기존 웍실 네트워크는 사실 언제 터질지 모르는 시한폭탄이었습니다. 가정용 공유기나 스위치들이 직렬로 주렁주렁 물려있어서, 중간에 하나만 죽어도 하위 네트워크 전체가 끊기는 구조였거든요. 게다가 웍실의 업스트림 포트는 두 개나 되는데, 정작 시스코 스위치에는 하나만 연결해두고 아까운 자원을 낭비하고 있었습니다.'고성능' 라우터 투입이번 개편의 핵심 중 하나는 라우터 분리였습니다. 기존 무선 AP가 기기 50여 대를 감당하다 보니 자꾸 뻗어버리더라고요. 그래서 웍실 구석에 굴러다니던 데스크톱을 라우터로 개조해 투입했습니다. 무려 '브로드웰' 기반의 PC인데, ..

Infra 2026.04.03

8년 된 레거시 시스템의 에러를 추적한 과정 - 로깅 한 줄의 힘

0. 들어가며안녕하세요 :) 시스템컨설턴트그룹 27기 백엔드 개발을 하고 있는 노주희입니다. 운영 중인 서비스에서 에러가 발생했다는 연락을 받았을 때, 가장 먼저 확인하는 것은 로그입니다. 그런데 로그에 아무런 단서가 없다면 어떻게 해야 할까요? 이 글은 성균관대학교 소프트웨어융합대학의 졸업평가 시스템(연구논문작품시스템, 이하 cssys)에서 발생한 파일 업로드 500 에러를 추적하고 해결한 과정을 정리한 것입니다. 로깅이 부재한 레거시 시스템에서 어떻게 원인을 좁혀나갔는지, 그리고 그 과정에서 느낀 점을 공유합니다.1. 배경서비스 소개cssys는 소프트웨어학과 졸업평가 연구논문작품의 서류 제출 및 심사 과정이 이루어지는 시스템입니다. 학생들은 서약서, 제안서, 중간보고서, 최종보고서 등을 이 시스템을 ..

Troubleshooting 2026.03.22

MinIO에 다량의 파일을 빠르게 업로드하는 방법

안녕하세요! 시스템컨설턴트그룹 28기 인프라 담당 양현준입니다.오늘은 MinIO를 다루면서 겪은 일과 다량의 파일을 효율적으로 MinIO에 업로드하는 방법에 대해 정리했습니다. MinIO란?MinIO는 고성능 오픈소스 오브젝트 스토리지로 Amazon S3와 호환되는 API를 제공하는 오브젝트 스토리지입니다.소스코드가 AGPLv3 라이선스 하에 공개되어 있는 오픈소스 소프트웨어입니다. MinIO Object BrowserMinIO는 관리자 홈페이지(Object Browser)를 제공합니다. 이를 통해 손쉽게 MinIO 클러스터를 관리하고, 오브젝트 브라우저 기능을 통해 클러스터에 파일을 업로드하고 다운로드 받을 수 있습니다. 파일 마이그레이션을 하는 이유저희 단체에서 기존에 운영하던 애플리케이션이 있습니다..

Infra 2026.03.08

[개발로그] 웹 개발 단체가 네이티브 앱을 만들어야 할 때 벌어지는 일 -React + Tauri

"손전등 켜는 거… 웹에서는 안 되잖아요?"이 한마디에서 시작된, SCG의 모바일 앱 개발 대장정을 기록합니다.프롤로그: 새로운 의뢰, 그리고 낯선 영역어느 날, SCG에 새로운 프로젝트 의뢰가 들어왔습니다.요구사항을 정리해보니, 이건 단순한 웹사이트가 아니었어요. 푸시 알림, 생체 인증, 네이티브 UI 위젯, 앱스토어 배포까지. 지금까지 SCG가 해왔던 웹 개발의 영역을 한참 벗어나는 스펙이었습니다. 우리는 25년 동안 웹을 해온 단체입니다. React, Next.js, TypeScript — 이런 건 눈 감고도 합니다. 그런데 모바일 네이티브? iOS 빌드? APK 사이닝? 이건 처음이었어요. 보통 이런 상황에서 선택지는 두 가지입니다."외주 맡기자" 아니면, "우리가 직접 부딪혀보자." SCG는 당..

Frontend 2026.03.03

SCG 블로그를 개설합니다!

SCG 개발 블로그를 시작합니다안녕하세요, 성균관대학교 소프트웨어융합대학 학생 개발 단체 SCG(System Consultant Group)입니다.SCG는 올해로 25년째 운영되고 있는 단체로, 단과대학 내 서비스들을 직접 개발하고 유지보수하는 일을 하고 있습니다. 학교 시스템을 실제로 운영하면서 겪는 장애 대응, 인프라 관리, 코드 리뷰, 문서화 같은 경험들이 매 학기 쌓이는데요—사실 이런 내용들이 밖으로 잘 나가지 않는 게 늘 아쉬웠습니다. 그래서 이번에 개발 블로그를 열게 되었습니다.왜 블로그를 시작하나요?솔직히 말하면, 예전부터 "블로그 해야지"라는 이야기는 계속 나왔습니다. 근데 매번 흐지부지됐어요. 바쁘기도 하고, 글 쓰는 게 개발하는 것보다 훨씬 귀찮기도 하고요.그런데 매년 활동이 끝나고 나..

Culture 2026.02.25