⚓ 목차
- 항해플러스를 참여하기 전 백그라운드
- 항해플러스 1기에 합류하기로 결심한 이유
- 항해플러스가 실제로 좋았던 부분
- 결과물
- 앞으로의 도전 계획
- 소감
1. 항해플러스를 참여하기 전 백그라운드
- 개발자로 취업하게 된 것은 2016년 1월, 벌써 8년차를 달리고 있다. 그 동안 2곳의 회사를 거치면서 안드로이드 개발부터 웹 개발, 최근 CS 프로그램 개발까지 다양한 개발스텍을 쌓아왔다. 언어도 이것저것, DBMS도 이것저것, 프레임워크도 이것저것 경험해봤으나 개발 언어가 그리 중요하지는 않다는 것을 느꼈다.
- 지금 다니고 있는 회사는 Microsoft 제품들을 판매하고 있어서 MS의 기술스택을 주로 사용하고 있다. 백엔드는 ASP.NET Core ( .NET 6 ), 프론트엔드는 Angular, RDBMS는 SQL Server (MS SQL)를 사용하고 운영은 모두 Microsoft Azure 내에서 제공하는 서비스들을 사용하고 있다. Repository나 CI/CD 파이프라인, 프로젝트 관리 툴로 Azure DevOps를 사용하여 관리하고 있다.
- 작년 말부터 테스트 코드의 필요성을 느꼈고 패캠에 이규원님의 TDD강의 2편, .NET 예제로 배우는 단위테스트 책을 보며 공부를 시작했다. 공부를 하다보니, 도메인 주도 설계에도 관심이 생겨 도메인 주도 설계 철저 입문이라는 책도 보게 되었던 것 같다. 이것 저것 공부를 했으나 실무에 적용은 하지 못한채 접어 놨다. 어디서부터 어떻게 적용해야할지, 무엇을 테스트해야할지 그런 의문이 들었던 것 같다. 신규 프로젝트를 들어가고, 프로젝트 관리 프로세스 컨설팅을 받게 되면서 업무가 많이 바빠 손을 놓게 되었다.
2. 항해 플러스 1기에 합류하기로 결심한 이유
- 현재 클로즈 베타 테스트를 진행 중이다. 기능상 개선해야할 것들도 있고, 오류들도 쏟아져 나왔다. 어떤 기능을 수정하면 잘되던 기능이 갑자기 안되기도 하고 버그가 발견돼서 코드를 수정하려고 열어보면 보기만해도 짜증나는 코드들이 섞여 있었다. 출시 일정이 계속 밀리게 되었다. 이런 상황에서 팀장님이 항해플러스 커리큘럼을 보고 추천을 해주셨고 검토해보니 지금 딱 우리팀에 필요한 교육과정이라 생각이 들어 참여를 결심하게 됐다.
- 주 목적: TDD, 장애대응 경험
3. 항해플러스가 실제로 좋았던 부분
코드리뷰
- 가장 만족했던 부분은 코드리뷰였다. 회사에 코드 리뷰해줄 수 있는 사람이 있다는 것은 큰 행운이라고 생각한다. 나는 개발자로 일하는 동안 코드 리뷰라는 것을 받아본 적이 없다. 멘토님을 통해 내가 개발자로써 어떤 모습이 되고 싶은지 생각을 하게 되었다. 멘토님은 철학이 있는 개발자였다. 모든 코드에 원리 원칙이 있었다. 내가 그 동안 생각해보지 못한 부분에서 많은 깨달음을 준 경험이었다.
- 가장 놀라웠던 부분은 모델 클래스였다. 객체지향에 대한 개념을 배우면서 TV, Animal, Car 예시를 숱하게 봐왔다. 하지만 개발할 때는 너무나도 당연하게 모델(엔티티) 클래스를 그냥 Table 구조로써만 사용해 왔다. 절차 지향적인 부분을 로우 레벨로 내리면서, Service Layer의 코드가 간결해지는 것을 보고 그 동안 내가 짜왔던 코드는 객체지향이 아니었다는 것을 깨닫게 되었던것 같다.
- 도메인 주도 설계 절저 입문 책을 읽으면서 한번도 이런식으로 적용할 수 있겠다는 생각을 하지 못했던것 같다. 내 공부방법이 뭔가 잘못됐었구나라는 반성도 하게 되었던 것 같다.
- 멘토링 과정 키워드: DDD, OOP, Tastable한 코드 작성 방법, 응축/응집, 유비쿼터스 랭귀지, Facade Layer, EDA, EDA에서 Transaction 처리
실제 장애대응 경험
- "모든 것은 실패한다." ( Werner vogels )
- 장애 모니터링 시스템을 구축하고, 장애 시나리오를 작성하고 모의 훈련을 진행한다. 구축 과정에서 뜻대로 되지 않고, 많은 우여곡절이 있었다. 처음 배포한 환경은 Azure VM에 Docker Compose방식으로 배포 했었는데 장애대응 과정이 시작되면서 AKS로 변경할 필요성이 있었다. Kubernetes에 대해서 경험이 거의 없던터라 환경변수 문제, deployment.yaml 파일 생성 방법 등 매일이 새로운 도전과제였고, 삽질의 연속이었던 것 같다. 시나리오 작성 주차에는 여러 회사의 장애 대응 시나리오에 대해서 분석하게 되었고, 데이터베이스 가용성과 확장성 있는 설계, 샤딩에 대한 개념에 대해서 알게 되었다.
동기부여
- 항해플러스에 참여하게 되면서 정말 놀랐던 부분 중 하나는 팀원들의 열정이었다. 정말 열정 넘치는 사람들이 많다. 오픈 소스 때 알게 된 팀원은 항해플러스 과정과 동시에 다른 과정도 병행하고 있었다. 매일 학습한 것들을 블로그에 기록하고, Github은 잔디가 촘촘히 채워져있었다. 나도 일이년차에 돈 버는 것이 아닌 성장에 조금 더 시간을 썼었더라면 이라는 생각을 계속 했던 것 같다. 팀원들이 열심히 하는 모습을 보면서 동기부여도 많이 됐고, 응원도 많이 하면서 좋은 결과를 낼 수 있었던 것 같다.
특강
- 이력서 특강과 리뷰 문화 특강이 기억이 남는다. 당장 이직 생각은 없지만, 이직을 떠나서 이력서 관리는 해야겠다는 생각이 들었다.
4. 결과물
TDD 프로젝트
- Repository : https://github.com/hgh9/vetty-backend
- 담당 : 예약취소 기능, 결제 기능
장애대응
- 담당 : Microsoft Azure 담당, Azure DevOps CI/CD, AKS 구축, 장애 모니터링 시스템 구축
오픈소스
- npm repository : https://www.npmjs.com/package/dummy-generator
- github : https://github.com/team-opensource-plus/dummy-generator
5. 앞으로의 도전 계획
- 항해 과정 중 아키텍처에 대해 관심이 생겼고, 하나씩 차근차근 학습해 나갈 계획이다.
- 회사 프로젝트 - 코드 개선 및 테스트코드 작성 (e2e)
- GoF의 디자인패턴 학습
- EDA 프로젝트 진행
- 큐잉시스템 학습
- 회사 팀원들 코드리뷰 해주기
- 회사 팀원들 TDD 경험시켜주기
- 나만의 원리원칙, 철학을 가진 개발자 되기
6. 항해를 마치며
- 정말 숨가쁘게 달려왔다. 10주동안 매주 도전과제가 주어지면서 팀원들과 임무를 완수하기 위해 정말 열심히 했던 것 같다.
- 교육을 디테일하게 알려주지는 않는다. 하지만 팀원들과 같은 목표를 가지고, 임무를 하나하나 완수해 나가면서 정말 큰 성취감을 느끼게 되는 교육과정인 것 같다.
항해플러스 추천 이유
1. TDD를 맛볼 수 있다.
2. 대기업 시니어 개발자분들에게 코드리뷰를 받아볼 수 있다.
3. 대기업 취업 꿀팀이 생긴다.
4. 퀀텀 점프를 단축 시킬 수 있다.
5. 전우들이 생긴다.
6. 비슷한 연차에서도 날고 기는 사람들을 만날 수 있다.
7. 그 사람들을 보며 자극 받을 수 있다.
8. 회사 업무에서 궁금했던 것들을 은근슬쩍 물어볼 수 있다.
항해플러스 참여시 발생할 수 있는 부작용
1. 몸이 상할 수 있다.
2. 회사 업무가 밀릴 수 있다.
3. 회사에 지각하는 횟수가 늘어날 수 있다.
꿀팁
- 팀원들 칭찬을 많이 하려고 했다. 좋은 분위기에서 서로 응원하며 즐겁게 프로젝트를 진행할 수 있었던 것 같다.
- 목표를 구체화하려고 했다. 이번주 우리 팀이 해야할 것들은 무엇이고, 끝냈을 때 어떠한 결과물들이 나와야할지
- 이벤트스토밍 ( 타팀에서 도메인 설계할 때 사용한 기법이라고 하는데 아주 유용해 보였다.)
'교육 > 항해플러스' 카테고리의 다른 글
[8주차]항해플러스 오픈소스 프로젝트 1주차 회고 (0) | 2023.08.06 |
---|---|
[7주차]항해플러스 중간발표 회고 (0) | 2023.07.30 |