
Backend · Full-stack
김민영 · 백엔드·풀스택 엔지니어
데이터 무결성과 운영 효율을 함께 설계하는 백엔드·풀스택 엔지니어
의료 데이터 연동 환경에서 데이터 정합성과 안정성을 우선으로 시스템을 설계해 왔습니다. C# .NET 기반 병원 시스템 개발부터 외부 플랫폼 연동, 저장 프로시저 최적화, 운영 화면 설계까지 수행했으며, PlanIt 프로젝트에서는 아키텍처 설계와 배포까지 리드하며 시스템 신뢰성과 확장성을 강화했습니다.
2025.09 - 2026.02 · API 인터페이스 설계 · DB 프로시저 · 연동 테스트
카카오 케어챗 병원 예약/진료 정보 연동
카카오 케어챗 플랫폼과 병원 시스템을 연결해 실시간 예약·대기·진료 정보 조회를 가능하게 한 연동 프로젝트.
- 응답
- 응답 성능 +30%
- E2E
- E2E 연동 테스트 체계

숫자로 보는 결과
- 9M
- 실무 경력 (헬스케어 IT 기업)
- 30%
- 쿼리 성능 개선
- 50%
- 유지보수 대응 속도 개선
- 100
- Lighthouse SEO 점수
대표 사례
무결성 · 성능 최적화

데이터 처리 아키텍처 최적화
사례 1 · 카카오 케어챗 연동
UNION 기반 조회 로직이 데이터 증가 시 시스템 부하와 응답 지연을 유발
- 실행 계획 분석으로 인덱스 스캔 저해 요소 제거
- WHERE 필터 선적용 + 비즈니스 로직 맞춤 프로시저로 쿼리 구조 재설계
응답 속도 30% 이상 향상 및 대규모 트래픽에서도 안정적 처리 체계 확보
- 그룹옵션 리스트상세 · 선검증 저장
유지보수 효율화 구조 개편
사례 2 · 옵션 관리 시스템
분산된 옵션 관리 체계로 설정 변경 시 프로젝트/위치 탐색 비용이 큰 상태
- 그룹-옵션 리스트-상세의 3단계 계층형 통합 관리 구조 설계
- 선 검증 후 저장 프로세스로 충돌·중복 발생 가능성 차단
운영 부서 기준 유지보수 대응 속도 50% 이상 단축

의료 데이터 무결성 방어 로직
사례 3 · 혈당 데이터 연동
중복 시퀀스 충돌로 누락/오염 가능성이 존재하는 실시간 인터페이스 환경
- 1차 유효성 검증 + 2차 시퀀스 충돌 방지의 다단계 검증 체계 도입
- 인터페이스 테이블 누락 없는 저장 보장 구조 설계
로직 결함으로 인한 누락을 최소화하고 데이터 정확도·의료 안정성 향상에 기여
경력
헬스케어 IT 기업 — 카카오 케어챗 병원 예약/진료 정보 연동
API 인터페이스 설계 · DB 프로시저 · 연동 테스트
C# WinForms · .NET · MS-SQL · REST API · JSON
- 카카오 케어챗 플랫폼 연동으로 실시간 예약·대기 순번·진료 내역 조회 기능 구축
- 다중 JOIN 기반 고성능 프로시저 개발 및 쿼리 튜닝으로 응답 성능 개선
- API 호출부터 DB 반영까지 End-to-End 통합 테스트로 연동 안정성 확보
헬스케어 IT 기업 — 병원 옵션 설정/그룹화 관리 화면
UI 개발 · 메타데이터 DB 설계
C# WinForms · .NET · MS-SQL
- 그룹-옵션-상세 3단계 계층 구조로 수백 개 설정값 관리 체계화
- 관리자 직접 CRUD 가능한 옵션 관리 툴로 유지보수 대응 속도 개선
- 선 검증 후 저장 프로세스로 설정 충돌·중복 데이터 발생 방지
헬스케어 IT 기업 — 혈당 기기 연동 및 데이터 관리
풀스택 개발 · 데이터 연동 로직 설계
C# WinForms · .NET · MS-SQL
- 외부 혈당 측정 기기와 병원 DB 간 실시간 인터페이스 설계
- 중복 시퀀스 방지를 위한 다단계 검증 체계 도입으로 데이터 정합성 강화
- 중간 테이블 기반 검토·이관 화면 및 원클릭 이관 프로세스 구축
PlanIt — 소셜 스크럼 SaaS
아키텍처 설계 · 배포 리딩 · 게이미피케이션 클라이언트
Next.js · TypeScript · NestJS · FastAPI · PostgreSQL · Unity 6 · C#
- JSON 매핑 기반 컴포넌트 구조로 유연한 화면 확장성 확보
- Metadata/Open Graph/Twitter Card 최적화로 Lighthouse SEO 100점 달성
- 배포 파이프라인 정비를 통해 안정적 릴리스 구조 확립
- 방꾸미기(Room Customize) 모듈 설계 — 사용자가 자기 공간을 꾸미며 머무는 장치 구현
- Unity 6 기반 점프게임 미니게임 개발 — 데이터 드리븐 어빌리티·캐릭터 시스템 설계
- 부천대학교 · 컴퓨터소프트웨어 전공 졸업 (2021.03 - 2024.02) · 학점 3.44/4.5
- 박문여자고등학교 · 졸업
- (과정평가형) 반응형웹 기반 Back-End/풀스택 개발자 과정 (개발 부트캠프, 2024.09 - 2025.03)
프로젝트
상세는 각 항목에서

2026.01 - 진행 중 · 핵심 개발자 · 풀스택 아키텍처
PlanIT

2025.09 - 2026.02 · API 인터페이스 설계 · DB 프로시저 · 연동 테스트
카카오 케어챗 병원 예약/진료 정보 연동
- 그룹옵션 리스트상세 · 선검증 저장
2025.07 - 2025.08 · UI 개발 · 메타데이터 DB 설계
병원 옵션 설정/그룹화 관리 시스템

2026.01 - 2026.02 · 풀스택 개발 · 데이터 연동 설계
혈당 기기 연동 및 데이터 관리 화면
- 업종 예시 10종예약 문의 · 후기썸네일 · SEO
2026.06 - 진행 중 · 풀스택 · 시스템 아키텍처 · 세일즈
해영랩 통합 판매 — 한·일 B2B 웹·시스템 제작 서비스

2026.04 - 2026.05 · 정보 구조 · 콘텐츠 · 프론트엔드
HAEYOUNGLAB Platform — 해영랩 공식 소개 사이트

2026.04 - 진행 중 · 정보 구조 설계 · 프론트엔드
Portfolio Platform

2026.02 - 2026.05 · Unity 클라이언트 개발 · 게임 시스템 설계
PlanIT 미니게임 — 점프게임
- 가구 카탈로그드래그 배치보상 잠금 해제
2026.02 - 2026.04 · 프론트엔드 모듈 설계 · 게이미피케이션 UX
PlanIT 방꾸미기 (Room Customize)
- 틱 기반 경제 엔진집 · 가구 강화 버프Firebase 랭킹
2026.03 - 진행 중 · 기획 · 게임 클라이언트 개발 (Unity → React Native)
비트코인 시뮬레이터 — 코인 투자·생활 시뮬레이션 게임
지원동기
의료 데이터 무결성을 책임지는 실무를 통해, 작은 데이터 오염이 비즈니스와 사용자에게 치명적 손실로 이어질 수 있음을 현장에서 체감했습니다.
이후 PlanIt 프로젝트에서 아키텍처 설계부터 배포까지 전 과정을 리드하며, 기술적 완성도가 비즈니스 신뢰로 연결되는 흐름을 경험했습니다.
겉으로 보이는 화려함보다 시스템 이면의 견고함을 중시하며, 서비스 확장기의 복잡한 리스크를 기술로 해결하는 팀에 기여하고자 합니다.
- 01
데이터 정합성 중심 설계
- 예외 상황에서도 누락·충돌을 방지하는 방어적 로직 설계
- 의료/연동 도메인에서 무결성을 서비스 신뢰도로 연결
- 02
성능 최적화 및 운영 효율
- 실행 계획 기반 쿼리 튜닝 및 프로시저 최적화 경험
- 운영 도구 구조화로 유지보수 대응 속도 개선
- 03
빠른 학습과 실무 투입
- 외부 플랫폼 API 연동부터 DB 반영까지 End-to-End 수행
- 새로운 서비스 구조를 빠르게 파악하고 안정적 코드 기여
입사 후 포부
- 01
초기 온보딩 기간에 서비스 구조와 코드베이스를 신속히 파악해 안정적인 코드 기여
- 02
지표 기반 성능 최적화와 운영 자동화로 팀의 개발·운영 생산성 강화
- 03
예외 상황을 먼저 고려하는 방어적 설계를 내재화해 서비스 신뢰도 향상
기술
.NET
Node.js
Spring
React
TypeScript
PostgreSQL
MySQL
Next.js
Unity
Python
Git
Vercel
- Backend
- .NET (C#) · Node.js · Java · Spring Boot · MyBatis · JPA
- Frontend
- React · TypeScript · JavaScript · HTML5 · CSS3 · jQuery
- Database
- MS-SQL · PostgreSQL · MySQL · Oracle · Stored Procedure
- Infra / API
- REST API · JSON · Git · Vercel · Railway
- Game / Etc
- Unity 6 · C# (Game) · JSP · Thymeleaf · Python
실무 노트
Day 단위 29건
리뷰·설계·운영에서 검증한 것만 Day 단위로 남깁니다. 공부일지가 아니라, 다시 쓸 수 있는 기록입니다.
- Day 12026-05-01코드 리뷰
저장 프로시저 리뷰 — 실행 계획 전에 스키마를 먼저 의심한다
레거시 MS-SQL 연동 모듈 PR 리뷰
- 관찰 ·
- 쿼리 튜닝 제안만 올라왔는데, 조인 키 타입 불일치로 인덱스가 아예 타지 않는 케이스였습니다.
- 조치 ·
- 실행 계획 캡처 전에 스키마·FK·NULL 처리를 표로 정리해 리뷰 코멘트에 첨부. 인덱스 추가 제안은 보류.
성능 이슈 PR은 '쿼리 문장'보다 데이터 계약(타입·키·NULL) 부터 본다.
MS-SQL · 리뷰 · 실행 계획
- Day 22026-05-02설계
UI 참조를 SerializeField로 — 코드가 Find로 줍지 않게 한다
비트코인 시뮬레이터(Unity) 패널 프리팹화 마무리 — UIManager 연결
- 관찰 ·
- 패널 스크립트가 자식 오브젝트를 이름으로 찾는 구조라, 프리팹 계층을 조금만 바꿔도 런타임 NullReference가 났습니다.
- 조치 ·
- 패널 내부 UI 참조를 전부 SerializeField로 전환해 Inspector에서 조립하도록 변경 — 계층 변경이 컴파일·프리팹 연결 단계에서 드러나게.
Unity에서 Find/GetChild 참조는 런타임 지뢰 — 참조는 직렬화 필드로 명시한다.
Unity · 프리팹 · SerializeField관련 프로젝트
- Day 32026-05-04기타
다크모드 첫 페인트 깜빡임(FOUC) — 테마는 렌더 전에 결정한다
해영랩 플랫폼 메뉴바 다크모드(ThemeProvider) 적용
- 관찰 ·
- 새로고침 시 라이트 테마가 한 프레임 먼저 그려진 뒤 다크로 전환되는 깜빡임이 있었습니다. 테마 결정이 클라이언트 마운트 이후라서였습니다.
- 조치 ·
- 테마 클래스 부착을 hydration 이전으로 옮기고, 마운트 전에는 테마 의존 UI(토글 아이콘)를 렌더하지 않도록 mounted 가드를 추가.
사용자 설정(테마·언어)은 '첫 페인트 전에 결정'이 기본값 — 마운트 후 보정은 항상 깜빡인다.
Next.js · next-themes · FOUC관련 프로젝트
- Day 42026-05-06설계
다국어 컨텍스트 — 번역 키가 UI 구조를 따라가면 안 된다
해영랩 플랫폼 LanguageContext(한/영) 구성
- 관찰 ·
- 화면 단위로 번역 키를 만들었더니 같은 문구가 페이지마다 중복되고, 문구 수정 시 여러 키를 같이 고쳐야 했습니다.
- 조치 ·
- 키를 화면 기준에서 도메인 기준(nav.*, product.*, contact.*)으로 재편하고 공통 문구를 한 키로 통합.
번역 키는 화면이 아니라 의미 단위로 — 화면은 바뀌어도 의미는 남는다.
i18n · React Context관련 프로젝트
- Day 52026-05-07설계
점프게임 전체 프리팹화 — 되돌린(Revert) 것도 기록이다
PlanIT 점프게임(Unity) Manager·Player·UI 프리팹화 작업
- 관찰 ·
- 한 번에 전부 프리팹으로 묶었더니 씬 오브젝트 ↔ 프리팹 내부 참조가 경계에서 끊겨, 어디가 깨졌는지 추적이 안 되는 상태가 됐습니다.
- 조치 ·
- 커밋을 Revert로 원복하고, Manager → Player → UI 순서로 참조 방향을 한쪽(씬→프리팹)으로 정리하며 단계별 재적용.
대형 구조 변경은 '한 방'이 아니라 참조 방향 정리 → 단위별 적용 — 되돌리는 결정도 빠를수록 싸다.
Unity · 프리팹 · 리팩토링관련 프로젝트
- Day 62026-05-08설계
패치노트를 데이터로 — 콘텐츠와 렌더를 분리해야 유지보수가 산다
제품별 개발자노트·로드맵·패치노트 쇼케이스 데이터(data.ts) 작성
- 관찰 ·
- 초기엔 JSX에 패치 내역을 직접 썼는데, 제품이 늘수록 마크업 복사가 반복되고 오타 검증이 불가능해졌습니다.
- 조치 ·
- PatchNote/RoadmapPhase 타입을 정의해 콘텐츠를 전부 데이터 배열로 이동, 렌더는 타입 기반 공통 컴포넌트 하나로 통일.
반복되는 콘텐츠는 '컴포넌트 복사'가 아니라 타입 있는 데이터 + 렌더 1개로 만든다.
TypeScript · 데이터 모델링관련 프로젝트
- Day 72026-05-10설계
CoinList → CoinDetail — 셀은 표시만, 상태는 매니저가 든다
비트코인 시뮬레이터(Unity) 코인 리스트·상세 패널 구현
- 관찰 ·
- 리스트 셀 프리팹이 코인 가격을 직접 들고 갱신하니, 상세 패널과 값이 어긋나는 순간이 생겼습니다.
- 조치 ·
- 가격·보유량 상태는 매니저(단일 소스)에만 두고, 셀·상세 패널은 표시 시점에 조회만 하도록 정리. 셀 프리팹은 재사용 컴포넌트로.
리스트 UI 버그의 뿌리는 '셀이 상태를 소유'하는 것 — 셀은 뷰, 상태는 단일 소스.
Unity · UI 아키텍처관련 프로젝트
- Day 82026-05-12운영
모바일 스냅 스크롤 오작동 — 애니메이션 중 리스너가 서로 싸운다
플랫폼 디테일 페이지 모바일 스크롤 깨짐 제보 대응
- 관찰 ·
- 스냅 스크롤과 스크롤 진행바 리스너가 동시에 scrollTop을 만지면서, 모바일에서 화면이 튀는 현상이 재현됐습니다.
- 조치 ·
- 스크롤 '읽기'와 '쓰기'를 분리하고, 프로그래매틱 스크롤 중에는 플래그로 리스너를 무시하게 처리. 진행바는 rAF로 스로틀.
스크롤 버그는 리스너 목록부터 그린다 — 같은 값을 읽고 쓰는 주체가 둘이면 반드시 싸운다.
모바일 · 스크롤 · rAF관련 프로젝트
- Day 92026-05-13운영
문의 메일(Resend) — 실패는 사용자에게, 원문은 로그에
문의 폼 → Resend 이메일 발송 연동
- 관찰 ·
- 발송 실패 시 사용자는 성공으로 알고 이탈하는데, 서버 로그에는 본문이 없어서 재발송도 불가능한 구조였습니다.
- 조치 ·
- API 응답을 실패까지 명시적으로 전달하고, 실패 시 요청 본문을 로그에 남겨 수동 재발송이 가능하게 변경. 클라이언트엔 재시도 안내 문구.
외부 발송은 '실패했을 때 무엇이 남는가'부터 설계한다.
Resend · API Route · 에러 처리관련 프로젝트
- Day 102026-05-15배포
robots/sitemap — 색인 정책은 환경변수로 갈라야 안전하다
플랫폼 SEO 노출 설정(robots·sitemap) 마무리
- 관찰 ·
- 프리뷰 배포가 검색엔진에 색인되면 운영 도메인과 중복 콘텐츠가 되는 리스크를 확인했습니다.
- 조치 ·
- robots를 배포 환경 변수 기준으로 분기해 프로덕션에서만 색인 허용, sitemap은 공개 페이지만 생성하도록 정리.
SEO 설정은 페이지가 아니라 환경에 묶는다 — 프리뷰는 기본 noindex.
SEO · robots · sitemap관련 프로젝트
- Day 112026-05-18정합성
22% 과세 정산 — 부동소수점 세금은 반드시 어긋난다
비트코인 시뮬레이터(Unity) 코인 매도 수익 과세 검증
- 관찰 ·
- 수익 × 0.22를 매 거래마다 반올림했더니 하루 합산 세액이 검산과 1~2원씩 어긋났습니다.
- 조치 ·
- 세액 계산을 정산 시점 1회(합산 후 과세)로 옮기고, 검산 테스트(무작위 거래 1,000건 시뮬레이션)를 추가.
돈 계산 반올림은 횟수를 줄이고 시점을 하나로 — 거래별 반올림 합계는 합계의 반올림이 아니다.
수치 계산 · 테스트 · Unity관련 프로젝트
- Day 122026-05-20설계
N×N 방 배치 — 좌표계 변환은 한 곳에서만
비트코인 시뮬레이터(Unity) 방 등급별 가구 배치(회전 포함)
- 관찰 ·
- 화면 좌표↔그리드 좌표 변환이 드래그·배치·충돌검사 세 곳에 흩어져, 회전 가구에서만 판정이 어긋나는 버그가 나왔습니다.
- 조치 ·
- 변환·회전·경계검사를 grid 유틸 하나로 통합하고 나머지는 그리드 좌표만 다루게 리팩토링. 회전 케이스 단위 테스트 추가.
좌표 버그의 8할은 변환 중복 — 변환 함수는 시스템에 하나만 존재해야 한다.
Unity · 그리드 · 리팩토링관련 프로젝트
- Day 132026-05-22설계
가구 강화(Lv1~5) 밸런스 — 수치는 코드가 아니라 표에 산다
가구별 코인 확률·생활비 보정 버프 시스템(Unity ScriptableObject)
- 관찰 ·
- 강화 수치가 코드 상수로 흩어져 있어 밸런스 조정 한 번에 파일 여러 개를 고쳐야 했습니다.
- 조치 ·
- 버프 수치를 ScriptableObject 데이터 테이블(가구×레벨)로 추출하고 효과 적용은 테이블을 읽는 함수 하나로 통일.
밸런스 수치는 기획이 만지는 영역 — 코드에서 꺼내 데이터로 두면 조정 비용이 0이 된다.
Unity · ScriptableObject · 데이터 드리븐관련 프로젝트
- Day 142026-05-26정합성
파산 판정 경계값(0원) — 한 번 겪은 버그는 테스트로 박제한다
비트코인 시뮬레이터(Unity) 게임오버 조건 회귀 점검
- 관찰 ·
- 초기에 '0원 무한 생존' 버그(< 0 판정)를 고친 적이 있는데, 판정 로직을 만질 때마다 같은 실수가 재발할 수 있는 구조였습니다.
- 조치 ·
- 판정을 '현금+코인 평가액 ≤ 0'으로 고정하고, 경계값(정확히 0원·코인만 보유·대출만 보유) 3케이스를 테스트로 박제.
한 번 겪은 경계값 버그는 테스트가 없으면 반드시 돌아온다.
테스트 · 경계값 · Unity관련 프로젝트
- Day 152026-05-28성능
Firestore 랭킹 — 쿼리는 인덱스 설계와 한 몸이다
비트코인 시뮬레이터(Unity) 전체 랭킹(생존 일수 순) 점검
- 관찰 ·
- orderBy + where 조합을 바꿀 때마다 복합 인덱스 요구 에러가 났고, 읽기 비용도 상위권 조회에 비해 과했습니다.
- 조치 ·
- 랭킹 화면 요구를 '상위 100 + 내 순위'로 고정하고, 그에 맞는 복합 인덱스 1개 + limit 쿼리로 축소. 내 순위는 별도 문서로 역정규화.
NoSQL은 쿼리를 먼저 확정하고 화면 요구 → 인덱스 → 데이터 구조 순서로 내려간다.
Firestore · 인덱스 · 역정규화관련 프로젝트
- Day 162026-05-30기타
세로 모바일 기준 해상도(390×844) — 앵커 규칙을 먼저 합의한다
비트코인 시뮬레이터(Unity) 기기별 UI 검수
- 관찰 ·
- 노치·비율이 다른 기기에서 버튼이 상태바에 겹치거나 하단이 잘리는 패널이 있었습니다.
- 조치 ·
- CanvasScaler 기준 해상도를 390×844로 고정하고, 상단은 SafeArea 기준·하단은 앵커 고정 규칙을 패널 전체에 일괄 적용.
반응형 UI는 컴포넌트마다 고민하지 않는다 — 기준 해상도 + 앵커 규칙을 먼저 문서로 합의.
Unity · SafeArea · 모바일관련 프로젝트
- Day 172026-06-16설계
업종 예시 10종 — 페이지 복사 대신 '업종 데이터 × 템플릿 1개'
미용실·펜션·인테리어 등 업종별 예시 페이지 제작 시작
- 관찰 ·
- 첫 두 페이지를 복사해 만들었더니 섹션 순서 수정이 곧바로 2배 작업이 됐습니다. 10종이면 유지보수가 불가능해집니다.
- 조치 ·
- 업종별 콘텐츠(문구·이미지·후기)를 데이터 객체로 분리하고 레이아웃 템플릿 1개가 렌더하도록 구조화 — 신규 업종은 데이터 추가만으로 생성.
3개 이상 반복될 페이지는 처음부터 데이터 × 템플릿으로 — 복사는 2개까지만 허용.
Next.js · 템플릿화관련 프로젝트
- Day 182026-06-18성능
next/image 업종 썸네일 — sizes 없는 fill은 모바일 트래픽 낭비
업종 예시 케이스 이미지(case-image) 최적화
- 관찰 ·
- fill 이미지에 sizes를 안 주니 모바일에서도 데스크톱 해상도 이미지를 받아, 예시 페이지 LCP가 늦어졌습니다.
- 조치 ·
- 그리드 폭 기준으로 sizes를 명시하고 above-the-fold 1장만 priority, 나머지는 lazy. 원본은 화면 최대 폭 기준으로 리사이즈해 저장.
next/image는 sizes까지 써야 완성 — fill + sizes 미지정 = 최대 해상도 강제 다운로드.
next/image · LCP · 최적화관련 프로젝트
- Day 192026-06-20설계
고객 후기 섹션 — 스키마를 먼저 고정해야 수집이 굴러간다
예시 페이지 예약문의·고객후기(reviews) 골격 구성
- 관찰 ·
- 후기마다 있는 필드가 제각각(별점 유무·업종 표기)이라 렌더 분기가 늘고, 나중에 실제 후기로 교체할 기준도 없었습니다.
- 조치 ·
- 후기 타입(작성자·업종·본문·평점 optional)을 고정하고 placeholder 데이터도 같은 스키마로 작성 — 실데이터 교체가 diff 한 번이 되게.
더미 콘텐츠도 최종 스키마로 만든다 — 교체 비용은 스키마가 결정한다.
데이터 모델링 · 콘텐츠관련 프로젝트
- Day 202026-06-23기타
한·일 i18n — 언어별로 '길이'가 디자인을 깨는 지점을 먼저 찾는다
업종 예시 페이지 한/일 다국어 검수
- 관찰 ·
- 일본어 문구가 한국어보다 길어지는 구간에서 버튼 줄바꿈·카드 높이 불일치가 발생했습니다.
- 조치 ·
- 제목·버튼 등 길이 민감 요소에 line-clamp와 min-h를 지정하고, 번역 시 UI 최대 글자수를 키 옆에 주석으로 남기게 규칙화.
다국어 QA는 번역 정확성보다 레이아웃 내구성부터 — 가장 긴 언어 기준으로 컴포넌트를 잡는다.
i18n · 레이아웃관련 프로젝트
- Day 212026-06-25배포
sitemap 자동화 — 페이지 추가가 SEO 작업을 만들면 안 된다
업종 예시 10종 sitemap/robots 반영
- 관찰 ·
- 예시 페이지를 늘릴 때마다 sitemap을 수동 수정해야 해서 누락이 생겼고, 실제로 2개 페이지가 빠져 있었습니다.
- 조치 ·
- sitemap을 업종 데이터 배열에서 생성하도록 변경 — 데이터에 추가하면 페이지·내비·sitemap이 동시에 갱신.
'추가할 때 고칠 파일이 2개 이상'이면 자동화 대상 — 단일 소스에서 파생시킨다.
SEO · sitemap · 자동화관련 프로젝트
- Day 222026-06-26성능
MS-SQL 실행 계획 복습 — 이직 대비 기본기 재정리
면접 대비 — 케어챗 시절 쿼리 튜닝 사례 복기
- 관찰 ·
- 실무에서 '느려서 고쳤다'로 기억하던 것을 설명하려니, 인덱스 스캔/시크 차이와 WHERE 선적용 근거를 정확히 말로 못 풀었습니다.
- 조치 ·
- 당시 UNION 조회 개선 사례를 실행 계획 용어로 재구성(시크 전환·필터 선적용·프로시저 분리)하고 표로 정리.
실무 경험은 용어로 재구성해야 면접에서 재사용할 수 있다 — '빨라졌다'는 근거가 아니다.
MS-SQL · 실행 계획 · 면접 준비관련 프로젝트
- Day 232026-06-27배포
OG 메타 검수 — 공유 미리보기는 배포 전에 도구로 확인
업종 예시 페이지 Open Graph/Twitter 카드 정리
- 관찰 ·
- OG 이미지 경로가 상대경로라 메신저 공유 미리보기에서 이미지가 비어 보이는 페이지가 있었습니다.
- 조치 ·
- OG url·image를 절대 URL로 통일하고, 페이지별 title/description을 업종 데이터에서 생성. 배포 전 미리보기 디버거로 전 페이지 확인.
OG는 브라우저에선 안 보이는 버그 — 공유 디버거 확인까지가 배포다.
OG · 메타데이터관련 프로젝트
- Day 242026-06-28설계
C# 도메인 모델을 TS로 — 로직보다 '숫자 규칙'을 먼저 옮긴다
비트코인 시뮬레이터 Unity → RN 전환 결정, Expo 스캐폴딩·도메인 이식 시작
- 관찰 ·
- 코인 가격·세금 계산을 그대로 포팅했는데, C#의 정수/반올림 규칙과 JS Number가 달라 잔액이 미세하게 어긋났습니다.
- 조치 ·
- 돈 계산을 정수(원 단위) 연산으로 고정하고 반올림 시점을 '정산 1곳'으로 모아 Unity 결과와 스냅샷 비교 테스트를 만들었습니다.
이식은 함수부터가 아니라 수치 규칙(단위·반올림·시점) 합의부터.
React Native · Expo · 마이그레이션관련 프로젝트
- Day 252026-06-29성능
틱 엔진 이식 — setInterval은 드리프트한다, 기준은 타임스탬프
스몰틱(30초=게임 1시간) 실시간 경제 엔진 RN 포팅 + 백그라운드 catch-up
- 관찰 ·
- setInterval 기반 틱은 백그라운드 전환·JS 스레드 지연으로 수 초씩 밀렸고, 복귀 시 밀린 틱을 어디까지 재생할지도 기준이 없었습니다.
- 조치 ·
- '마지막 처리 시각'을 저장해 매 wake마다 경과 시간 ÷ 틱 간격으로 처리 틱 수를 계산하고, catch-up은 최대 24틱(하루치)으로 캡 — 초과분은 요약 정산.
시간 기준은 타이머 횟수가 아니라 now − lastProcessedAt — 오프라인 보정엔 상한을 건다.
React Native · 게임 루프 · AppState관련 프로젝트
- Day 262026-06-29정합성
mmkv 세이브 구조 — 로컬 저장에도 스키마 버전이 있어야 한다
react-native-mmkv 로컬 세이브 + 게임 이어하기/새 게임 설계
- 관찰 ·
- 이식 중 세이브 필드가 계속 바뀌는데, 구버전 세이브를 읽으면 undefined로 깨질 수 있는 구조였습니다.
- 조치 ·
- 세이브에 version 필드 + 로드 시 마이그레이션 체인(v1→v2→…)을 넣고, 실패 시 백업 키에 원본 보존 후 새 게임으로 안내.
로컬 저장도 DB다 — 버전 없는 직렬화는 미래의 나에 대한 부채.
mmkv · 직렬화 · 마이그레이션관련 프로젝트
- Day 272026-06-30설계
공용 UI 키트 먼저 — 화면 조립은 그 다음이다
RN 공용 UI 키트(테마·포맷·Button·Card·MoneyText·LineGraph) 후 MVP 화면 조립
- 관찰 ·
- Unity UI를 화면 단위로 바로 옮기면 색·금액 포맷·버튼 스타일이 화면마다 복제될 것이 뻔했습니다.
- 조치 ·
- 테마 토큰과 MoneyText·LineGraph 등 공용 컴포넌트를 먼저 만들고, HUD·코인리스트·상세·입출금·게임오버 화면은 키트 조립으로 구성. 상태는 갱신 주기별로 스토어 분리.
마이그레이션에서 화면은 마지막 — 토큰·공용 컴포넌트·스토어 경계가 먼저다.
React Native · 디자인 토큰 · Zustand관련 프로젝트
- Day 282026-06-30정합성
RN Firebase 로그인 — 상태는 이벤트가 진실, 저장값은 캐시
RN Firebase 연동·네이티브 빌드 셋업, '구글 로그인 안 풀리게' 이슈 대응
- 관찰 ·
- 로컬에 '로그인됨' 플래그를 저장해 쓰면, 토큰 만료 후에도 로그인 화면을 건너뛰어 랭킹 저장이 조용히 실패할 수 있었습니다.
- 조치 ·
- 화면 분기를 저장 플래그가 아닌 onAuthStateChanged 이벤트 기준으로 재구성하고, 저장값은 초기 스플래시 단축용 캐시로만 사용.
인증 상태의 단일 진실은 SDK 이벤트 — 로컬 플래그로 분기하지 않는다.
Firebase Auth · Google Sign-In · React Native관련 프로젝트
- Day 292026-06-30기타
2개월 회고 — 프리팹화·콘텐츠·이식에서 반복된 규칙 셋
5~6월 기록 되돌아보기 (Unity 프리팹화 → 업종 예시 → RN 스프린트)
- 관찰 ·
- 두 달 기록을 훑으니 도메인이 달라도 같은 실수 패턴이 반복됐습니다: 기준(참조·시간·반올림)이 여러 곳에 존재할 때, 콘텐츠가 코드에 박혀 있을 때, 실패 경로를 설계하지 않았을 때.
- 조치 ·
- 체크리스트 3줄로 압축해 다음 작업 템플릿에 포함: ① 단일 진실(참조·시각·정산은 한 곳) ② 반복 3회면 데이터화 ③ 실패 시 남는 것 먼저 설계.
기록의 목적은 회고가 아니라 다음 작업의 기본값을 바꾸는 것.
회고 · 체크리스트
연락
함께 일할 기회를 찾고 있습니다. 백엔드·풀스택 개발, 데이터 연동·검증 시스템, 운영 도구 관련 협업·채용 문의를 환영합니다.