강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

yoon6669님의 프로필 이미지
yoon6669

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

요청 매핑

api를 어느 컨트롤러에 작성해야하는지는 어떤 기준으로 해야하나요?

작성

·

24

0

api 매핑 메소드를 어느 기준으로 어떤 컨트롤러에 작성해야하는지 궁금하여 질문좀 드립니다.

먼저 글을 작성할 수 있는 웹사이트(게시판)가 있고, 홈화면에서 글쓰기 버튼을 눌러 글쓰기 페이지)로 이동 후 글을 쓰고 등록하면 글 데이터가 DB에 저장할 수 있는 사이트가 있다고 가정하겠습니다.

그리고 프론트는 리액트이고 글쓰기 페이지로 이동시 프론트에서 요청 없이 페이지 이동을 하고 글 등록 버튼을 눌렀을 때에 /write 경로로 서버에 요청이 간다고 가정하겠습니다.

 

질문입니다.

등록 버튼을 눌러 /write라는 url이 서버로 오면 이 url은 다음 중 어느 컨트롤러에서 매핑되어야할까요?

  1. 홈 컨트롤러 - 홈화면에서 글쓰기 페이지(/write)로 이동한 것이니 홈 컨트롤러에서 매핑한다.

  2. 유저 컨트롤러 - 글은 유저가 쓴 것이고 유저와 관련있으므로 유저 컨트롤러에서 매핑한다.

  3. 글 컨트롤러 - 글 또한 별도로 DB에 관리되어야하므로 글 컨트롤러에서 매핑한다.

이러한 비슷한 상황이 온다면 url은 어느 기준으로 컨트롤러에 매핑 시켜야하나요?

감사합니다.

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. yoon6669님.

API 매핑 메소드를 어느 컨트롤러에 작성해야 하는지 결정하는 것은 매우 중요한 설계 문제입니다. 이는 시스템의 구조와 유지보수 편의성에 큰 영향을 미치기 때문입니다. 다음은 API를 컨트롤러에 매핑할 때 고려할 수 있는 기준들입니다:

컨트롤러 설계 기준

  1. 기능에 따른 분리:

    • 각 컨트롤러는 특정한 기능을 담당하는 것이 좋습니다. 예를 들어, ‘글’ 관련된 모든 처리를 담당하는 PostController, ‘유저’ 관련된 것을 처리하는 UserController처럼 역할을 구분합니다.
  2. 도메인 모델 중심:

    • 컨트롤러는 일반적으로 도메인 모델과 짝을 이루는 방식으로 설계됩니다. 따라서 글 쓰기, 수정, 삭제와 같은 기능들은 PostController에서 처리하는 것이 적절합니다. 이는 해당 기능들이 글 도메인과 관련이 깊기 때문입니다.
  3. URL 패턴과 명료성:

    • URL은 해당 기능을 가장 잘 설명해야 합니다. 글 등록 요청에 대한 URL이 /posts/write라면, 이 요청은 PostController에서 처리하는 것이 자연스럽습니다.

제안

  • 주어진 시나리오에서는 글을 생성하고 저장하는 로직이므로 글 컨트롤러 또는 PostController에 매핑하는 것이 좋습니다. 이는 글 데이터의 관리와 관련된 모든 기능을 한 곳에서 관리할 수 있다는 장점이 있습니다.

  • 홈 컨트롤러는 주로 메인 페이지나 홈페이지에 관련된 로직을 처리하는 것이 좋고, 유저 컨트롤러는 회원 정보, 로그인/로그아웃 등 유저에 직접적으로 관련된 기능을 처리하는 것이 좋습니다.

추가 참고 자료

유사한 주제로 다른 질문들도 참고해 보시면 도움이 될 것 같습니다:
- 컨트롤러와 서비스의 역할 분리
- API 설계와 RESTful한 URLs에 대한 이해

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

yoon6669님의 프로필 이미지
yoon6669

작성한 질문수

질문하기