대규모 서비스를 지탱하는 기술, 3강 서비스 개발의 현장 요약
개발 팀을 나누는 방식
- 서비스 개발부
- 서비스 구현 및 애플리케이션 측면 개선
- 애플리케이션 코드로 부하 개선이 가능한 경우 인프라부와 협업
- 인프라부
- 서버/인프라 시스템의 운용을 담당하는 팀
- 서버 준비, 데이터 센터 운용, 부하 분산 등을 담당
- 부하 상황 등 모니터링
커뮤니케이션
- 그룹웨어 이용
- 되도록 공유가 되지 않는 개인 이메일 사용하지 않음
- 위키에 자료를 남김
- IRC
- 사내 메신저로 이용
- 시스템 알람용으로도 사용
- 장애 통지
- 서버 관리 도구
- 현대의 뉴렐릭과 비슷한 서비스 같음
실무 서비스 개발
- 아침 스크럼, 진척 상황, 할 일 공유
- 아침 미팅에서 기능 구현 태스크 담당자를 정함
- 기능 구현 시 가능한 테스트 코드 작성
- 가능한 -> 타협 가능하다는 의미
- 기능 구현 완료되면 버전 관리 도구에 커밋
- 커밋된 코드에 대한 코드 리뷰
- 버그, 코딩 규약 위배, 과부하 유발 코드 수정
- 프로덕션 환경에 머지 후 적용
기타
- 간혹 짝프로그래밍 수행
- 피로도가 높으므로 매일 하진 않음
개발 언어
- 동일 레이어에 대해서는 1개의 언어만 사용
- ex) 프론트는 자바스크립트만 백엔드는 자바만
미들웨어 및 프레임워크
- DB 는 항상 동일한 것을 사용
- 가장 기본으로 사용되는 것을 보통 채택함
OS, 에디터
- 자유롭게 사용 가능
버전 관리
- GIT 이용
- BTS (Bug Track System) 이용
- 아마 지라와 비슷한 역할 같음
개발 툴 선택의 핵심
- 고기능 보다는 필요한 기능을 확실히 제공하는 도구 선택
- 얼마나 기존의 Workflow 에 잘 녹아드는가
반응형
'인프라 > 대규모 서비스를 지탱하는 기술' 카테고리의 다른 글
대규모 서비스를 지탱하는 기술, 6강 규모 조정의 요소 요약 (0) | 2023.06.23 |
---|---|
대규모 서비스를 지탱하는 기술, 5강 대규모 데이터 처리의 어려운 점 요약 (0) | 2023.06.23 |
대규모 서비스를 지탱하는 기술, 4강 대규모 데이터란 요약 (0) | 2023.06.23 |
대규모 서비스를 지탱하는 기술, 2강 계속 성장하는 서비스와 대규모화의 벽 요약 (0) | 2023.06.23 |
대규모 서비스를 지탱하는 기술, 1강 대규모 서비스와 소규모 서비스 요약 (0) | 2023.06.23 |