인프런 커뮤니티 질문&답변
api를 어느 컨트롤러에 작성해야하는지는 어떤 기준으로 해야하나요?
작성
·
24
0
api 매핑 메소드를 어느 기준으로 어떤 컨트롤러에 작성해야하는지 궁금하여 질문좀 드립니다.
먼저 글을 작성할 수 있는 웹사이트(게시판)가 있고, 홈화면에서 글쓰기 버튼을 눌러 글쓰기 페이지)로 이동 후 글을 쓰고 등록하면 글 데이터가 DB에 저장할 수 있는 사이트가 있다고 가정하겠습니다.
그리고 프론트는 리액트이고 글쓰기 페이지로 이동시 프론트에서 요청 없이 페이지 이동을 하고 글 등록 버튼을 눌렀을 때에 /write 경로로 서버에 요청이 간다고 가정하겠습니다.
질문입니다.
등록 버튼을 눌러 /write라는 url이 서버로 오면 이 url은 다음 중 어느 컨트롤러에서 매핑되어야할까요?
홈 컨트롤러 - 홈화면에서 글쓰기 페이지(/write)로 이동한 것이니 홈 컨트롤러에서 매핑한다.
유저 컨트롤러 - 글은 유저가 쓴 것이고 유저와 관련있으므로 유저 컨트롤러에서 매핑한다.
글 컨트롤러 - 글 또한 별도로 DB에 관리되어야하므로 글 컨트롤러에서 매핑한다.
이러한 비슷한 상황이 온다면 url은 어느 기준으로 컨트롤러에 매핑 시켜야하나요?
감사합니다.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. yoon6669님.
API 매핑 메소드를 어느 컨트롤러에 작성해야 하는지 결정하는 것은 매우 중요한 설계 문제입니다. 이는 시스템의 구조와 유지보수 편의성에 큰 영향을 미치기 때문입니다. 다음은 API를 컨트롤러에 매핑할 때 고려할 수 있는 기준들입니다:
컨트롤러 설계 기준
기능에 따른 분리:
- 각 컨트롤러는 특정한 기능을 담당하는 것이 좋습니다. 예를 들어, ‘글’ 관련된 모든 처리를 담당하는
PostController, ‘유저’ 관련된 것을 처리하는UserController처럼 역할을 구분합니다.
- 각 컨트롤러는 특정한 기능을 담당하는 것이 좋습니다. 예를 들어, ‘글’ 관련된 모든 처리를 담당하는
도메인 모델 중심:
- 컨트롤러는 일반적으로 도메인 모델과 짝을 이루는 방식으로 설계됩니다. 따라서 글 쓰기, 수정, 삭제와 같은 기능들은
PostController에서 처리하는 것이 적절합니다. 이는 해당 기능들이 글 도메인과 관련이 깊기 때문입니다.
- 컨트롤러는 일반적으로 도메인 모델과 짝을 이루는 방식으로 설계됩니다. 따라서 글 쓰기, 수정, 삭제와 같은 기능들은
URL 패턴과 명료성:
- URL은 해당 기능을 가장 잘 설명해야 합니다. 글 등록 요청에 대한 URL이
/posts/write라면, 이 요청은PostController에서 처리하는 것이 자연스럽습니다.
- URL은 해당 기능을 가장 잘 설명해야 합니다. 글 등록 요청에 대한 URL이
제안
주어진 시나리오에서는 글을 생성하고 저장하는 로직이므로 글 컨트롤러 또는 PostController에 매핑하는 것이 좋습니다. 이는 글 데이터의 관리와 관련된 모든 기능을 한 곳에서 관리할 수 있다는 장점이 있습니다.
홈 컨트롤러는 주로 메인 페이지나 홈페이지에 관련된 로직을 처리하는 것이 좋고, 유저 컨트롤러는 회원 정보, 로그인/로그아웃 등 유저에 직접적으로 관련된 기능을 처리하는 것이 좋습니다.
추가 참고 자료
유사한 주제로 다른 질문들도 참고해 보시면 도움이 될 것 같습니다:
- 컨트롤러와 서비스의 역할 분리
- API 설계와 RESTful한 URLs에 대한 이해
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.




