장점과 단점을 프로젝트 경험으로 비교한 경우
장점은 서비스별로 독립적으로 수정하고 배포할 수 있다는 점이라고 생각합니다. 팀 프로젝트에서 한 팀원이 결제 서비스를 고치는 동안 저는 회원 서비스를 건드리지 않고 작업할 수 있었습니다. 다만 단점으로는 서비스가 늘어날수록 관리해야 할 것도 늘어난다는 점을 느꼈습니다. 서비스 세 개만 나눴는데도 실행 환경을 맞추는 데 시간이 꽤 걸렸습니다.
면접관이 이 한 문장으로 확인하려는 것들. 각 갈래를 알면 답의 뼈대가 잡혀요.
장점은 서비스별로 독립적으로 수정하고 배포할 수 있다는 점이라고 생각합니다. 팀 프로젝트에서 한 팀원이 결제 서비스를 고치는 동안 저는 회원 서비스를 건드리지 않고 작업할 수 있었습니다. 다만 단점으로는 서비스가 늘어날수록 관리해야 할 것도 늘어난다는 점을 느꼈습니다. 서비스 세 개만 나눴는데도 실행 환경을 맞추는 데 시간이 꽤 걸렸습니다.
RESTful API로 단일 서버를 구성할 때는 하나의 코드베이스만 관리하면 됐지만, MSA로 나누고 나니 서비스마다 API 명세를 따로 관리해야 했습니다. 장점은 특정 기능만 트래픽이 몰릴 때 그 서비스만 늘리면 된다는 확장성인데, 저희 프로젝트는 규모가 작아 이 장점을 체감하지는 못했습니다.
장점은 장애가 한 서비스에 국한될 가능성이 있다는 점이라고 생각합니다. 다만 저희 팀은 인원이 적어서 서비스마다 담당자를 나누다 보니 오히려 소통 비용이 늘었습니다. 서비스 하나를 수정하려면 다른 서비스 담당자와 API 형식을 맞추는 논의가 매번 필요했습니다. 규모가 작을 땐 오히려 단점이 더 크게 느껴졌습니다.
같은 실수가 반복돼요. 이것만 피해도 절반은 갑니다.
진짜 면접은 두 번째 질문부터예요. 이 답 뒤에 따라올 법한 것들.