f-lab에서 이 프로젝트를 진행할 때, 어떤 목표를 이루고 싶은가?
- 포트폴리오 용 프로젝트 만들기
- 과정 공유/문서화 하기
- DevOps 경험하기
- 아키텍처 설계
- CI/CD 기능 구현
- 무중단 배포
- 12 factor app
- 대규모 트래픽을 감당할 수 있는 프로젝트 만들기
- 성능 테스트
- 구조 개선
- 좋은 품질의 프로젝트 만들기
- 테스트코드 작성
- 리팩토링
- 구상&구현
- 서비스 구상
- 기능 구현
- 단위 테스트 코드 작성
- 배포&테스트
- 간단한 배포 - CICD 정도
- 목표 트래픽 정하기
- 성능테스트 진행
- 리팩토링&개선
- Dev
- 목표 트래픽을 달성하기 위한 구조 개선
- 지속적인 리팩토링
- 새로운 기능 추가
- Ops
- 12 factor(무중단 배포 포함) 만족하도록 개선
- Dev
- 비즈니스 로직이 복잡하지 않음
- 이유1: 기능 구현보다 트래픽, 운영 쪽 경험을 목표로 하고 있기 때문에 비즈니스 로직에 크게 신경쓰고 싶지 않음
- 이유1: 서비스 규모가 커짐에 따라서 코드는 로직이 복잡해 질 수도 있고, 시간이 남으면 기능을 추가할 수도 있다. 그래서 처음 규모는 작은게 좋다.
- 대규모 트래픽 처리에 알맞는 서비스
- 비슷한 서비스가 기존에 존재하는 서비스
- 이유1: 1번 조건과 비슷하게 기능 구현&구상에 큰 시간을 소모하고 싶지 않음
- SNS(링크드인, 트위터)
- 쇼핑몰(쿠팡, 무신사)
- 게시글(미디엄(Medium)) - 2
- 주문/배달 서비스(배달의 민족)
- 예매(기차, 공연) 서비스 - 1
- 등...
앞서 말했듯 기능 구현보다는 대규모 트래픽, DevOps 위주로 진행하는게 목표.
기능 구현도 중요하긴 하지만 핵심 목표는 아니기 때문에, 비즈니스 로직과 관련된 구현은 작게 가져가는걸 목표로 함.