개발자의 작업 노트 · 2026

조현석.

Full-stack
Developer

아이디어를 서비스로,
만든 다음의 문제까지.

조현석 프로필 사진
kenny0922@naver.com

풀스택 개발자 지원

GitHub (새 탭)

제품과 그 뒤의 시스템을 만듭니다.

기획부터 배포까지,
직접 만드는 개발자.

안녕하세요, 풀스택 개발자 조현석입니다. 서비스를 기획하고 화면·서버·데이터베이스를 구현해 배포했습니다.

만든 뒤에는 부하 시험으로 응답 지연의 원인을 찾고, 실시간 데이터가 어긋나거나 연결이 끊겼을 때의 복구를 설계·검증했습니다.

Looking For Friend01 / LFF

기존 친목 밖에서도 함께 게임할 친구를 찾는 서비스

2026.06 — 2026.09 · 확인된 Git 개발 기록 기준

유저가 적은 게임에서 이미 형성된 관계 밖의 새 친구를 찾기 어렵다고 느껴 시작했습니다. 게임·태그 탐색부터 상대의 수락을 거친 DM까지 연결했습니다.

맡은 역할
제품 기획부터 화면·서버·DB 설계와 구현, 테스트·배포·운영 대응까지 서비스 전체 개발을 맡았습니다.
집중한 문제
요청이 몰리는 상황을 고려한 시스템 구조와 부하 제어에 집중했습니다. 검색·인증·반복 조회의 비용, 데이터 정합성과 실패 복구를 함께 다뤘습니다.
직접 한 일
로그인·프로필·탐색·DM·관리 기능을 구현했습니다. 검색 쿼리·인덱스, 인증 왕복·집계, 실행 수·대기열을 개선하고 부하·권한·복구를 검증했습니다.
결과
서비스를 구현·배포하고, 로컬 검색·브라우저 시험과 Preview·고유 인증 세션 분산 시험으로 성능과 남은 한계를 확인했습니다.

React · React Router · TypeScript · Supabase · PostgreSQL · Playwright · Vercel

문서 OCR 학습 플랫폼02 / OCR

MAYEYE · 공공문서의 보정 결과를 추가 학습 데이터로

2025.07 ~ 2025.09 · 작업 기간 약 1개월 반 · MAYEYE 인턴십 팀 프로젝트

텍스트 추출이 어려운 공공문서의 접근성 문제에서 출발했습니다. 직원들이 OCR 결과를 보정하고 그 라벨을 추가 학습에 재사용하는 작업 환경을 만들었습니다.

맡은 역할
OCR 라벨링 웹, 직원·관리자 및 문서 관리, 추가 학습 자동화와 GPU 실행 코드를 맡았습니다.
집중한 문제
반복되는 문서 보정이 일회성 작업으로 끝나지 않고 다음 학습의 입력이 되도록 연결했습니다.
직접 한 일
페이지별 영역·텍스트 편집, 계정·문서 할당·관리, 보정 데이터의 학습 입력 준비와 실행 코드를 구현했습니다.
결과
영역·텍스트 보정 웹, 직원·관리자 및 문서 관리 기능, 보정 데이터의 학습 입력 준비·GPU 실행 코드를 만들었습니다.

React · TypeScript · PDF.js · FastAPI · PaddleOCR · PP-StructureV3 · PostgreSQL · Supabase Storage

노래 트레이닝 AI03 / MOBILE

SingSang · 내 목소리에 맞춰 연습하는 모바일 팀 프로젝트

2025.04 ~ 2025.05 · 작업 기간 약 1개월 · 4인 팀 · 팀장

음색에 맞는 노래를 찾고, 자신의 목소리로 변환한 보컬을 들으며 연습하는 서비스를 만들었습니다. 팀은 추천·보컬 변환·음정·박자 피드백을 연결했습니다.

맡은 역할
팀장으로 전체 시스템·API와 추천용 데이터 수집·가공을 맡고, 인증·녹음·저장소와 GPU 학습을 연결했습니다.
집중한 문제
사용자의 녹음이 개인 음성 모델의 학습으로 이어지게 하고, 입력 분량에 맞춘 훈련 조건을 고려했습니다.
직접 한 일
클라우드 GPU 자동 학습을 연동하고 RVC V2 훈련 조건을 조정했습니다. 추천 데이터의 가수 수와 음성 분량 분포도 함께 점검했습니다.
결과
사용자 녹음을 GPU 자동 학습으로 연결하고 추천용 데이터를 수집·가공했습니다. 팀 발표에서는 보컬 변환 재생과 연습 결과 조회를 시연했습니다.

Flutter · Python · FastAPI · AWS S3 · RVC V2

도전 버튜버04 / DESKTOP

캐릭터와 목소리로 방송을 시작하는 데스크톱 팀 프로젝트

팀 프로젝트 · 담당: 음성 변조 / 서버 구현

팀은 아바타 생성·얼굴 추적·음성 변조·방송 연동을 한 앱에서 연결했습니다. 저는 음성 파일을 받아 학습 요청과 모델 사용으로 이어지는 서버 경로를 맡았습니다.

맡은 역할
음성 변조와 서버 구현을 맡아, 음성 업로드부터 학습 요청·모델 산출물 조회까지 연결했습니다.
집중한 문제
서로 다른 음성 입력 형식을 학습 입력으로 정리하고, 준비된 모델을 다시 사용할 수 있는 경로에 집중했습니다.
직접 한 일
WAV 변환·S3 저장·원격 학습 요청·산출물 조회 API를 구성하고, 기존 Applio/RVC 로직을 활용해 모델 호환 조건을 검사하고 가중치를 결합했습니다.
결과
음성 입력·학습 요청·산출물 조회와 모델 가중치 블렌딩을 구현했습니다. 아바타·리깅·주요 UI는 팀원들의 기여입니다.

Python · FastAPI · ffmpeg · RVC · PyTorch · AWS S3 · Runpod

집중한 문제와 직접 바꾼 것

01요청을 나눠 측정하고 인증 왕복을 줄였습니다LFF · Preview p99 1,253ms → 492.1ms 관측 · 6세션·50 VU

내 역할LFF의 개발과 검증을 책임지며, 느린 요청의 원인을 계측하고 인증 경로를 수정했습니다.

집중한 문제DB는 빠른데 알림·메뉴 조회가 느린 원인을 찾기 위해, 실제 앱 요청의 인증과 RPC 시간을 나눠 측정했습니다. 최신 사용자 레코드가 필요 없는 읽기 경로에서 인증 서버 왕복을 줄일 수 있다고 판단했습니다.

직접 바꾼 점해당 경로에 JWT claims 검증과 공유 verifier를 적용해 JWKS 캐시를 재사용했습니다. 데이터 접근 권한은 RPC·RLS에서 계속 확인하도록 했습니다.

확인한 결과6개 인증 세션을 공유한 50 VU Preview 비교에서 p99는 1,253ms → 492.1ms로 관측됐습니다. 짧은 실행의 비교이며 통제된 A/B 시험은 아닙니다. 후속 분산 시험의 목표 미달 항목도 상세 글에 기록했습니다.

계측·인증 개선과 측정 범위 읽기
02OCR 보정 결과를 추가 학습으로 연결했습니다MAYEYE · 문서 보정의 결과를 다음 학습에 재사용

내 역할MAYEYE 인턴십에서 라벨링 웹, 직원·관리자 및 문서 관리, 추가 학습 코드를 맡았습니다.

집중한 문제문자 단위의 보정과 검수가 반복됐습니다. 원본과 결과를 비교해 수정하고, 그 라벨을 다음 학습에 재사용할 수 있도록 연결하는 데 집중했습니다.

직접 바꾼 점라벨링 웹, 직원·관리자 계정과 문서 할당·관리를 구현했습니다. 축적한 데이터를 PaddleOCR 추가 학습 입력으로 준비하는 자동화 로직과 GPU 학습 실행 코드를 연결했습니다.

확인한 결과문서 보정으로 만든 라벨을 추가 학습에 활용할 수 있는 흐름을 구현했습니다. 학습 전후 정확도와 작업 시간 절감 효과는 별도로 측정된 수치가 없습니다.

라벨링·추가 학습 연결 설계 읽기
03연결이 끊긴 뒤 읽음 상태를 다시 맞췄습니다LFF · 메시지와 읽음 상태를 DB에 남겨 다시 맞추기

내 역할LFF의 메시지·읽음 상태와 재연결 뒤의 재조회 경로를 설계하고, 로컬 브라우저에서 복구를 검증했습니다.

집중한 문제백그라운드·연결 끊김으로 이벤트를 놓쳐도 상태를 복구할 기준이 필요했습니다. 메시지·마지막 읽은 위치·미읽음 상태를 DB에 저장해 복구의 기준으로 삼았습니다.

직접 바꾼 점Realtime을 재조회 신호로 사용하고, 재연결·포커스 복귀 때 필요한 데이터를 다시 읽도록 했습니다. 읽음 위치는 이전 값보다 뒤로 돌아가지 않게 처리했습니다.

확인한 결과격리된 로컬 Chromium에서 백그라운드·재연결·이벤트 유실 뒤의 상태 복구를 검증했습니다. headless 환경의 visibility·focus 신호는 테스트에서 강제한 조건입니다.

DM 복구 설계와 검증 근거 읽기

MAYEYE 인턴십

2025.05 ~ 2025.09