[기술면접] backend
Backend Interview QnA
Backend면접 질문과 답
Q1. 마이크로 서비스 아키텍처에 대해
- 하나의 큰 어플리케이션을 여러 개의 작은 어플리케이션으로 쪼개어 변경과 조합이 가능하도록 한 아키텍처
- 독립적인 역할을 수행하는 작은 단위의 서비스로 분리하여 설계하는 패턴
- 인증을 담당하는 서비스(auth.example.com)
- 자동 검색을 담당하는 서비스 (autocomplete.example.com)
- 언제 필요로 하는가?
- 배포에 오랜 시간이 걸리기 시작한 경우
- 단순한 기능 수정에 전체 QA가 필요한 경우
- 단순한 버그 수정에 다른 버그가 생겨나는 경우
- 현재의 어플리케이션을 기능 단위로 나눌 수 있는 경우
- 이점
- 작은 단위이기에 변경이 용이하다.
- 그 변경이 다른 서비스에 미치는 영향이 적다.
- 배포가 빠르다.
- 서비스별 스케일 아웃이 가능하기에 효율적인 자원 사용이 가능하다.
- 서비스별 개발 조직을 나눌 수 있어 의사결정이 빠르다.
- 단점
- 서비스간 통신에 추가 비용이 든다.
- 이는 응답 속도 증가의 요인이 된다.
- 분산된 데이터베이스(종류가 다를수도 있는)의 트랜젝션 관리가 용이하지 않기에 추가적인 노력이 필요하다.