인프런 백기선님의 강의(더 개발자, 커리어 가이드)를 듣고 정리한 내용입니다
강의 링크 : https://www.inflearn.com/course/개발자-커리어-가이드
꾸준히 수준 높은 해결책을 만들어내는 능력
- 해결하고자 하는 문제를 명확하게 이해
- 많은 경우, 문제를 빨리 진정시키려고만 한다.(mitigation, 불을 끊다)
- 원인까지 파고들어서 근본적으로 해결하도록 노력
- 둘 다 필요한 방법이지만, 한쪽으로 치우치면 안된다.
- 여러가지 해결 방법을 제안할 줄 알아야 한다
- 단기적으로 빠른 해결 방법
- 중장기적으로 근본적인 해결 방법
- 장단점, 복잡도 등을 정리하여 설명 & 제안
- 텍스트 위주의 문서 한 장이면 충분
- 문제원인
- 해결 방법1
- 해결 방법2
- 해결 방법3
- 해결 방법 분석
- 최종 의견 제안
💡 Case Study) 새로운 버전을 배포하는 중인데 버그를 발견한다면?
- 해결 1 : 근본적인 문제를 찾는다
- 해결 2 : 이전 버전으로 되돌린다
- 해결 3 : 현재 배포되고 있는 버전을 막는다
- 3 → 2 → 1 순으로 진행한다
- 버그만 찾는 것이 아니라, 왜 버그를 막지 못했는지까지 파악하고 해결 방법을 제안
엔지니어링 원칙과 업계의 베스트 프랙티스 받아들이기
- 엔지니어링 원칙 예시
- DRY(Don’t Repeat Yourself) : 기존 코드를 재사용하라. 반복하지 마라
- KISS (Keep It Simple, Stupid) : 가능하면 간단하게 구현하라. 오버엔지니어링 하지 마라
- YAGNI (You Aren’t Gonna Need It) : 필요로 하지 않을 것을 미리 구현하지 마라
- SOLID …
- Best Practice 예시
- 테스트 코드
- 리팩토링
- 클린 코드
- 클린 아키텍처
🔥 이런 원칙들을 공부하는 것보다, 적용하는 것이 훨씬 어렵다!
🔥 우선 순위에서 밀려나기 마련인데, 시간을 내서 적용 해야 한다!
💡 Case Study) SQL DB를 NoSQL DB로 바꾼 사례
- Read와 Write의 테이블이 따로 있는데, 복제하는데 시간이 오래 걸려서 장애 발생
- 개발자들은 방어적인 코드를 작성하기 시작
- 근본적인 문제를 해결하기 위해 NoSQL DB로 변경
- 업계의 Best Practice를 따르는 것은 트렌드를 따르는 것이 아니다
지속적으로 개발 방법과 품질을 증진시키려는 노력
- Java, Spring 등의 기술은 기술력의 극히 일부분이다
- 개발 방법과 프로세스를 학습하고 개선하는 것이 훨씬 중요하다
💡 Case Study : 개발 프로세스에서 병목 구조를 찾는 것
- 왜 빠르게 개발해서 배포하는데 오래 걸리는가?
- 코드 리뷰가 빨리 되지 않는 것
- Safe Deploy Policy로 인해 배포 느림 : 그 중에서도 줄일 수 있는 방법을 찾는 것
💡 Case Study : 시스템 장애가 발생했을 때 확인하는 것
- 장애 사후 리뷰(postmoterm)
- 장애 상세 정보
- 장애 범위, 일시
- 장애 처리 방법, 일시
- 장애 근본 원인
- 장애 방지 대책
- 변경 사전 리뷰(변경심의)
- 이런 프로세스가 존재하지 않는다면, 팀원들을 설득해 적극 도입
기술력을 증진시킬 수 있는 방법을 적극적으로 찾기
- 다양한 학습 방법
- 스터디 : 다양한 커뮤니티에서 사람들과 교류
- 책 : 근본적인 자료 찾아 읽기
- 공식 기술 문서 & 원천적인 소스를 읽는 것이 좋다.
- 영어로 된 자료가 많지만, 천천히 읽어보는 것도 추천!
- 처음에는 조금 느릴 수 있지만, 익숙해지면 빨라진다.
- 영어로 된 원본 문서를 읽지 못해서 가공 문서를 읽는 것과, 편의 등을 위해 가공 문서를 읽는 것은 다르다
- 가공 문서를 본다면, 비판적 & 검증하는 마인드로 읽으면 좋다.
- 검증은 코딩을 해보면 된다!
- 글을 눈으로 읽으면서 보는 공부는 학습이 아니다. 손으로 직접 코딩을 해본 것만이 학습한 것이다
- 인터넷 온라인 강의
- 멘토링
- 사이드 프로젝트
동료 또는 다른 개발자의 기술력을 증진시키는 것을 돕기
- 팀 내에서 멘토링, 사수의 역할을 하는 것
- 다른 사람들이 놓치고 있는 것들을 잡아주고 도와주는 것
- 굉장히 중요한 활동임에도 불구하고, 일이 바쁘다는 핑계로 미루는 경우 있다.
- 동료를 도와주면 그만큼 돌아오는 것이 있다.
- 나의 일이 지연되더라도, 긴급한 것이 아니라면 동료들의 문제를 풀어주는 역할을 하는게 좋다
- 세미나 또는 컨퍼런스에서 발표
- 연사로 참여하는 발표나 세미나는 정말 기억에 많이 남는다
- 준비하는 발표자가 가장 많이 배운다. 청중보다 발표자가 더 많은 학습을 한다.
- 공부하는 것 + 전달하는 것까지 연습