About

일하는 방식

실제로 어떻게 일해 왔는지를 협업 기록과 동료들의 평가로 정리했습니다.

중요하게 보는 것

화면이 왜 그렇게 동작해야 하는지를 정하는 데 시간을 많이 쓰고, 다음 사람이 이해할 수 있도록 결정의 이유를 남기는 편입니다. 아래는 그렇게 일한 구체적인 사례입니다.

구조를 먼저 정합니다

화면을 만들기 전에 폴더 구조, API, 데이터 흐름부터 그립니다.

사례FSD 5레이어와 세그먼트까지 적용해 '기능 삭제 = 폴더 삭제'가 성립하는 구조를 만들었고, 백엔드 MSA 7개 서비스를 직접 설계·구현했습니다.

실패하는 경우부터 챙깁니다

정상 동작보다 에러, 빈 상태, 네트워크가 끊겼을 때 어떻게 보이는지를 먼저 확인합니다.

사례렌더링·렌더링 밖·데이터 실패를 각각 다른 그물로 받는 3겹 안전망을 세우고, 모든 API 실패를 6종으로 정규화해 화면이 에러 문구를 쓰지 않게 했습니다.

고른 이유를 남깁니다

라이브러리와 버전은 최신인지보다 이 프로젝트에서 감당할 수 있는지를 보고 고릅니다.

사례MMKV·zod를 최신이 아니라 호환 기준으로 v3에 고정하고 '왜 올리지 않았는지'를 문서에 남겼습니다. Expo를 쓰지 않은 이유도 실제 작업 목록으로 설명합니다.

요청은 정리해서 넘깁니다

다른 사람에게 부탁할 때는 무엇이, 어디서, 얼마나 급한지를 정리해서 전달합니다.

사례응답 불일치 12건을 영향·우선순위 표로 만들어 전달했고, 디자이너에게는 플랫폼 규칙 체크리스트를 먼저 건넸습니다.

되돌린 결정도 기록합니다

넣었다가 뺀 것은 이유와 함께 문서에 남깁니다. 같은 고민을 다시 하지 않기 위해서입니다.

사례탭 전환 페이드, 목록 진입 애니메이션, 클라이언트 인증 카운트다운은 모두 넣었다가 되돌렸습니다. 되돌린 이유와 대신 세운 원칙까지 문서에 있습니다.

배포 마지막 단계도 직접 합니다

릴리스 서명, 스토어 심사, 현장 설치처럼 코드 밖의 일도 맡습니다.

사례릴리스 서명·환경 분리부터 Play Console 데이터 보안 신고, 심사용 공개 페이지 제공까지 스토어 제출을 직접 진행했습니다.

협업 기록

백엔드, 디자이너, 협업처와 일하면서 실제로 있었던 일입니다. 근거 문서가 남아 있는 것만 적었습니다.

with 백엔드VGOLF 앱

응답 불일치를 필드 단위 표로 정리해 전달했다

상황
인증 실패가 BAD_VERIFY_CODE 하나로 내려와, 앱이 '재입력'과 '재발송' 중 무엇을 안내할지 판단할 수 없었습니다. 비슷한 응답 형태 불일치가 여기저기 흩어져 있었습니다.
내가 한 일
불일치 12건을 엔드포인트·필드·서버가 주는 값·기대값·앱 영향·우선순위(P0/P1) 표로 정리해 전달했습니다. 코드 3분리와 retryAfterSeconds 추가를 제안하되, 모두 하위 호환을 깨지 않는 형태로 설계해 수용 부담을 낮췄습니다.
결과
요청이 '고쳐 주세요'가 아니라 '무엇을·왜·언제까지'로 바뀌면서 우선순위 협의가 가능해졌습니다.

docs/api/backend-error-handling-request.md · verify-error-contract.md

with 백엔드VGOLF 앱

화면은 멀쩡한데 값만 틀린 버그를 화면 반영 전에 잡았다

상황
서버가 홀별 par에 null을 내려줬고, 앱은 방어적으로 0으로 보정했습니다. 크래시도 에러도 없이 모든 홀이 더블보기로 색칠되는, 가장 잡기 어려운 종류의 오류였습니다.
내가 한 일
같은 응답을 런타임 스키마(앱이 실제로 깨지는가)와 엄격 스키마(서버가 문서대로 주는가)로 두 번 파싱하는 계약 테스트를 만들어 검출했습니다. 전달할 때 'null을 0으로 보정한 건 앱의 임시 조치일 뿐 정답이 아니다'까지 함께 적었습니다.
결과
증상이 없는 계약 위반을 사용자에게 도달하기 전에 잡는 경로가 생겼습니다. 실서버를 호출하는 테스트지만 자격증명이 없으면 skip하도록 해 서버 장애가 남의 커밋을 막지 않게 했습니다.

npm run test:api · shared/test/contract/strict.ts

with 백엔드VGOLF 앱

확정할 수 없는 건 추측으로 고치지 않고 선택지로 남겼다

상황
목록과 상세가 동반자 수를 다르게 계산했습니다. 서버 players에 본인이 포함되는지 문서에 명시가 없어 어느 쪽이 맞다고 단정할 수 없었습니다.
내가 한 일
코드를 건드리는 대신 선택지 3안과 각각의 비용, 결론을 내리는 데 필요한 최소 정보(실응답 한 건)를 문서로 남겼습니다. 계약 테스트에는 실패시키지 않는 [확인] 항목으로 심어 두고 관찰했습니다.
결과
잘못된 추측이 코드에 굳는 걸 막고, 판단에 필요한 정보를 가진 사람이 결정할 수 있게 넘겼습니다.

docs/features/12-players-display.md

with 디자이너VGOLF 앱

디자이너가 고칠 파일을 3개로 좁혔다

상황
로딩·에러·빈 상태 시안이 나올 때마다 화면 수만큼 고쳐야 하는 구조였습니다. 반영이 늦어지고 화면끼리 어긋났습니다.
내가 한 일
모든 화면을 QueryState로 감싸고 실제 모양은 LoadingState·ErrorState·EmptyState 세 파일에만 두었습니다. 이 교체 지점을 문서에 명시해 디자이너와 합의했습니다.
결과
시안이 오면 3개 파일만 고치면 전 화면에 반영됩니다. 화면별로 어긋날 여지가 사라졌습니다.

docs/app/07-error-handling.md — 디자이너 교체 지점

with 디자이너VGOLF 앱

필요한 산출물을 체크리스트로 먼저 정리해 건넸다

상황
앱 아이콘은 플랫폼마다 규칙이 다릅니다. iOS는 투명 배경이면 심사에서 거부되고, Android 적응형 아이콘은 전경·배경 레이어 분리와 중앙 66% 세이프존을 지켜야 합니다.
내가 한 일
필요한 산출물·크기·금지사항을 체크리스트로 정리해 먼저 전달했습니다. 스토어 등록용 피처 그래픽과 스크린샷도 같은 방식으로 요청 목록을 만들었습니다.
결과
재작업 없이 한 번에 받았습니다. 디자이너가 플랫폼 규칙을 찾아다닐 일이 없어졌습니다.

docs/app/06-app-icon.md — 디자이너 전달용 체크리스트

with 디자이너VGOLF 앱

시안의 고정 px를 그대로 옮기지 않고 근거를 맞췄다

상황
디자인 기준폭은 375, 실기기는 아이폰 프로 393이었습니다. 고정 px를 그대로 옮기면 화면 폭 대비 글자가 작아 보입니다.
내가 한 일
폭 보정(393/375 ≈ 1.05)에 '실기기에서 한 단계 더 키우자'는 디자이너 판단을 더해 타입 스케일을 재정의했습니다. 런타임 폭 스케일은 대상 기기 폭 편차가 좁아 실익이 작다고 판단해 채택하지 않았고, 그 이유도 함께 남겼습니다.
결과
'시안대로 했는데 작아 보인다'는 왕복이 사라지고, 다음 시안부터는 같은 스케일 위에서 이야기하게 됐습니다.

docs/app/16-typography.md · 디자인 커밋 65건

코드도 문서도 받지 못한 채로, 경우의 수를 준비해 갔다

상황
부산 도시철도 관제에서 협업처에서 CCTV 연동 코드도 문서도 받지 못했습니다. 카메라 주소만 넘어왔고, 저쪽 서버가 어떤 방식으로 서 있는지는 붙여 보기 전에는 알 수 없었습니다.
내가 한 일
답을 기다리는 대신 WebRTC 자체를 먼저 조사했습니다. RTSP를 브라우저로 가져오는 경로를 정리하고 '이렇게 구현했을 수도 있다'는 경우를 나열한 뒤, 각 경우에 맞는 연결 코드를 준비한 상태로 현장에 들어가 하나씩 대 봤습니다.
결과
현장에서 헤매지 않고 맞는 방식을 찾아 CCTV를 실제 운영까지 올렸습니다.
with 모노레포 디자인 시스템

프로젝트마다 다시 만들던 공통 컴포넌트를 모노레포로 걷어냈다

상황
다수의 관제 SI 프로젝트가 비슷한 컴포넌트를 각자 복사해 쓰고 있었습니다.
내가 한 일
공통 컴포넌트를 추출해 모노레포 구조의 디자인 시스템으로 재설계했습니다.
결과
새 SI가 시작될 때 UI를 처음부터 만들지 않아도 되는 출발선이 생겼습니다.
with 스탬퍼 · 한화시스템 Beyond SW Camp

배운 것을 팀에 남겼다

상황
인턴 시절, 배운 것이 개인 노트에만 쌓이고 팀에 남지 않는 게 아깝다고 느꼈습니다.
내가 한 일
Confluence 기반 기술 문서화를 주도하고, 퇴근 후 동료들과 자발적 스터디를 운영하며 일일 학습 기록을 공유했습니다. 이후 부트캠프에서는 프리코스 학생 대상으로 프론트·백엔드 크로스 강의를 진행했습니다.
결과
지금도 스터디 3개를 팀장으로 운영하며 발표 기반 Wiki 정리 시스템을 유지하고 있습니다.
with 현장부산 사상하단선 · 부산교통공사 1호선

현장에서 고치고 그 자리에서 다시 올렸다

상황
지하철 폐쇄망 현장은 배포 직후에야 드러나는 실시간 버그와 데이터 오류가 있었습니다. 사무실에서는 재현되지 않았습니다.
내가 한 일
현장에 나가 직접 디버깅하고, 수정하고, 그 자리에서 재배포하는 사이클을 반복했습니다.
결과
이후 프로젝트에서는 개발 단계부터 실제 사용 환경에서 무엇이 깨질지를 먼저 따져 봅니다.

동료 평가

함께 일했던 동료들의 이야기 · 8

영특한 면도 있고 성실한 면도 있다. 열정이 넘쳐 늘 눈이 이글이글 불타오른다. 하나를 알려주면 열을 배우려고 메모하는 자세가 보기 좋다. 잘하려는 마음이 보여서 잘 크기를 바라게 되는 주니어다. 입사 후보다 퇴사 때 많이 성장했다. 책임감이 강하고 빠르니 특출난 에이스다.

입사 후보다 퇴사 때 많이 성장했다

개발팀장

개발팀장 · 웹비즈 크리에이티브

백엔드를 아는 프론트엔드랑 일하다 보니 의사소통도 잘되고 의논도 빨리 되니 협업하기가 좋았습니다. 배려심이 많으시지만 또 일도 야무지게 하셔서 같이 일하면 으쌰으쌰 하게 되는 것 같습니다. 프로젝트를 다방면으로 좋게 개발하려고 하셔서 같이 있으면 도움이 많이 됩니다.

백엔드를 아는 프론트엔드

백엔드 개발자

Backend Developer · 웹비즈 크리에이티브

항상 개발에 진심이고 책임감 있게 임하셨습니다. 늦게 퇴근하시고 스터디를 하시거나 주말에도 계속 학원에 다니시는 점이 인상적이었습니다. 본인의 실력에 안주하지 않으시는 것 같은데 보고 많이 배웠습니다. 항상 주변 동료들을 챙겨주셔서 승은님 주변은 늘 분위기가 좋은 것 같습니다.

본인의 실력에 안주하지 않는 사람

인턴 동기

Frontend Developer · 스탬퍼(Cosmostation) 인턴

완성도 때문에 수정 요청을 많이 드렸는데, 힘들고 지쳐도 QA 요구를 끝까지 들어주셨어요. 오히려 열심히 하는 모습을 높게 사주시면서 밤새 수정해 주셨습니다. 프론트엔드라 디자인과 백엔드 사이에 끼어 계신데, 디자이너에게 데이터 설명을 친절하게 해주셔서 불화 없이 잘 마무리된 것 같아요.

힘들고 지쳐도 QA 요구를 끝까지 들어주는 프론트엔드

기획 · 디자이너

Product Designer · 삐약톤 해커톤 팀 (PPIYO)

마음씨 착한 승은님이 저희 팀이 되어서 의지할 수 있고 즐겁게 함께 일할 수 있어 너무 좋았어요. 그동안 알게 모르게 배려해주고 챙겨줘서 고마웠습니다. 덕분에 행복하게 일할 수 있었던 것 같아요.

의지할 수 있고 즐겁게 함께 일할 수 있었어요

동료 프론트엔드

Frontend Developer · 플럭시티 클라우드팀

승은님은 팀장으로서 팀의 중심이 되어주셨고, 항상 밝고 유쾌한 에너지를 전해주었습니다. 질문이 있을 때마다 단순히 답만 주는 것이 아니라 더 좋은 방향을 제시해주며 함께 고민해주었고, 덕분에 더 나은 코드를 작성할 수 있었습니다. 백엔드 지식도 풍부하셔서 협업하는 데 큰 도움이 되었고, 전반적으로 팀의 운영과 기술적 성장에 크게 기여하신 팀장이었습니다.

팀의 운영과 기술적 성장에 크게 기여하신 팀장

팀원 A

Frontend Developer · 코드잇 심화 팀 프로젝트

처음부터 끝까지 프로젝트를 완성시키는 것에 집중했을 뿐만 아니라, 포트폴리오와 이력서에 담을 수 있는 가치를 고민하는 모습이 인상적이었습니다. 모르는 것에 대해 질문하면 항상 친절하게 대답해주었고, 두 달간 함께할 수 있어 정말 즐거웠습니다. 언젠가 다시 동료로 만나고 싶습니다.

언젠가 다시 동료로 만나고 싶습니다

팀원 B

Frontend Developer · 코드잇 심화 팀 프로젝트

승은님 덕분에 도움이 너무 많이 됐습니다. 지식이 풍부해지는 느낌이란 게 이런 거일까 싶었습니다. 좋은 아티클과 최신 기술을 공유해 주어서 코드의 퀄리티를 높일 수 있었고, 승은님이 아니었다면 대충 했을 거란 생각이 듭니다.

코드의 퀄리티를 높일 수 있었고

팀원 C

Frontend Developer · 코드잇 심화 팀 프로젝트

연락

새로운 기회나 협업에 열려 있습니다.