강의

멘토링

로드맵

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

Andrew님의 프로필 이미지
Andrew

작성한 질문수

실전 JSP (renew ver.) - 신입 프로그래머를 위한 강좌

doPost 안에서 doGet을 호출하는 방식이 흔한가요?

작성

·

5

0

강의 내용 중에 Post요청을 받아 doPost안에서 doGet으로 요청을 넘겨주는 방식을 자주 사용한다고 언급하시면서, 요청을 하나의 메서드로 관리하기 위함이라고 하셨던 것으로 기억합니다.

근데 저는 메서드를 분리하는 게 더 좋은 방법이지 않나 싶습니다. 메서드 별 명확한 역할 분리도 중요하고, 만약 RESTful하게 설계하려면 이 방식은 권장되지 않을 거 같은데, 저런 식으로 샘플 코드가 자동으로 생성되는 걸 보니 갑자기 궁금해졌습니다..

답변 1

0

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

Andrew님께서 질문하신 부분에 대해 관련된 내용을 찾아보았습니다. doPost에서 doGet을 호출하는 방식은 특정 상황에서 사용될 수 있지만, RESTful 설계 원칙에서는 보통 메서드를 분리하여 각각의 역할을 명확하게 구분하는 것이 권장됩니다.

JSP/서블릿의 역사적으로, doGet과 doPost 메서드 모두 HttpServlet 클래스의 메서드이고, 두 메서드 모두 기본적으로 HttpServletRequest와 HttpServletResponse 객체를 받습니다. doGet 메서드는 주로 데이터를 조회할 때 사용되고, doPost 메서드는 데이터를 생성하거나 업데이트할 때 사용됩니다.

이 두 메서드를 연결하는 이유:

  1. 코드 중복 방지: 예를 들어, 동일한 로직을 doGet과 doPost에서 모두 사용할 필요가 있을 때, 하나의 메서드로 관리하면 코드의 중복을 줄일 수 있습니다.
  2. 단순화: 작은 웹 애플리케이션에서는 서로 비슷한 동작을 두 메서드에서 모두 처리해야 하는 경우, 로직을 하나의 메서드로 위임하여 관리하는 것이 더 간단할 수 있습니다.

그러나 RESTful 설계 측면에서는:

  • 각 HTTP 메서드는 특정한 목적과 의미를 가지고 있기 때문에 doGet과 doPost가 각각의 역할을 수행하도록 하여 명확하게 구분해야 합니다.
  • RESTful 원칙을 따르는 설계에서는 HTTP 메서드(예: GET, POST, PUT, DELETE)가 리소스에 대한 특정 작업을 명확히 표시해야 합니다.

아래는 유사한 질문과 답변을 찾을 수 있는 링크입니다.
- 서블릿에서 doGet()과 doPost()의 차이

Andrew님께서 더 많은 정보를 원하시면 위 링크를 통해 내용을 참조하실 수 있습니다.

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

Andrew님의 프로필 이미지
Andrew

작성한 질문수

질문하기