⚓️ 항해 플러스 백엔드 과정의 Chapter02 를 마무리하며 벌써 중간 지점이 지났다.
앞으로 5주간의 항해를 위해 '콘서트 대기열 시스템' 이라는 주제의 서비스 뼈대를 완성했다.
중간 지점을 지나오며 Chapter02 에서 경험했던 내용들에 관해 적어 보려고 한다.

 

 

 

GitHub - pbg0205/concert

Contribute to pbg0205/concert development by creating an account on GitHub.

github.com

 

1. 🎫 콘서트 대기열 시스템을 구현해보자.

 우리조는 '콘서트 대기열 시스템' 서비스를 선택했다. 이번 기수에 e-커머스 서비스 요구사항이 개선되어 고민이 많았다. 하지만 가상 면접 사례로 배우는 대규모 시스템 설계 기초를 읽으며 대기열 서비스를 구현 해보고 싶었던 기억을 회상하며 콘서트 대기열 시스템을 선택했다.

 

콘서트 예약 시스템은 아래와 같다. 

대기열 구현은 Redis 를 활용하는 것이 대표적이지만, 점진적인 서비스 개선을 위해 대기열은 우선 DB 를 통해 구현했다.

콘서트 대기열 요구사항

 

 

2. 🗺️ 좋은 코드는 좋은 설계로 부터 나온다.

 첫 주에는 설계 문서를 작성했다. 좋은 코드를 작성하기 위해 좋은 설계가 기반되어야 하기 때문에 설계 문서 작성에 중점을 두었다.

설계에 관한 경험이 부족해 막막했지만 초안을 작성하고 점진적으로 개선하면서 구체화 하기로 했다. 시퀀스 다이어그램 외에 비즈니스 전체 플로우, 요구사항 정의, ERD, 상태 전이 다이어그램, API 명세, 패키지 구성 등을 작성하며 설계에 관한 경험을 쌓을 수 있었다.

 

시퀀스 다이어그램_최최최최종.md

 

 

3. 👨‍💻 구체화된 설계 기반으로 꼼꼼한 테스트하기

 구체화된 문서화 덕분에 꼼꼼한 테스트가 가능했다. 명확한 요구사항과 제약 사항이 있으니 코드 작성이 수월하고 이를 테스트 코드로 녹여내며 어마어마한 안정감을 경험했다. 테스트 코드로 요구 사항을 충분히 검증하고 있으니 추가 기능 개발과 리팩토링을 하는데 자신감을 가지고 개선할 수 있었다.

142개 테스트에서 오는 안정감

 

4. 가장 힘들었던 1주일, Best Practice 에도 올라 보다.

서버 구축 과제 난이도는 정말 상당했다... 일주일 안에 7개의 API 작성과 테스트를 해야 했기 때문에 작업량이 많았다. 일요일부터 수요일까지 새벽 2시까지 해도 70% 밖에 완료하지 못해 목요일에는 3년 만에 밤을 샜다. 아마 항해를 시작하고 가장 불태운 한주이지 않았을까 싶다. (제발 이후에는 밤새는 일이 없었으면,,,🙏)

해뜨고 잠에 들었던 4주차,,,

 

 

3년 만의 밤샘 덕분이었을까. 운이 좋게 생각지도 못한 따봉(👍)을 받았다. 팀원과의 밤샘 작업이 없었다면 절대 못 받았을텐데, 팀원들의 서포트 덕분에 새벽까지 마무리해서 제출할 수 있었다. (GOAT 8조)

 

 

5. 얼마나 성장했을까?

설득력 있는 개발자가 되고 싶어 항해를 시작했다. 중반을 향해 가고 있는 지금, 시작한 계기에 관한 답변은 아직 NO 지만, 1달 전과 비교하면 많은 경험을 했다. 구체적인 요구사항 정의, 명확한 설계, 테스트가 주는 안정성을 경험하며 개발 방식에 대한 큰 Mind Shift 가 있었다. 

 

다음주부터 서비스를 개선하고 대용량 처리가 가능한 서비스로 개선하는 과정이다. 앞으로의 경험들도 기대된다.

이후 과정도 지치지 말고 완주합시다. 👏