서비스 운영
CodeLab Team의 웹 서비스와 서버를 살펴보며 배포, 로그 확인, 오류 대응 과정을 직접 경험하고 있습니다.
작은 불편도 그냥 지나치지 않고,
끝까지 작동하는 해결책으로 바꿉니다.
아이디어를 실제 서비스로 연결합니다.
2021년 엔트리로 시작해 Python 자동화 도구, 카카오톡·디스코드 봇, 웹 서비스로 범위를 넓혔습니다. 화면을 만드는 데서 끝내지 않고 API, 데이터베이스, 인증, 배포 환경까지 직접 연결합니다. 누군가가 한 번 써 보고 끝내는 결과물보다, 반복해서 찾아도 불편하지 않은 흐름을 만드는 데 관심이 있습니다.
배포 이후의 문제까지 책임집니다.
예상하지 못한 사용자 입력과 서버 장애를 겪으며 로그, 예외 처리, 모니터링의 중요성을 배웠습니다. 오류를 재현하고 원인을 기록한 뒤 같은 문제가 반복되지 않도록 구조를 개선합니다. 기능을 출시하는 순간이 끝이 아니라, 실제 사용 속에서 더 나은 답을 찾아가는 시작이라고 생각합니다.
공격자의 관점으로 구현을 다시 봅니다.
인증과 권한, 입력값 검증, 세션과 서버 설정을 점검합니다. 취약점을 찾는 데서 그치지 않고 왜 발생했는지 추적해 안전한 코드와 운영 설정으로 연결합니다. 편리함과 안전성 중 하나를 포기하는 대신, 처음부터 둘을 함께 설계하는 개발자가 되고 싶습니다.
요구사항을 작동하는 결과로 바꿉니다.
외주와 CodeLab Team 활동에서 모호한 요청을 기능 단위로 정리하고, 우선순위를 합의해 첫 버전을 빠르게 공유했습니다. 피드백을 반영할 수 있는 구조와 설명 가능한 코드를 중요하게 생각합니다. 함께 일하는 사람이 다음 결정을 쉽게 내릴 수 있도록 맥락을 남기는 일도 개발의 일부라고 믿습니다.
지금의 정하윤
CodeLab Team의 웹 서비스와 서버를 살펴보며 배포, 로그 확인, 오류 대응 과정을 직접 경험하고 있습니다.
요청과 응답을 직접 분석하고 인증, 권한, 입력값 처리에서 문제가 생기는 이유를 코드와 함께 공부합니다.
반복되는 작업이나 관리하기 불편한 과정을 발견하면 먼저 작은 버전으로 만들고 실제로 사용하며 고칩니다.
처음에는 코드를 실행했을 때 화면이 바뀌는 것만으로도 재미있었습니다. 지금은 제가 만든 서비스가 실제 사람에게 어떤 도움을 주는지, 그리고 안전하고 안정적으로 계속 사용할 수 있는지를 더 중요하게 생각합니다.
블록 코딩으로 처음 프로그램을 만들었습니다. 아이디어를 직접 움직이는 결과물로 바꿀 수 있다는 점에 빠져 개발을 계속 공부하게 됐습니다.
반복되는 작업을 줄이는 스크립트와 간단한 프로그램을 만들며 조건, 데이터 처리, API 사용과 오류를 추적하는 방법을 익혔습니다.
카카오톡 봇과 디스코드 봇을 만들고 직접 운영했습니다. 사용자의 예상하지 못한 입력과 서버 오류를 경험하며 배포 이후의 관리가 중요하다는 것을 배웠습니다.
프론트엔드, 백엔드, 데이터베이스를 연결해 하나의 서비스를 완성하고 Linux, Docker, Nginx를 이용한 배포와 서버 운영까지 범위를 넓혔습니다.
요구사항을 정리해 실제 결과물로 납품하는 경험을 쌓고 있습니다. 동시에 웹 해킹을 공부하며 취약점이 발생하는 구조와 이를 막는 안전한 구현 방법을 함께 익히고 있습니다.
인증, 요청 제한, 이상 패턴 기록을 하나의 흐름으로 관리하는 API 보안 게이트웨이입니다.
여러 리눅스 서버의 배포 상태와 장애 기록, 롤백 흐름을 한 화면에서 관리하는 운영 플랫폼입니다.
공공 API의 누락되거나 잘못된 값까지 고려해 환기 장치를 안정적으로 제어하는 IoT 시스템입니다.
API 키와 환경 변수를 로컬에서 암호화해 보관하고 필요한 실행 환경에 안전하게 주입하는 CLI 도구입니다.
한 언어에 영역을 가두지 않습니다. 웹 프론트엔드와 백엔드부터 자동화, 서버 도구까지 목적에 맞는 언어를 선택해 구현합니다.
REST API의 인증과 권한을 미들웨어로 분리하고, 예외 응답과 로그 형식을 통일해 운영 중 원인을 추적하기 쉽게 구성했습니다.
서버 상태와 배포 이벤트가 즉시 반영되는 대시보드를 만들고, 연결이 끊겼을 때 재연결과 누락 데이터 복구 흐름을 구현했습니다.
요청 제한과 캐시에 Redis를 사용하고, 관계형 데이터의 인덱스와 쿼리 실행 계획을 확인해 느린 조회를 개선한 경험이 있습니다.
서비스를 컨테이너로 배포하고 리버스 프록시, HTTPS, 프로세스 로그와 롤백 과정을 직접 구성해 운영했습니다.
외부 API 데이터 검증과 반복 작업 자동화 도구를 제작했으며, 실패 조건과 재시도 정책을 테스트 가능한 함수로 분리했습니다.
Burp Suite로 요청 흐름을 분석하고 인증·권한·입력값 처리 문제를 재현한 뒤, 서버 코드와 설정에서 수정 방법을 찾습니다.
기술부터 고르기보다 누가 어떤 상황에서 불편한지 먼저 확인합니다. 작동하는 첫 버전을 빠르게 만든 뒤 실제 사용 과정에서 발견한 문제를 기록하고 고칩니다.
사용자와 상황, 해결해야 할 한 가지 문제를 문장으로 정리합니다. 꼭 필요한 흐름이 아니면 첫 버전에서 제외합니다.
화면만 만드는 데서 멈추지 않고 API, 데이터, 인증과 배포 환경까지 실제로 사용할 수 있는 상태로 연결합니다.
잘못된 입력, 권한 부족, 외부 API 오류와 서버 재시작처럼 정상 흐름 밖의 상황을 직접 재현해 봅니다.
로그와 사용자 반응을 바탕으로 막히는 지점을 찾습니다. 수정한 이유와 영향을 기록해 다음 변경이 쉬운 구조로 만듭니다.
제가 되고 싶은 개발자는 새로운 기술을 많이 아는 사람에서 멈추지 않습니다. 사용자의 문제를 정확히 듣고, 필요한 범위만큼 빠르게 만들고, 문제가 생겼을 때 끝까지 원인을 찾아 고칠 수 있는 사람입니다. 빠르게 만드는 능력에 안전성과 완성도를 더해, 잠깐 보여 주는 결과물이 아니라 사람들이 꾸준히 찾는 서비스를 직접 만들고 운영하는 것이 목표입니다.
복잡한 절차나 반복되는 일을 단순하게 만들고, 사용자가 설명서를 읽지 않아도 바로 쓸 수 있는 도구를 만들고 싶습니다. 좋은 기능보다 사용자의 다음 행동을 자연스럽게 만드는 경험을 먼저 고민하겠습니다.
기능을 모두 만든 뒤 보안을 추가하는 방식에서 벗어나 인증, 권한, 입력값 검증과 데이터 보호를 설계 단계부터 고려하고 싶습니다. 사용자가 보안 때문에 불편을 느끼지 않으면서도, 서비스가 기본을 지키도록 만드는 것이 제 기준입니다.
모니터링과 로그, 캐시, 데이터베이스 성능을 공부해 사용자가 늘어나도 안정적으로 동작하고 문제에 빠르게 대응할 수 있는 서비스를 만들고 싶습니다. 장애를 숨기기보다 빠르게 알아차리고, 원인을 공유하고, 다시 일어나지 않게 만드는 운영을 배우겠습니다.
해커톤과 공모전, 팀 프로젝트에서 아이디어를 빠르게 MVP로 구현하고 다른 역할의 팀원들과 피드백을 주고받으며 완성도를 높이고 싶습니다. 혼자 잘 만드는 개발자를 넘어, 팀이 더 좋은 결과를 내도록 연결하는 동료가 되는 것이 목표입니다.
주제와 필요한 역할이 정리되어 있다면 초기 기획부터 구현, 배포까지 함께할 수 있습니다. 특히 짧은 시간 안에 작동하는 첫 버전을 만들고 계속 개선하는 프로젝트를 좋아합니다.
문제를 빠르게 정의하고 꼭 필요한 기능을 골라 발표 가능한 MVP까지 구현합니다. 프론트엔드와 백엔드 사이의 빈 부분을 연결하는 역할을 맡을 수 있습니다.
MVP · Full-stack · Demo웹 서비스의 공격 표면을 살펴보고 인증과 권한, 입력값 처리, 서버 설정에서 발생할 수 있는 문제를 분석합니다. 취약점을 찾는 것뿐 아니라 수정 방향까지 함께 고민합니다.
Web Hacking · Linux · Audit관리 도구, 자동화, 커뮤니티, 봇처럼 실제 사용자가 있는 서비스를 기획하고 개발합니다. 요구사항 정리부터 API, 데이터베이스, 배포와 운영까지 전체 흐름을 볼 수 있습니다.
Product · API · Operations원하는 결과와 우선순위를 먼저 정리하고, 진행 상황을 공유하며 수정 가능한 형태로 작업합니다. 유지보수하기 어렵거나 설명할 수 없는 코드는 남기지 않는 것을 중요하게 생각합니다.
Planning · Delivery · Support개발을 시작한 계기부터 프로젝트를 진행하는 방식까지, 포트폴리오만으로는 알기 어려운 내용을 정리했습니다.
2021년 엔트리로 처음 코딩을 시작했습니다. 화면 속 결과를 직접 움직일 수 있다는 점이 재미있어 Python과 JavaScript를 공부했고, 이후 자동화 도구와 실제 사용자가 있는 서비스로 범위를 넓혔습니다.
사람들이 일상에서 편하게 사용할 수 있고, 사용 전과 후의 차이가 분명한 프로젝트에 관심이 많습니다. 반복되는 일을 줄이는 자동화 도구, 안전하게 사용할 수 있는 웹 서비스, 운영 과정의 문제를 해결하는 개발자 도구를 좋아합니다.
기술이나 기능 목록보다 누가 어떤 상황에서 불편함을 느끼는지 먼저 확인합니다. 해결할 문제와 핵심 사용 흐름을 정리한 뒤, 빠르게 작동하는 첫 버전을 만들고 사용하면서 개선합니다.
오류 로그와 예상하지 못한 입력을 확인하고, 사용자가 실제로 막히는 지점을 찾습니다. 기능이 동작하는 것만큼 문제를 재현하고 유지보수하기 쉬운 구조로 고치는 과정을 중요하게 생각합니다.
웹 요청과 인증 구조를 이해하고, 입력값 처리나 권한 확인 과정에서 생길 수 있는 취약점을 공격자와 개발자 양쪽 관점에서 살펴봅니다. 발견하는 데서 끝내지 않고 왜 문제가 생겼는지 분석하고, 안전한 구현과 서버 설정으로 연결하는 연습을 하고 있습니다.
아이디어 정리, 디자인 피드백, 막힌 부분을 검토하는 보조 도구로 활용합니다. 다만 적용한 코드와 구조는 직접 이해하고 설명할 수 있어야 하며, 핵심 로직과 최종 판단은 직접 책임지는 것을 원칙으로 합니다.
누군가에게 “이거 편하다”, “이 덕분에 도움이 됐다”는 말을 들을 수 있는 개발자가 되고 싶습니다. 이를 위해 문제를 빠르게 해결하는 구현력과, 왜 그렇게 만들었는지 설명할 수 있는 사고력을 함께 키우고 있습니다. 사용하기 좋은 화면, 안정적인 서버, 기본을 지키는 보안을 따로 보지 않고 하나의 제품 경험으로 연결하겠습니다. 결국에는 사용자의 일상을 조금 더 가볍게 만들고, 팀에는 신뢰할 수 있는 동료로 남는 개발자가 되는 것이 목표입니다.