inflearn logo
강의

Course

Instructor

get 방식과 post 방식 질문드립니다.

304

whdk333

31 asked

0

public class OrderController {
    private OrderService orderService;
    private MemberService memberService;
    private ItemService itemService;


    @GetMapping(value = "/order")
    public String createForm(Model model) {
        List<Member> members = memberService.findMembers();
        List<Item> items = itemService.findItems();

        model.addAttribute("members", members);
        model.addAttribute("items", items);

        return "order/orderForm";
    }

    @PostMapping("/order")
    public String order(@RequestParam("memberId") Long memberId, @RequestParam("itemId") Long itemId, @RequestParam("count") int count) {
        orderService.order(memberId, itemId, count);
        return "redirect:/orders";
    }

}

 

 

제가 http관련 수업을 들었지만, 코드로 적용할 때, 좀 헷갈리는 부분이 있어서 질문드립니다.

 

@GetMapping은 기본적으로 "order" url에 이동했을 때, 실행되는 것이 맞나요?

order 페이지로 이동했을 때, 자동으로 createForm 메소드가 실행돼서 모델에 members와 items를 담고 order/orderForm으로 전달하는 절차가 맞나요?

 

반대로 @PostMapping은 기본적으로 "order" url에서 값의 전달이나 변경이 있을 때, 실행되는 것이 맞나요?

order url에서 값을 입력하고 버튼과 같은 동작을 누르면, 그 때 order 메소드가 실행돼서 매개변수로 넘어온 memberId, itemId, count로 주문해서 저장하는 것이 맞나요?

 

결론적으로 차이점을 말하자면, get방식은 해당 url로 접속했을 때 실행되는 것이고, post는 해당 url에서 값을 변경이나 전달할 때 실행되는 것이 맞나요?

get post 김영한강사님 강의 스프링 spring

Answer 1

0

communityai8509

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

whdk333님, 질문하신 내용에 대해 답변 드리겠습니다.

네, 맞습니다. @GetMapping은 “order” URL로 이동했을 때 해당 메서드를 실행하여 주로 데이터를 조회하거나, 폼 페이지 등을 보여주는 데 사용됩니다. 기술적으로 말씀하신 대로 createForm 메서드가 실행되어 모델 객체에 membersitems를 담고, order/orderForm 뷰로 이 데이터를 전달합니다. 이 과정을 통해 사용자는 주문할 회원과 아이템을 선택할 수 있는 폼을 보게 됩니다.

@PostMapping은 “order” URL에 대해 POST 요청이 발생했을 때 실행되며, 주로 데이터를 서버로 전송하고 데이터의 생성 또는 변경을 요청할 때 사용됩니다. order 메서드가 실행되는 시나리오대로, 주문 폼에서 사용자가 입력한 memberId, itemId, count를 매개변수로 받아 실제 주문 처리를 하고, 처리가 완료되면 주문 목록 페이지(/orders)로 리다이렉션됩니다.

결론적으로, @GetMapping@PostMapping의 차이점을 정확히 이해하셨습니다. GET 방식은 주로 해당 URL로 접속했을 때 데이터를 조회하는 등의 동작을 실행하고, POST 방식은 해당 URL에서 폼 제출과 같은 데이터의 전송이나 변경을 할 때 사용됩니다. 이는 HTTP 프로토콜에서 정의한 GET과 POST 메서드의 기본적인 용도와 일치합니다.

질문에 답변이 되었기를 바랍니다. 추가로 궁금한 점이 있으시면 언제든 질문해 주세요.

패키지 구분에 대해 궁금한게 있습니다

0

7

1

코드 자료

0

24

2

조회속도 개선에서 더 개선하는 방법이 궁금합니다.

0

28

2

servlet과 container에 대한 질문입니다

0

24

1

RepositoryTest의 패키지 위치가 domain인 이유

0

30

2

도메인 모델에서 관계와 규칙을 구분하는 방법

0

37

2

UserService, CertificationService 책임 분리 기준 질문

0

26

1

spring initialiser 어떤걸 선택해야될지 모르겠어요

0

32

2

구현체가 동적으로 정해질 때, 팩토리 기법을 사용하나요?

0

50

2

Json 요청 처리

1

33

2

로그아웃-logout()-2 강에서 겟방식 로그아웃 호출 후 화면이동 질문입니다.

0

27

2

Build 관련 문제 (테스트 관련 문제)

0

43

2

job, step execution 관련 질문 드립니다.

0

32

2

이미지 업로드와 db 트랜잭션 묶는법

0

42

1

sdk 설정 오류

0

49

2

Orchestration SAGA 패턴 보상에 대한 질문입니다.

0

51

2

[건의][6장][작전1] deprecated 메소드

1

48

2

[예제][3장][작전2] windows 에서 마지막 예제

0

39

1

NaverBookRepository.class 의 위치에 따른 모듈간의 의존성에 대해 질문드립니다.

1

31

2

Could not resolve org.springframework.boot:spring-boot-starter-validation:2.4.4

0

52

2

REQUIRES_NEW 해결 방법에 대해서 질문있습니다!!

0

30

1

패키지 vs 모듈 선택 기준

0

51

2

오탈자 - @Transactional

0

55

1

타입스크립트

0

46

1