일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Mock
- 부트캠프
- delegation
- Codegen
- Structures and Classes
- SWIFT
- NumberFormatter
- 스타트업주니어로살아남기
- 야곰아카데미
- 독후감
- Navigation
- Info.plist
- 독서후기
- viewcontroller
- Failed to register bundle identifier
- 아이폰
- contentInset
- @available
- UIResponder
- IOS
- View Life Cycle
- NotificationCenter
- SWIFTUI
- roundingMode
- xcode
- 책후기
- mvvm
- Modality
- 스위프트
- human interface guidelines
- Today
- Total
호댕의 iOS 개발
[컨퍼런스] 구름 Commit 성장: 개발자의 평생 과제 본문
구름은 진짜 개발 초보일 때(Xcode조차 안 깔려있던 시절...) 한 번 IDE를 사용해본 적 있었다.
그러다가 구름에서 Commit이라는 컨퍼런스를 연다는 것을 알게 되었고 신청을 했다.
iOS 개발자를 타겟팅해서 하는 컨퍼런스는 아니었지만, 개발자라면 누구나 관심있을 성장에 대해 이야기하는 컨퍼런스라서 바로 신청을 했다.
그럼 컨퍼런스에서 들었던 내용을 정리해보고 느낀 점과 현재 나의 상황을 돌아보자.
성장 : 개발자의 평생 과제
컨퍼런스를 듣기 전 생각
컨퍼런스는 당근마켓의 SRE로 재직 중이신 김승호님이 해주셨다.
SRE라는 직군에 대해 굉장히 생소했었는데 클라우드 인프라 / 서비스 안정성을 위해 작업을 하며 이를 갖출 수 있도록 플랫폼을 구축하는 작업을 하신다고 한다.
일단 강연 주제가 굉장히 와닿았다.
개발자로서 현재 첫 발을 내딛고 첫 회사에 잘 다니고 있긴 하지만, 내가 제대로 성장하고 있는걸까? 에 대한 고민은 여전히 가지고 있었기 때문이다.
강연을 하시는 분도 나와 마찬가지로 다른 직무를 하다가 직무 전환을 하고 개발자로 근무를 하고 계셔서 강연에 좀 더 관심이 깊게 갔던 것 같다. 강연자 분의 이력을 들으면서 성장에 대한 답을 찾을 수 있을까 기대를 갖고 강연을 듣게 됐다.
컨퍼런스는 어땠나?
성장을 이야기 해주시기 위해 승호님이 생각하는 업무 잘 하는 사람들에 대해 이야기를 해주셨다. 업무를 잘 하는 사람의 특징을 알고 이처럼 되기 위해 노력한다면 좋은 개발자로 성장할 수 있기 때문이다.
승호님이 업무를 잘 한다고 느끼셨던 사람들의 능력은 크게 3가지로 나뉘었다.
- 개발 능력
- 업무 능력
- 협업 능력
어떻게 보면 개발자의 업무 능력 = 개발 능력 아닌가? 라고 생각할 수도 있지만 승호님이 말씀해주신 업무 능력은 단순히 개발을 잘하는 것이 아니라 좀 더 제너럴한, 모든 직군에서 통용될 수 있는 업무 능력이었다.
📝 업무 능력
업무 능력에도 크게 3가지로 구분해서 말씀주셨다. 하나씩 살펴보자
1️⃣ 우선 순위를 정하는 능력
아이젠하워 매트릭스를 기반으로 설명을 해주셨다.
이때 중요하면서도 시급한 큰 태스크가 있는 경우를 생각해보자. 만약 하나의 큰 태스크를 상단의 오늘, 지금 쪽에 넣어놓는다면 다른 태스크가 들어오거나 다른 중요하고 시급한 일이 있어도 처리하지 못하는 일이 생길 수 있다.
이 때는 큰 태스크를 잘게 쪼개서 다시 위 매트릭스를 통해 분류를 해볼 수 있을 것이다.
만약 결제 서버 작업을 한다고 했을 때에도 일단 API 스펙을 결정하는 작업을 중요함 / 시급함에 넣고 후순위로 처리해도 되는 작업은 중요함 / 여유있음에 넣어놓듯 말이다.
특히 본인의 작업이 다른 사람들의 작업을 막고 있는 작업이 있다면 이는 우선순위를 높여서 처리해야 할 작업이다.
2️⃣ 우선 순위 지키기
위처럼 우선순위를 정했다면 이를 지키는 것도 중요하다.
일을 하다보면 반드시 이런 일들이 발생한다. `이거 하나만 해줄 수 있어요?`
물론 우선순위가 높은 일들이 없다면 이런 요청이 들어왔을 때 처리를 해드려야겠지만 우선순위가 높은 업무를 하고 있다면 우선순위를 지켜서 업무를 하는 것도 중요하다.
만약 요청이 들어오는 작업을 하게 되는 경우 다른 일로 빠지면서 다른 일의 우선순위가 높아질 수 있기 때문이다.
3️⃣ 우선 순위 조정하기
우선 순위를 지키면서 일을 하는 것도 중요하지만 또 중요한 일이 중간에 들어오지 말라는 법은 없다.
이때는 우선 순위를 잘 조정해서 하는 능력도 필요하다.
스타트업의 채용공고들을 보면 자기 주도성을 가진 인재를 원한다고 나와있는 경우를 심심치 않게 볼 수 있는데 이는 이런 자기 조정 능력도 중요하게 포함하고 있을 것이다.
🧑🏻💻 개발 능력
이 또한 3가지 단계를 통해 좀 더 성장할 수 있다.
1️⃣ 호기심 자극하기
성장을 원하더라도, 만약 어떤 것을 해야할지 모른다면 개발 능력을 성장시키가 어려울 것이다.
그래서 가장 첫 단계는 여러 자극들을 통해 호기심을 자극할 수 있는 방법이다.
- 개발 관련 뉴스레터 구독해보기 (실제로 weekly {본인이 하고 있는 개발 언어}만 쳐보더라도 굉장히 많은 뉴스레터를 찾을 수 있었다)
Swift 관련이라면 해당 github 레포에서도 많은 정보를 담고 있다.
영어가 부담이라면 이런 레포도 존재한다.
- 유튜브나 블로그
- 커뮤니티나 개발 행사에 참여 (개발 행사는 festa / 트위터 / onoffmix 등에서 찾을 수 있음)
2️⃣ 호기심 채워가기
호기심만 아무리 채운다고 해도 성장을 하는 것은 아니다. 이를 기반으로 궁금한 부분을 공부하고 채워나가야 한다.
- 책
- 온라인 강의
- 스터디 (공부할 수 밖에 없는 환경 조성)
3️⃣ 좋아하는 기술을 사용하는 환경으로 들어가기
회사에서는 항상 좋아하는 기술만으로 개발하는 것은 쉽지 않다. 따라서 이를 의도적으로라도 사용할 수 있는 환경이 주어지면 좋다.
- 사이드 프로젝트
위에서 말한 것들은 수동적이라 볼 수 있는 뉴스레터부터 다양한 사람들과 능동적으로 할 수 있는 사이드 프로젝트를 모두 포함하고 있다. 이들을 잘 조합해서 채워나간다면 개발 능력도 성장할 수 있을 것이다.
🤝 협업 능력
1️⃣ 요청에 응답하기
API에서도 요청에 대한 응답을 빠르고 정확하게 보내주는 것이 아주 중요하다.
협업을 할 때에도 이는 매우 중요하다. 속도와 정확함 모두를 지키며 협업하는 것은 매우 어렵지만 이 둘 모두를 충족하는 요청에 대한 태도가 중요하다.
다만 정확성을 높이기 위해 항상 완벽할 필요는 없다.
Done is better than perfect
완벽한 것보다 한 것이 낫다는 말인데 이는 협업에서도 적용할 수 있다.
이는 물론 요청에 대한 업무를 대충하라는 의미가 아니라 업무를 완수할 수 있는 수준이 됐다면 마무리를 지을 시점도 잘 파악하는 것이 중요하다는 것이다.
2️⃣ 업무를 기록하고 공유하기
개발자는 무릇 코드로 이야기를 해야 한다고 할 수도 있다.
하지만 문서화를 하고 본인이 한 업무를 정리 공유하는 것도 협업에 있어서 중요하다.
항상 개발자들과 협업을 하는 것이 아니고 개발자 중에서도 항상 같은 언어를 사용하는 개발자들과 협업하는 것이 아니기 때문이다.
이는 자신의 업무를 회고하거나, 추후 다른 회사로 가게 되더라도 자신이 어떤 업무를 했는지 보다 직관적으로 알 수 있기 때문에 중요하다.
👨🏻🦳 성숙한 개발자
그렇다면 성숙한 개발자는 어떤 개발자일까?
1️⃣ 단언하지 않는다
성숙하고 이미 많은 것을 아는 개발자일수록 본인이 모를 수 있다는 것을 잘 알고 있다. 오히려 성숙하지 않은 사람이 본인의 말이 틀렸을 수도 있다는 것을 모르고 단언한다.
2️⃣ 우월감을 드러내지 않는다
오히려 본인 분야의 방대함을 아는 사람들은 다른 직군의 사람들과 이야기를 할 때에도 다른 직군 또한 방대할 것이라는 것을 잘 알고 있다. 따라서 다른 사람의 분야도 쉽게 말하지 않는다.
3️⃣ 유행을 좇지 않는다.
너무 현재 유행하고 있는 용어 자체에 집착하지 않는다.
컨퍼런스를 듣고 나서 (그럼 나는 지금 어떻게 하고 있나?)
일단 단순히 특정 언어의 기술에 대한 컨퍼런스가 아니라 모든 개발자들이 공통으로 고민하고 있는 주제에 대해 이야기하는 컨퍼런스라 나는 좋았다.
현재 내가 하고 있는 고민과도 맞물리고 말이다.
물론 말씀하신 부분들이 보면 당연한 것들 아닌가 생각할 수도 있지만 그렇게 따지면 다양한 자기계발서 등에서 말하고 있는 내용들도 다 알고 있는 내용 아닐까? ㅎㅎㅎ
내가 실천을 안 하고 있는 것일뿐...
그래서 당연하고 알고 있는 것이라도 한 번 정리하고 돌아보는 것도 중요하고 좋은 시간이었다.
그럼 나는 지금 어떻게 하고 있을까?
사실 업무 능력과 협업 능력은 회사의 업무 툴인 Zenhub를 통해 티켓을 발행하고 스케줄을 조정하며 잘 진행되고 있고, 협업 능력도 꾸준한 sync-up 미팅과 slack을 활용해 잘 이뤄지고 있다고 생각한다.
(물론 업무 우선순위를 지키고 조정하는 것은 업무를 해나가면서 좀 더 성장해야 할 부분이라고 느끼며, 협업 능력도 지속적으로 반성하고 성장시켜나가야 할 부분이라 생각한다)
평가 지표 | 나는 어떻게 하고 있나요? | |
개발 능력 | 호기심 자극하기 | 다른 지인들에게 TCA나 SwiftUI에 관한 내용도 꾸준히 접하고 있고, 꾸준히 컨퍼런스나 커뮤니티도 참여할 수 있으면 참여를 하고 있다. (11월 30일에 참여할 let's swift도 기대된다...) |
호기심 채워가기 | 현재는 책과 온라인 강의(Git에 대한 강의 / 아키텍처, 테스트 코드에 대한 강의)를 들으며 채워가고 있지만 꾸준함이 좀 떨어지는 것 같다. WWDC도 좀 더 꾸준히 들을 수 있도록 하고 스터디도 해봐야겠다고 생각이 들었다. |
|
좋아하는 기술을 사용하는 환경으로 들어가기 | 그래도 사이드 프로젝트는 2개(1개는 이미 출시 / 1개는 심사 중)를 진행하며 안 써본 기술들에 대해서도 많이 배울 수 있었다. 넥스터즈 활동을 하며 다음에는 SwiftUI를 사용할 수 있도록 해봐야겠다. |
'Software Engineering' 카테고리의 다른 글
[컨퍼런스] Let's Swift 2022 (0) | 2022.11.30 |
---|---|
[토이 프로젝트] holdy (클라이밍 모임 서비스) (1) | 2022.11.20 |
[Git] git fetch VS git remote update, 이 둘의 차이점은 뭘까? (0) | 2022.11.06 |
[Terminal 명령어] 자주 사용하는 Terminal 명령어에 대해 알아보자 (0) | 2022.08.28 |
[Git] rebase를 자세히 알아보자 (개념, 사용법, 강제 푸쉬 등에 관하여) (0) | 2022.08.09 |