Alongside

함께 일한 기록

혼자 만든 화면은 하나도 없습니다. 어떤 분들과 어떻게 맞춰 갔는지, 그리고 그분들이 저를 어떻게 보셨는지 모았습니다.

Records

협업 기록

함께 일한 분들과 있었던 일을 적었습니다. 기억에 기대지 않으려고, 문서나 기록이 남아 있는 것만 골랐습니다.

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

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

with 현장

부산 사상하단선 · 부산교통공사 1호선

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

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

with 백엔드

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

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

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

with 백엔드

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

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

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

with 팀

모노레포 디자인 시스템

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

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

with 디자이너

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

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

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

with 백엔드

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

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

docs/features/12-players-display.md

with 디자이너

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

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

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

with 디자이너

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

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

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

with 팀

스탬퍼 · 한화시스템 Beyond SW Camp

배운 것이 저에게만 남지 않도록 팀에 옮겨 두었습니다

상황
인턴 시절, 배운 것이 개인 노트에만 쌓이고 팀에 남지 않는 게 아깝다고 느꼈습니다.
내가 한 일
Confluence에 기술 문서를 남기기 시작하고, 퇴근 후 동료들과 스터디를 열어 일일 학습 기록을 공유했습니다. 이후 부트캠프에서는 프리코스 학생 대상으로 프론트·백엔드 크로스 강의를 진행했습니다.
결과
스터디 3개를 팀장으로 맡아, 발표한 내용을 Wiki로 정리해 왔습니다.

In their words

동료 평가

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

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

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

백엔드를 아는 프론트엔드

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

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

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

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

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

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

마음씨 착한 승은님이 저희 팀이 되어서 의지할 수 있고 즐겁게 함께 일할 수 있어 너무 좋았어요. 그동안 알게 모르게 배려해주고 챙겨줘서 고마웠습니다. 덕분에 행복하게 일할 수 있었던 것 같아요.
동료 프론트엔드Frontend Developer · 플럭시티 클라우드팀

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

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

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

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

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

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