개발자
제가 node.js 로 토이프로젝트 진행중에 있는데 코드를 controller와 service 를 분리해서 진행하고있습니다. 예를 들면 예매 기능을 구현한다고하면 예매 성공까지 검증해야하는 로직이 3개라고 치면 1. 컨트롤러에서 해당 서비스코드의 3개의 함수를 각각 실행해서 해당 상태코드와 에러메세지를 작성해 반환할지 아니면 2. 컨트롤러에서 하나의 서비스코드 함수를 실행해 서비스코드에서 해당 상태코드와 에러메세지를 컨트롤러에 전달해 반환할지 고민입니다. 상태코드를 서비스계층 부분에서 담아도 될지 의문이듭니다.
답변 1
인기 답변
요구사항과 기능이 더 세세히 주어져야 1번 2번을 판단할 수 있을 것 같습니다. 근데 예매 기능이면 1번으로 할 것 같습니다. 예를 들어 예매 기능에 다음과 같은 요구사항이 있다고 생각해보겠습니다. 1. A 항공권 예매 선택 2. 금액 결제 3. 결제 완료시 예매 성공 이렇게 되어있다면 1. 항공권 서비스(표 매물 관련) 2. 결제 서비스 3. 사용자가 보유한 항공권 서비스 이렇게 서비스를 나눈 뒤, 각 서비스의 함수를 호출할 것 같네요. 그리고 앞서 말씀드린 요구사항 각각에 대해 에러를 정의하고, 서비스의 함수 별로 에러를 관리할 것 같습니다. JOIN 같은 걸 활용해서 아예 이런 프로세스 자체를 쿼리 하나로 묶는 방법도 있긴 합니다. 근데 그러면 나중에 기능 분리도 어렵고, 단일 책임이라고 보기도 어려워서… 그냥 서비스 함수 별로 쿼리 짜고 호출한 뒤, 함수 결과들을 잘 조합해서 활용하는 게 나을 것 같네요. 지금은 서버가 1개라고 가정한다면 나중엔 항공권 서버랑 결제 서버를 분리한 뒤, 항공권 서버 내의 결제 서비스는 디비 직접 접근에서 결제 서버 API 호출하는 방식으로 유연하게 변경하는 것도 가능하구요!
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!