처음 JPA를 이용해서 파이널을 하기로 결정했을때(세미때는 JDBC를 이용했다.) 이 관계도를 적어도 오십번은 쳐다봤던것 같다.
JDBC 에서 COMMON DAO VO SERVLET 만 보다가
ENTITY뭐시기랑 DTO SERVICE CONTROLLER 등등이 생겨서 엄청 헷갈렸다.(사실 지금도 어색해서 친해지는 중 ^^..)
JDBC를 이용할 때 내가 핵심이 되는곳은 SERVLET 이라고 생각했다.
VO 같은 경우는 조연느낌이 강했고 DAO는 DB 에 연결할때 꼭 필요한 쿼리문을 만들어 넣었지만
그래도 모든 기능마다 생겨나는 서블릿이 가장 중요하다고 생각했다.
이러한 서블릿의 기능을 담당하는것이 Controller 이다
서버에 클라이언트(프론트에서)의 요청이 들어오면 해당 요청을 잘 받아서 백엔드의 Service에 잘 전달하는곳!
그리고 다시 Service 에서 데이터를 받아서 여러 작업을 거친후 return 해준 값을 클라이언트에 잘 쓸수 있도록
이쁘게 포장해서 다시 보내준다.
jdbc 를 쓰다가 jpa 를 쓰면서 가장 신기했던건 기능별로 servlet 페이지를 만들던 jdbc 와는 다르게
controller 페이지 하나에 여러개의 기능들을 때려박을 수 있다라는 점이었다.
jdbc 의 경우 로그인만 봐도 하나의 스샷에 다 담기 힘들다.
이와 같은 기능을 하는 controller 를 살펴보자.
훨씬 코드양이 줄어든걸 알 수 있다.
그리고 위 세개의 어노테이션은 한번만 선언하면 적어도 해당 컨트롤러 페이지 내부에서는 더이상 안써도 된다.
언급한 김에 위의 어노테이션의 기능부터 Araboza !
@Slf4j → warn, info, error 등의 안내문구가 뜨게 끔 하는 어노테이션이다.
다음과 같이 warn , info , error 등의 색이 구분되고 여러가지 정보들을 포함 시킬 수 있다.
관련 메세지의 색은 따로 설정을 통해 바꿀 수 있다.(저것도 바꾼거임!)
@CrossOrigin(origins = "http://localhost:3000/")
프론트에서 yarn start 를 하면 3000번 포트로 항상 실행됐다.(중복돼서 실행되지 않는 이상.)
백엔드에서는
8282번으로 잡아뒀다.
이 둘의 포트번호가 다름으로 생기는 cors 에러를 잡아주고 연결해주는 역할을 해준다.
@RestController
@Controller @ResponseBody 어노테이션 두개의 기능과 완벽히 일치한다고 한다.
이 블로그에 RestController 에 대한 설명이 많아서 좀더 자세히 알아보면 좋을듯!
https://mangkyu.tistory.com/49
(아직 잘 모르겠다..)
Controller 를 간단히 정리해봤다 ! 이어서 controller 통신 방법에 대해서 정리해보겠습니다!
'Spring > Spring boot' 카테고리의 다른 글
프로젝트 과정에서 알고 있는 내용 정리(1. spring boot 생성하기.) (0) | 2022.12.07 |
---|---|
이메일 인증 (spring boot(maven) , jpa) (0) | 2022.12.02 |
댓글