본문 바로가기
Spring/Spring boot

Jpa를 이용해서 DB 연결하기!(2-1) CONTROLLER

by Dev dreamer 2022. 12. 7.

 

처음 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 통신 방법에 대해서 정리해보겠습니다!

댓글