반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 춥고더운우리집
- 리트허브 오류
- collection python
- 프로그래머스 배열의 유사도 파이썬
- 슈츠 자막
- 프로그래머스
- Programmers 배열의 유사도
- 리트허브 커밋
- 주니어개발자
- 공선옥
- 프레젠테이션 레이어
- 알고리즘
- 프로그래머스 특정 문자 제거하기
- 개발자 취준
- 2-layered architecture
- BigO notation
- 춥고 더운 우리 집
- 파이썬 컬렉션
- 프로그래머스 가위바위보
- 프로그래머스 가위바위보 풀이
- 리트허브 사용법
- 비지니스 레이어
- 프로그래머스 배열 회전시키기
- 파이썬 특정 문자 제거하기
- 스프링 시스템 구조
- leftJoin
- programmers 배열 회전
- 가위바위보 풀이
- 특정문자 제거하기
- 배열의 유사도 파이썬
Archives
- Today
- Total
기억보다 기록을
[Springboot] Instagram clone (3)Controller, http 4가지 요청 방식 본문
Development/Springboot
[Springboot] Instagram clone (3)Controller, http 4가지 요청 방식
juyeong 2022. 7. 2. 14:57반응형
🔻Controller
- 스프링부트는 서블릿(자바로 웹을 할 수 있는 기술)으로 이루어져있다.
- 따라서 요청을 할 때마다 자바 파일이 호출된다.
- 요청의 종류가 3개이면 3개의 JAVA 파일이 필요하다.
- 하나의 자바 파일에서 모든 요청을 받는 Front Controller를 사용한다.
로그인 요청 -> login.java
회원가입 요청 -> join.java
게시글 쓰기 요청 -> write.java
=> FrontController.java (여기서 if, else 분기로 나눔)
→ 너무 많은 요청이 한곳으로 모이는 것을 방지하기 위해 도메인(범주) 별로 분기한다.
User 테이블 ->로그인, 회원가입 -> UserController.java
Board 테이블 ->글쓰기, 글삭제, 글수정 -> BoardController.java
Product 테이블 ->상품등록, 상폼목록보기 -> ProductController.java
→ 둘 다 썩 좋은 방식은 아니다.
→ 프론트 별로 나누면서 그 안에서 적당히 도메인별로 나누는 건 어떨까?
→ 요청을 어디로 보내야할지 분기해주는 것은 Dispatcher (Servlet Dispatcher, Request Dispatcher) 이다.
→ 컨트롤러를 잘 다루면 요청에 대한 처리를 잘 다룰 수 있다 😃
🔻http 4가지 요청 방식
클라이언트가 웹서버에 요청 → 웹서버는 DB에 SELECT, INSERT, UPDATE, DELETE 요청을 해서 응답!
→ 이 이유로 일반 컨트롤러때는 “intdex.jsp” → 파일로 리턴, 레스트 컨트롤러 일 때는 데이터 “get 요청됨”로 리턴
package com.cos.controllerdemo.web;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RestController;
//@Controller
@RestController
public class HttpController {
@GetMapping("/get")
public String get() {
return "get 요청됨";
}
@PostMapping("/post")
public String post() {
return "post 요청됨";
}
@PutMapping("/put")
public String put() {
return "put 요청됨";
}
@DeleteMapping("/delete")
public String delete() {
return "delete 요청됨";
}
}
반응형