반전공자로 시작
학교
• 의공학/의료정보학 전공
• 윈도우 프로그래밍 C
+
+
, MFC 는 전공수업, 그러나 CS지식은 부족
• 알고리즘, 자료구조, 데이터베이스는 CS 전공수업을 수강
Slide 6
Slide 6 text
윈도우 클라이언트 개발자
신입
-
2년차 개발자
• 벤처기업 병특으로 커리어 시작 🪖
• MFC, C#으로 전자칠판 하드웨어와 연동되는 PC 프로그램 개발
• 3개월 만에 거의 모든 직원 30명 이상 퇴사 👋
• CTO
-
CEO
-
🙋 남은 상황 😇
Slide 7
Slide 7 text
윈도우 클라이언트 개발자
신입
-
2년차 개발자
• 개발자가 없는 상황에서 임베디드 소프트웨어 유지보수
• 신입 몇 분을 더 채용, 용역 개발을 진행
• 돈을 버는데 부모님께 용돈을 받았던 상황
• 현실적인 월급과 개발자 이전에 직장인에 대해서 생각이 많았던 시기
• 첫 출발은 쉽지 않았다. 🙍
Slide 8
Slide 8 text
검색엔진 컴포넌트 개발자
2년
~
4년차
• 검색엔진 솔루션 패키지 회사
• 병특 이직 🪖
Slide 9
Slide 9 text
검색엔진 컴포넌트 개발자
2년
~
4년차
• 기술 스택의 급격한 변경 😇
• 윈도우 기반에서 리눅스 기반으로 변경
• MFC, .NET, C#
=>
ANSI C/C
+
+
• 클라이언트
=>
서버 개발자 전환
• 다시 처음부터 시작하는 느낌
Slide 10
Slide 10 text
검색엔진 컴포넌트 개발자
2년
~
4년차
• 검색엔진 도메인, 알고리즘, 자료구조, 대용량 데이터 처리
• 회귀테스트
-
QA
-
패키징 프로세스
• JIRA를 통한 외부 업무지원/의사소통
Slide 11
Slide 11 text
검색엔진 컴포넌트 개발자
2년
~
4년차
• 개인적으로 성장의 폭이 가장 넓었던 시기.
• 일에 대해서 닥치는 대로 한다고 생각
• 모르는 것을 모두 흡수 한다. 어깨너머로 훔치기 🥷
• 명령어, 단축키, 설정 등등
검색엔진 컴포넌트 개발자
2년
~
4년차
• 서브 언어에 대한 고민
• Python vs. Java
• 친구는 Java/Spring 추천
• 개인적으로 좀 더 마음이 들었던 Python 선택
• 파이썬 세미나/밋업 참여, 파이콘 주기적 참여, 오픈소스 생태계 관심
Slide 14
Slide 14 text
검색엔진 컴포넌트 개발자
2년
~
4년차
• 서버를 하다보니 앱을 만들고 싶다는 생각
• 맥미니 덜컥 구입후 Objective C 공부
• 사이드 프로젝트로 앱 출시
• 앱과 서버를 같이 해볼 수 있었던 시기
Slide 15
Slide 15 text
iOS 개발자
4
-
5년차
• 스타트업 초기 멤버, 블루투스 태그 IoT 기기 관련
• 풀스택 개발자
• 서버와 iOS 앱 개발 진행, 대시보드, 백오피스 구현
• 블루투스 연동 관련 경험
• iOS생태계의 경험, Objective C
=>
Swift 😱
Slide 16
Slide 16 text
iOS 개발자
4
-
5년차
• 자금 문제로 1년만에 끝
• 창업시 주의할 점들 간접 경험
:
• 사람, 아이템, 자금 여력, 시장상황
Slide 17
Slide 17 text
PG사 서버 개발자
5
-
9년차
• 파이썬 서버 개발자 🐍
• 각종 결제창 서버를 Flask 로 개발/운영
• 처음으로 내가 좋아하는 Python으로 밥벌이가 가능해진 시기
Slide 18
Slide 18 text
PG사 서버 개발자
5
-
9년차
• 회사가 어떻게 돈을 버는지를 알게 된 시기
• 서비스가 잘된다.
=>
돈을 번다는 구조 ❌
• 내가 만든 소프트웨어가 어떻게 돈이 얼마나 버는지 보였던
• 반대로 장애가 났을때, 얼만큼의 돈이 날아갔는지 알 수 있었던 🤑
Slide 19
Slide 19 text
PG사 서버 개발자
5
-
9년차
• 안정감 있는 회사, 프로세스가 갖춰진 완성형 회사
• 반대로 최신기술이나 컨퍼런스/세미나의 기술 적용의 어려움
Slide 20
Slide 20 text
PG사 서버 개발자
5
-
9년차
• Best Practice 를 이겨야 하는 어려움
IDC
사내 프레임워크
SVN
클라우드
오픈소스
git
docker
🆚
Slide 21
Slide 21 text
PG사 서버 개발자
5
-
9년차
• 커피/로봇커피 프로젝트 진행 ☕
• 결제 외 상품/주문/쿠폰/이벤트 등 이커머스 도메인 경험
• 개발만으로 서비스가 운영되지 않는다.
• 백오피스, 오프라인 운영자분들, 교육을 위한 자료
• 서비스 운영을 위한 많은 업무/노력/관계를 경험
• 돈을 제대로 받기 위한 정산/대사, 각종 정책과 컨플라이언스 중요성
Slide 22
Slide 22 text
PG사 서버 개발자
5
-
9년차
• 성장
• 로그의 중요성, 동료와 협업/매너, 타 회사와의 협업
• 서비스 회사에서의 경험, 어떻게 배포를 할 것인가?
• 어떻게 장애대응을 할건가? 장애시 보고 등 다양한 프로세스 경험
Slide 23
Slide 23 text
PG사 서버 개발자
5
-
9년차
• 심신이 안정되었던 시기 🤗
• 회사와 집 15분
• 제일 오래 다녔던 회사 4년
Slide 24
Slide 24 text
PG사 서버 개발자
5
-
9년차
• 이대로 괜찮나? 직장인 개발자로 좋은데 🤔
• 내가 원하는 것을 하고 있나? 후회하지 않을까?
• 이직결심 💼
Slide 25
Slide 25 text
PG사 서버 개발자
5
-
9년차
• 대기업
-
스타트업 많은 회사에 지원
• 결국 마지막에 대기업과 스타트업 사이의 고민
Slide 26
Slide 26 text
PG사 서버 개발자
5
-
9년차
• 대기업
-
스타트업 많은 회사에 지원
• 결국 마지막에 대기업과 스타트업 사이의 고민
이직 결정표
Slide 27
Slide 27 text
PG사 서버 개발자
5
-
9년차
Slide 28
Slide 28 text
스타트업 서버 개발자
9
-
11년차
• 이전과 완전 다른 환경
• 연령대
:
30/40
=>
20/30
• 사내 메신저, svn
=>
slack, git/github
• IDC
=>
클라우드 k8s
• 분당
=>
여의도
Slide 29
Slide 29 text
스타트업 서버 개발자
9
-
11년차
• 일을 할당 받던 방식
=>
일을 찾고 기여를 해야하는 문화
• 마인드의 변화
:
같이 만들어 간다.
• 3개월 수습기간, 다시 태어난 느낌
Slide 30
Slide 30 text
스타트업 서버 개발자
9
-
11년차
Slide 31
Slide 31 text
스타트업 서버 개발자
9
-
11년차
• 개인적으로 너무 좋았던 시기 😊
• 시리즈 B
-
시리즈 D
• 회사의 급속한 성장, 사람과 조직/문화가 어떻게 바뀌어 가는지 경험
• 보이지 않는 문화의 중요성
• 동료가 복지다.
Slide 32
Slide 32 text
스타트업 서버 개발자
9
-
11년차
• 성장
• 송금 파트 2년 담당
• 송금과 전자금융업 도메인 이해
• 결제 도메인의 확장
• 카드, 상품권 💳
=>
뱅킹 🏦
Slide 33
Slide 33 text
스타트업 서버 개발자
9
-
11년차
• 성장
• 인프라, 플랫폼 영역까지 넓게 일을 해볼 수 있었던 시기 🔥
• MSA 에 대한 간접 경험
• Kotlin/Spring 등 다양한 언어 사용
Slide 34
Slide 34 text
스타트업 서버 개발자
9
-
11년차
• 테크리드 경험 👨🏭
• 1인 개발자 역할에서 더 큰 일을 할 수 있는 팀을 구성
• 그 안에서의 용기를 주는 역할 👏
• 역경을 팀원들과 함께 이겨냈을 때, 성취가 너무 좋았음.
• 매니저가 되어가는 것에 대한 불안함? 매니저에 대한 인식의 변화
Slide 35
Slide 35 text
스타트업 서버 개발자
9
-
11년차
• 퇴사 결심
• 팀보다 더 큰 조직에서 기여할 수 역할 필요
• 다양한 회사에서의 조직/개발문화의 아쉬움🙍
• 완벽한 조직은 없지만, 타 회사/실리콘밸리를 언제까지 동경?
• 이미 만들어진 회사보다는 만들어야하는 회사가 적합하다고 생각
Slide 36
Slide 36 text
ೡ ߸ച🧑💻👨🏭
пࢿҗ ҅थ
Slide 37
Slide 37 text
클라이언트 개발자
=>
백엔드 개발자
시야의 확장
• 경험의 확장
=>
시야의 확장
• API Design, 시스템구성 등등
• 나무보다는 숲을 보기 시작
Slide 38
Slide 38 text
클라이언트 개발자
=>
백엔드 개발자
걱정과 불안
• 걱정과 불안
• 서버가 죽으면 어떻게 하지?
• 사용자가 몰리면 어떻게 하지?
• 하루도 편할 날이 없었다. 😂
Slide 39
Slide 39 text
클라이언트 개발자
=>
백엔드 개발자
걱정과 불안
• 걱정과 불안
• 서버가 죽으면 어떻게 하지?
• 사용자가 몰리면 어떻게 하지?
• 하루도 편할 날이 없었다. 😂
🔥🧑💻🔥
• Log, Monitoring
• DB
• Observability
• Test
• Performance
Slide 40
Slide 40 text
백엔드 개발자
=>
테크리드
역할의 확장
• 기술적 의사결정
+
매니저의 역할
• 기능 개발
=>
일이 되게 하는 역할
Slide 41
Slide 41 text
백엔드 개발자
=>
테크리드
다양한 고민
• 어떻게 우리가 일정내 일을 되게 할 수 있을까? ⏱
• 그러면서, 어떻게 의사소통 비용을 어떻게 줄일수 있을까?
• 동시에 함께 성장할 수 있을까? 🤼
Slide 42
Slide 42 text
백엔드 개발자
=>
테크리드
일이 되게 하는 역할
• 상상하기 전략 🧐
• 어떤 프로젝트를 완성하기 위한 과정 전체를 초반에 상상
• 테크스펙, 토론, 피드백을 통한 가시성 확보
• 그러나 회색 영역이 존재
Slide 43
Slide 43 text
백엔드 개발자
=>
테크리드
일이 되게 하는 역할
• 회색 영역 😶🌫
• 기술
:
빠르게 프로토타이핑 검증
=>
일정 수립
• ex 비동기 처리 어떻게 하지? 🧐
• 다양한 비동기 처리 기술 리스트업
• 간단히 구현, 테스트 진행
Slide 44
Slide 44 text
백엔드 개발자
=>
테크리드
일이 되게 하는 역할
• 회색 영역 😶🌫
• 일정
:
꺼내먹기
• 빠르게 동료에게 공유
• 불편하더라도 반드시 공개적인 자리에서 애기하기.
• 좋은게 좋은식 ❌
• 나중에 일정이 더 필요하다는 게 더 불편. 😔
Slide 45
Slide 45 text
백엔드 개발자
=>
테크리드
일이 되게 하는 역할
• 다른일에 관심두기 전략 😎
• PO, 디자이너, 개발자들과 소통
• 성공적인 프로젝트가 되기 위해 계속 제안
• 서로가 챙겨야 하는 것을 챙겨준다.
Slide 46
Slide 46 text
백엔드 개발자
=>
테크리드
일이 되게 하는 역할
• 다른일에 관심두기 전략 😎
• 내 것만 다했을 때 성공하기란, 쉽지 않다.
• 나는 백엔드니까 API 만들었으니 끝! 은 아니다.
• 오픈하지 못하는 프로젝트가 많다.
• 오픈하지 못하면 연습일 뿐.
• 운영경험/성장을 놓치게 됨.
Slide 47
Slide 47 text
백엔드 개발자
=>
테크리드
의사소통 비용 줄이기
• 일이 되게 한다.
=>
일정과 연관
• 일정을 잡아 먹는 것들
= =
시간 비용
Slide 48
Slide 48 text
백엔드 개발자
=>
테크리드
의사소통 비용 줄이기
• 시간 비용
• 보이는 시간
:
기획, 개발, 디자인 등 마일스톤에서 보이는 시간
• 보이지 않는 시간
:
소통, 피드백, 토론, 코드리뷰, 회의 😱
Slide 49
Slide 49 text
백엔드 개발자
=>
테크리드
의사소통 비용 줄이기
• 보이지 않는 시간 줄이기
• 회의 시간 단축, 회의 문서 미리 준비
• 코드 리뷰 정책 정하기
• 코드내 그라운드 룰
• 소통을 위한 용어 사전 정의
Slide 50
Slide 50 text
백엔드 개발자
=>
테크리드
함께 성장하기
• 성장하고 있다.
• 어떻게 이걸 개개인 느낄 수 있게 할까?
Slide 51
Slide 51 text
백엔드 개발자
=>
테크리드
함께 성장하기
• 각자 하고 싶은게 다르다.
🧑💻 API를 잘 만들고 싶다.
👨💻 성능개선!!
👩💻 모니터링, Observability에 관심이 많은데..
Slide 52
Slide 52 text
백엔드 개발자
=>
테크리드
함께 성장하기
• 하고싶은걸 하게.
• 그리고 나는 서포트의 역할
• 기술적 의사결정을 도와주는 역할
• 틀린 의사결정을 내릴 수 있다.
• 함께 한다는 것. 더 나은것을 채택할 수 있는 환경 조성
Slide 53
Slide 53 text
테크리드
=>
CTO
첫번째 했던 일
• 우리가 왜 개발자로 일을 해야하는지?
• 그것이 어떤 가치가 있는지?
• 회사의 서비스/ 제품을 만드는 역할, 핵심이자 중추적인 역할
• 우리가 어떻게 일을 해야하는지
• 그래서 개발자인 여러분 중요
• CTO는 개발자를 위해 존재하는 사람
Slide 54
Slide 54 text
테크리드
=>
CTO
첫번째 했던 일
Slide 55
Slide 55 text
테크리드
=>
CTO
제일 비싼것은 시간
• 시간은 절대 돌아오지 않는다.
• 제일 비싼것을 절약하자!
Slide 56
Slide 56 text
테크리드
=>
CTO
제일 비싼것은 시간
• 조직내 커뮤니케이션 방식 정립
• 코드리뷰
:
감정상하지않고, Blocker ❌
• 슬랙 사용방법
:
스레드, 컨텍스트 많이 전달하기
• 이슈 전달 방법
• Jira 사용방법
Slide 57
Slide 57 text
테크리드
=>
CTO
제일 비싼것은 시간
• 배포 프로세스 정립
• 회사는 고객에게 가치를 전달, 그리고 대가를 지불받는 것으로 성장
• 배포는 고객에게 가치를 전달하는 중요한 과정
• 그렇기 때문에 배포를 어떻게 언제 할 것인가가 중요
Slide 58
Slide 58 text
테크리드
=>
CTO
제일 비싼것은 시간
• 시간적 관점에서의 고민
• 내가 코딩을 하면 빠르다? 시간절약?
• 조직/회사의 성장을 위해서 코딩을 하는 것이 맞는가? 🤯
• 시간 사용의 ROI 끊임없는 고민
Slide 59
Slide 59 text
테크리드
=>
CTO
사람
• 사람이 만사
• 한 사람, 한 사람이 절실, 특히 스타트업
• 시니어, 주니어 이런 기준보다 함께 성장할 누군가 있다는것
• 회사의 제품은 기술이 아니라 사람이 만든다.
• 기술 선택, 사용하는 것도 결국 사람
Slide 60
Slide 60 text
테크리드
=>
CTO
지속가능성
• 단순히 일이 되게 하는것을 넘어서
• 어떻게 비지니스적인 가치를 창출 할 수 있을까?
• 그런 조직이 어떻게 지속가능하게 할 수 있을까? 🤨
Slide 61
Slide 61 text
테크리드
=>
CTO
지속가능성
• 지속가능한 코딩
• 지속가능한 서비스
• 지속가능한 조직
Slide 62
Slide 62 text
테크리드
=>
CTO
지속가능성
• 지속가능한 코딩
• 포맷팅, 린트, 테스트코드, 그라운드 룰
• 지속가능한 서비스
• 지속가능한 조직
Slide 63
Slide 63 text
테크리드
=>
CTO
지속가능성
• 지속가능한 코딩 ✅
• 지속가능한 서비스
• 피처가 아닌 것들 챙기기, 관리포인트 줄이기, 자동화
• 지속가능한 조직
Slide 64
Slide 64 text
테크리드
=>
CTO
지속가능성
• 지속가능한 코딩 ✅
• 지속가능한 서비스 ✅
• 지속가능한 조직
• 사람, 개발 문화 🤼
Slide 65
Slide 65 text
테크리드
=>
CTO
함께 성장
• 내려놓기
• 하고싶은것 하게
Slide 66
Slide 66 text
테크리드
=>
CTO
함께 성장
• 내려놓기
• 모든것을 알 수는 없다.
• 모르는것, 미숙한 것 직접 공개적인 자리에서 애기
• 도움을 청하자 🙏
• 프론트엔드도 잘 모르고, 데브옵스 경험도 없고, k8s는 겉핣기
• Golang 스타일 가이드 같이 만들어봐요! 🤝
Slide 67
Slide 67 text
테크리드
=>
CTO
함께 성장
• 하고 싶은것을 하게
• 회사는 모두를 만족 시킬 수는 없다.
• 들어주기 그리고 지원해주기
• 굳이 그렇게 까지 해야해? 이건 일이잖아?
• 사람에게 얼마나 진심인가?
Slide 68
Slide 68 text
테크리드
=>
CTO
함께 성장
• 하고 싶은것을 하게
• 희망고문은 사양 ✋
• 회사의 방향, 조직에서 할 수 없는것은 없다고 거절
• Rust를 백엔드에서 사용하고 싶다!!!
• 현재 사용할 수 없는 이유 설명
• 납득이 안되더라도 설명하기
Slide 69
Slide 69 text
Ѿۿ
ف۰ Սח ۽
Slide 70
Slide 70 text
결론
커리어 패스
• 특별한 커리어 패스는 없었다.
• 처음부터 CTO가 되겠다는 생각은 없었다.
• 해보고 싶은 것을 찾아서 최대한 했던 커리어패스
Slide 71
Slide 71 text
결론
성장
• 자리/상황이 성장을 만든다.
• 이건 역량의 문제가 아닌 취향의 문제
• 조금 더 무리해서 원하는 방향으로 스스로를 내몰자
Slide 72
Slide 72 text
결론
성장
• 하기 싫은것과 두려운 것을 구분하기
• 불편하긴 마찬가지
• 회피, 일을 시작하기가 싫음.
• 내 상태를 들여다보기 🕵
Slide 73
Slide 73 text
결론
성장
• 하기 싫은 일 😖
• 마치 설거지와 비슷
• 빨리하고 치우자는 느낌으로 진행, 설거지하고 넷플렉스 보자는 느낌
• 스스로에게 보상을 걸고 진행 🎁
• 언제까지 이것을 하면 스스로에게 뭔가 주기
Slide 74
Slide 74 text
결론
성장
• 두려운 일 😱
• 대체적으로 안해보거나 어려운 일
• 가야하는 방향, 필연적으로 성장 할 수 밖에 없는 영역
• 두려움 감정을 배제하면 성장이 보인다. 🤩
Slide 75
Slide 75 text
결론
사람과 매니징
• 개발자 커리어 끝? 새로운 시작!
• 매니징 직군 세분화 😎
• 실장, 팀장
->
CTO, VP of Eng., EM, TechLead, TPM 등
• 공통된 핵심 역할
:
• 각 영역에서 어떻게 일이 되게 할 것인가?
• Blocker 제거의 역할 🚧
Slide 76
Slide 76 text
결론
사람과 매니징
• 사람들은 모두 하고 싶은게 있음
• 절대 간과해서는 안되는 것
• 백엔드
=>
API만들고 싶다.
• 프론트엔드
=>
화면을 이쁘게 만들고 싶다.
• 1on1 통해서 파악
• 원하는 것은 계속 변한다.
1ରਗ
Slide 77
Slide 77 text
결론
기타
• No Sliver Bullet, 로드맵은 로드맵일뿐, 각자의 길은 다르다.
• 기술은 단기투자가 아닌 장기 투자, 투자적 관점으로 접근
• 모든것은 트레이드 오프, 만약 Java/Spring을 선택했다면?
• 공부는 계속 💆
• 동료/복지/좋은 문화는 공기와 같은 것
• 맞는 사람과 함께 하기에도 부족한 시간