Skip to content

Commit

Permalink
Docs: Add The_Missing_README/Chapter01.md
Browse files Browse the repository at this point in the history
  • Loading branch information
fkdl0048 committed Feb 20, 2024
1 parent 800b433 commit f0eb1e7
Showing 1 changed file with 70 additions and 0 deletions.
70 changes: 70 additions & 0 deletions The_Missing_README/Chapter01.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
## 1장 여정을 시작하며

> 개발자로서의 첫 출발, 앞으로 어떤 길이 펼쳐질까
이책은 앞으로 소프트웨어 엔지니어로서 경력을 쌓아나갈 견습자를 위한 책이다.

실제 회사의 입장도 신입에게 큰 기대 없이 협업이 가능한 인력을 원한다. 이후 교육을 통해 적합한 인재로 키우는 것이 목표이다.

따라서 이 책은 그 과정에서 좀 더 멀리보고, 쉽게 접근할 수 있도록 도움을 주는 책이다.

### 목표를 세우자

누구든 초보 엔지니어부터 시작한다. 더 나은 엔지니어로 성장하려면 몇가지 핵심 분야에 익숙해져야 한다.

- 기술 지식: 기본적인 컴퓨터 과학의 기초 지식으로 IDE, 빌드 시스템, 디버거, 테스트 프레임워크, CI/CD, 버전 관리 시스템 등을 이해하고 사용할 수 있어야 한다.
- 실행력: 코드를 이용해 문제를 해결함으로써 가치를 만들어내며 비즈니스 간의 연결고리도 이해해야 한다.
- 의사소통: 문서는 물론, 구두로도 명확하게 소통이 가능해야 한다.
- 리더십: 범위가 잘 정의된 작업을 독립적으로 수행할 수 있어야 하며, 실수로부터 빠르게 배울 수 있어야 한다.

### 여정을 위한 지도

> 누구든 목표에 도달하려면 지도가 필요하다.
#### 초보자

초보자는 업무 방식에 익숙해지는 것이 먼저다. 그 과정은 온보딩회의로 시작하며 기본적인 업무 프로세스에 대해서 배운다. 이 과정에서 능동적인 요청과 행동이 필요하다.

*온보딩이란, 조직에 새로 합류한 사람이 빠르게 조직 문화를 익히고 적응하도록 돕는 과정이다.*

- 커닝햄의 법칙과 바이크셰딩
- 커닝햄의 법칙: 인터넷에서 올바른 답을 얻는 가장 좋은 방법은 질문이 아닌 잘못된 답을 게시하는 것이다.
- 바이크셰딩: 그다지 중요하지 않은 문제에 대해 사소한 논의가 길어지는 상황

온보딩과정에선 팀 프로세스에 대해서 명확하게 이해하고, 이를 잘 이해하고 학습해야 한다. IDE나 미팅과정, 코드리뷰 과정 등 협업에서 이뤄나는 행위를 잘 이해하고 팀에 맞출 수 있도록 해야한다.

#### 질풍노도의 성장

처음에는 혼란스럽겠지만, 대부분은 기준의 코드베이스 혼돈스럽거나 겁이 나는 작업일 수도 있다. 모르는 점이 있다면 질문하고, 리뷰를 요청한다. (피드백)

성장을 위한 학습은 매우 중요하다. 코드를 빌드, 테스트, 배포하는 방법을 잘 살펴보자.

이후 팀장과의 관계를 발전시키고 업무 방식에 대한 이해, 대화를 통해 회의, 업무 방식을 발전시켜 나간다.

첫 번째 회의 때 로드맵이나 팀 성격에 대한 이해도 중요하다.

#### 신뢰할 수 있는 기여자

지속해서 성장하다 규모가 있는 작업, 프로젝트에 참여하게 되면서 신뢰할 수 있는 기여자 단계에 접어든다. 이때는 좀 더 독립적으로 일할 수 있고, 더욱 신뢰받게 된다.

이때는 손쉽게 운영할 수 있는 프로덕션 수준의 코드를 작성하는 방법, 의존성을 적절히 관리하는 방법, 깔끔한 테스트를 작성하는 방법 등을 배우자.

이제는 다른 팀원도 도와주어 진정한 협업에 참여해야 한다. (도움이아닌 교류)

#### 운영의 바다

작업 규모가 커짐에 따라(할당 받은 책임이 커짐에 따라) 사용자에게 전달되는 과정에 대해 더 많이 알게 될 것이다. 이 과정에서는 테스트, 빌드, 릴리스, 배포, 롤아웃, 등 많은 일이 일어난다.

이 과정에선 스킬적인 부분이 많이 필요하다.

#### 능력자의 땅

이제는 어느정도 소규모 프로젝트를 직접 주도하는 역량을 갖췄다고 생각할 것이다. 이 능력자 단계에서는 기술 설계 문서를 작성하고 프로젝트 계획 수립을 거들어야 한다.

소프트웨어를 설계하다 보면 또 다른 수준의 복잡도를 마주하게 되기 마련이다. 첫 설계에 절대로 안주하지 말고 트레이드 오프를 생각하여 시간이 지나도 지속할 수 있는 시스템을 위한 계획을 세우자.

*처음에 설계한 좋아보이던 것들도 시간이 지남에 따라 점차 사라진다. 이때 아키텍처, 빌드 시스템, 테스트 환경등이 눈에 띄게되고 여기서 균형잡기가 시작된다.*

### 전진, 앞으로

이제 초보자로서의 여정에 필요한 지도가 준비되었다. 이 지도를 참고하여 자신만의 로드맵을 그리며 나아가자.

0 comments on commit f0eb1e7

Please sign in to comment.