시니어 개발자의 생존 기술 — 코딩 말고 필요한 것들

게시일: 2025년 9월 16일 · 14분 읽기

코딩 잘하는 건 시니어의 필요조건이지 충분조건이 아니다

45살 지금, 나는 과거의 내가 얼마나 착각하고 있었는지 안다. "좋은 시니어 = 코딩 잘하는 사람"이라고 믿었다.

틀렸다. 코딩을 못 해도 훌륭한 시니어는 있다. 반대로, 코딩을 너무 잘해서 사람 관계가 망가지는 시니어도 있다.

이 글은 코딩이 아닌, 나머지 기술들에 관한 것이다.

1. 커뮤니케이션 능력

나쁜 시니어:

좋은 시니어:

나는 초반 10년을 침묵하며 살았다. 좋은 코드만 짜려고 했다. 하지만 팀은 내가 뭘 생각하는지, 뭘 원하는지 몰랐다.

30대부터 "말하기"를 시작했다. 그 이후로 영향력이 엄청 커졌다.

2. 문서화 능력

시니어는 코드뿐만 아니라 지식을 남긴다.

나쁜 예:

좋은 예:

내가 한 프로젝트에 쓴 간단한 아키텍처 문서가, 이후 주니어 개발자 10명을 교육하는 데 사용되었다.

3. 정치력 (유능한 거절)

초급: "해드리겠습니다" (다 함)

중급: "안 됩니다" (단호함)

시니어: "이건 안 될 것 같은데, 대신 이건 어떨까요?" (이유 + 대안)

불가능한 요청을 그냥 거절하면, 팀 분위기가 나쁜다. 하지만 이유와 대안을 제시하면, 상황을 개선할 수 있다.

예:

PM: "이 기능 3일 안에 할 수 있을까?"
나쁜 시니어: "안 돼요"
좋은 시니어: "3일은 어려울 것 같은데,
           기본 기능만 하면 1주일,
           아니면 다른 일정을 변경할 수 있을까요?"

4. 거절하기

이건 정치력과 다르다. 정치력은 이유를 설득하는 것이고, 거절은 단호하게 "아니오"를 말하는 것이다.

거절해야 할 상황:

나는 많은 시간이 걸렸다. 처음 "아니오"를 말했을 때는, 팀이 놀랐다. 그 후로 팀의 신뢰가 더 커졌다. 왜냐하면 "이 사람이 가능하다고 말하면, 정말 가능하다"는 신뢰가 생겼기 때문이다.

5. 멘토링 능력

시니어의 가장 중요한 역할은 코딩이 아니라 사람 키우기다.

나쁜 멘토링:

좋은 멘토링:

내가 키운 주니어들이 지금 중급 개발자가 되었고, 그들이 또 주니어를 키우고 있다. 이것이 시니어의 진정한 영향력이다.

6. 정보 수집 능력

좋은 시니어는 항상 "뭔가"를 안다.

예:

이런 지식은 어디서 나올까? 계속 배워야 한다.

내 경우:

이것이 "지혜로운 시니어"의 기초다.

7. 기술 결정의 근거

주니어: "이게 더 좋다고 했으니까"
미드레벨: "이게 더 빠르다"
시니어: "이게 우리 상황에 가장 맞다. 이유: ... 트레이드오프: ... 실패 시 대안: ..."

모든 기술 결정에는 근거가 있어야 한다. 그 근거를 설명할 수 있어야 시니어다.

8. 일과 삶의 균형 설정

나는 회사의 일 문화를 바꾸는 데 기여했다. 어떻게?

조직은 리더를 따라간다. 시니어가 건강한 일과 삶의 균형을 지키면, 팀도 따라간다.

9. 실패를 말할 수 있는 용기

나쁜 시니어: 실수를 숨긴다
좋은 시니어: "이전에 이렇게 했는데 실패했어요"라고 말한다

나는 아키텍처 결정을 10년마다 한 번씩 후회한다. 그리고 그것을 팀에 말한다. "내가 이렇게 디자인했는데, 지금 보니 이렇게 하는 게 낫네"라고.

이런 말이 팀에 얼마나 큰 영향을 주는지 아는가? 주니어들이 자신의 실수를 두려워하지 않게 된다.

결론: 시니어가 되려면

코딩을 잘해야 하는 것은 맞다. 하지만 그것만으로는 부족하다. 시니어는:

이것들이 없으면, 코딩을 아무리 잘해도 시니어가 아니다. 단지 "능력 있는 중급 개발자"일 뿐이다.

오랜 개발 경험에서 배운 것: 진정한 시니어는 조용하지만 영향력 있는 사람이다.

iL
ian.lab

실무 개발자입니다. 현장에서 겪은 문제와 해결 과정을 기록합니다. 오류 제보는 연락처로 보내주세요.