반응형

spring spring boot 5

[spring/mybatis] Rest API 계층구조(1:N) 객체 조회(feat .쉬운 예제)

목차 역시나 미래의 나를 위해 기록한다. 계층구조 조회가 처음 접하고 익숙해지기 전까지는 좀 어렵다.(물론 지금도 쉬운 건 아니다.) 모든 일이 익숙해지면 아무것도 아닌 게 그전까지는 어려운 법이다. Rest API 계층구조 조회 간단 예시다. 사용자(UserDto) 객체가 도서 객체(BookDto)를 list로 가지고 있는 구조다. 회원과 도서의 관계를 1:N으로 매핑했고 회원이 부모고 책이 자식이다. 아래처럼 한명의 회원이 여러개의 책을 대출할 수 있는 조건 그래서 회원 객체는 도서 객체를 list로 가지고 있어야 한다. 아래 DB 테이블을 보면 회원번호 1번인 천둥의 신 토르가 열혈강호 1권~5권까지 가지고 있다. API니까 당연히 클라이언트에 전달할 객체인 dto와 db 조작시 사용할 객체인 vo..

IT/development 2022.12.25

[spring] @ControllerAdvice, @ExceptionHandler를 이용한 예외처리

목차 역시나 미래의 내가 보기 위해 기록한다. 기존에는 try catch문으로 예외를 처리했었는데 예외처리가 필요한 여러군데 코드에 적용을 해야 되니.. 클린하지가 않아 구글링 해보니 스프링에서 제공하는 @ControllerAdvice, @ExceptionHandler이 있었다. 왜 이걸 이제야 알게 되었는지.. 😥 테스트 개발환경은 아래와 같다. @ExceptionHandler 😄 @Controller나 @RestController가 선언된 Bean에서 발생한 예외만 처리할 수 있다. @Service나 @Repository와 같은 곳에서의 예외는 처리할 수 없음에 유의할 것 사용방법은 간단하다. 컨트롤러 내에 메소드를 만들고 @ExceptionHandler를 선언하고 value값으로 예외처리 클래스를 ..

IT/development 2022.12.04

[IDE]IntelliJ springBoot 리소스 자동 리로드

목차 IntelliJ springBoot 리소스 자동 리로드 spring-boot-devtools를 이용(서버 재시작없이 자동 리로드) 출처 : https://powernote.tistory.com/19 IntelliJ spring boot DevTools 자동 빌드 적용하기. ** intelliJ version : IntelliJ IDEA 2018.1 이후 버전 # IntelliJ 에서 devtools 개발도구를 설치 하면 이상하게 EClipse에서 잘되던 자동 컴파일 이 안된다. # devtools 를 반영하고 적용하는것을 해보자. 참고 URL : ht powernote.tistory.com 출처 : https://lejewk.github.io/springboot-devtool/ spring boot..

IT/development 2022.11.29

[springBoot] 프로젝트 세팅(IntelliJ 사용)

목차 springBoot 프로젝트 세팅(IntelliJ 사용) https://start.spring.io 접속 후 프로젝트 세팅 후 다운로드(IntelliJ에서 spring initializr해도 같은 결과) 프로젝트 빌드도구 선택 -> 요즘 Gradle로 넘어가는 추세라고 함 개발언어 선택 스프링부트 버전 선택 -> SNAPSHOT은 만들고 있는거고 M1은 정식 릴리즈된 버전이 아니라서 정식 릴리즈 버전 중 선택 프로젝트 메타 정보 설정 -> group은 보통 기업 도메인을 적는데 개인 공부니 아무렇게나 적어도 됨, Artfifact는 빌드되어 나온 결과물이라고 보면 됨 스프링부트 프로젝트 개발시 가져올 라이브러리, 화면 렌더링 시 필요한 템플릿 엔진 선택(ex Thymeleaf, 회사는 다양함) GE..

IT/development 2022.11.28

[Spring] spring REST API 공부(feat. @RestController)

목차 REST란? 😎 REST란 "Representational State Transfer"의 약자이고 직역하면 대표상태 전송이다. 하나의 URI는 고유한 리소스를 대표하도록 설계된다는 개념인데 솔직히 아직 정확히 이해하지는 못했다. 웹의 모든 리소스에 고유한 URI로 의미부여 한 뒤 HTTP Method를 통해 상태를 주고 받으며 통신하는 방식이라고 이해 했다. 그리고 서버에서 클라이언트로 반환하는 값이 순수한 데이터라는 점 클라이언트가 URI만 봐도 이게 무슨 작업을 의미하는지 알 수 있도록 설계해야 한다. ex)localhost:8080/user가 URI이고 POST으로 서버에 전송한다고 하면 사용자 등록이라고 유추할 수 있다. REST 방식에서는 HTTP Method가 CRUD를 의미한다. 그래서..

IT/development 2022.11.22
반응형