Spring Boot
-
[Spring Boot] REST API 만들기(11) - JSON Root Element 추가Spring Boot/2.4.x - REST API 만들기 2020. 5. 20. 16:07
JSON과 XML 두 방식을 모두 사용하는 경우 기본적으로 JSON은 Root Element룰 사용하지 않아 데이터 형식이 다른 경우가 있습니다. 게시글 목록 조회 시에 JSON으로 응답받는 경우 Root Element가 적용되지 않은 것을 확인할 수 있습니다. 게시글 목록 조회 시(http://localhost:8080/board) JSON, XML 응답 JSON 더보기 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66..
-
[Spring Boot] REST API 만들기(10) - XML 요청/응답 구현 및 테스트Spring Boot/2.4.x - REST API 만들기 2020. 5. 19. 17:50
스프링에서 제공하는 MarshallingHttpMessageConverter를 사용하여 XML 형식으로 데이터를 교환할 수 있도록 구현하겠습니다. MarshallingHttpMessageConverter는 스프링 OXM을 이용해서 객체와 XML 간의 상호 변환 작업을 합니다. Spring OXM 스프링 OXM(Object Xml Mapping)은 XML 문서를 객체로 변환하거나, 객체를 XML 문서로 변환하는 기능을 제공합니다. 객체를 XML로 변환하는 과정은 XML Marshalling이라고 하며, XML을 객체로 변환하는 과정을 XML UnMarshalling이라고 합니다. Marshaller와 UnMarshaller 인터페이스는 구분되어 있지만, 실제 스프링에서 제공하는 구현체들은 하나의 클래스에서..
-
[Spring Boot] REST API 만들기(9) - Controller 구현 및 테스트(Junit4)Spring Boot/2.4.x - REST API 만들기 2020. 5. 10. 16:32
스프링 프레임워크를 이용한 REST 서비스 생성 방법은 크게 두 가지로 나눌 수 있습니다. MVC의 ModelAndView를 사용하는 방법과 HTTPMessageConverter를 사용하는 방법입니다. HTTPMessageConverter를 사용해서 Controller를 구현하겠습니다. HTTPMessageConverter HTTPMessageConverter는 자바 객체와 HTTP 요청/응답 몸체(Body)를 변환하는 역할을 합니다. HTTP 요청과 응답이 문자열 기반으로 이루어진다는 것으로 이는 클라이언트와 서버가 문자열로 서로 통신을 한다는 것 입니다. 스프링은 이런 문자열을 자바 객체로 변환해주는 기능을 제공하는데, 그 기능을 하는 것이 HTTPMessageConverter입니다. 스프링에서는 H..
-
[Spring Boot] REST API 만들기(8) - Service 구현 및 테스트(Junit4)Spring Boot/2.4.x - REST API 만들기 2020. 5. 9. 16:59
업무 로직을 구현하기 위해서는 서비스 클래스가 필요하므로, BoardService 인터페이스, BoardServiceImpl 클래스를 구현한 후 테스트를 진행하겠습니다. 1. Servie 구현 서비스 인터페이스와 서비스 구현 클래스는 한 쌍으로 만들기도 하고, 서비스 클래스만 만들기도 하는데 인터페이스와 구현 클래스를 구분하기 위해 BoardService 클래스를 인터페이스로 수정하고, com.api.board.service.Impl 패키지를 생성한 후 BoardServiceImpl 클래스를 추가하세요. BookService.java 더보기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 package com.api.board.service; i..
-
[Spring Boot] REST API 만들기(7) - Transaction 적용Spring Boot/2.4.x - REST API 만들기 2020. 5. 9. 16:51
1. Transaction 란? 모든 작업이 정상적으로 완료되면 Commit을 실행하고, 작업 처리 중 에러가 발생하면 Rollback하는 방식으로 처리하는 일련의 작업들을 하나의 단위로 묶어서 처리하는 것을 트랜잭션이라고 합니다. 2. Transaction의 기본 원칙 Atomicity (원자성) 트랜잭션의 연산은 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야 합니다. (All or Nothing) Consistency (일관성) 트랜잭션이 성공적으로 완료하면 모든 데이터는 일관성을 유지해야 합니다. Isolation (독립성, 격리성) 트랜잭션은 독립적으로 처리되며, 처리되는 중간에 외부에서의 간섭은 없어야 합니다. Durablility (영속성, 지속성) 성공적으로 완료된 트랜잭션의 결..
-
[Spring Boot] REST API 만들기(6) - Interceptor 적용Spring Boot/2.4.x - REST API 만들기 2020. 5. 7. 17:05
1. Interceptor 란? 인터셉터란 컨트롤러에 들어오는 요청 HttpRequest와 컨트롤러가 응답하는 HttpResponse를 가로채는 역할을 합니다. 2. Interceptor 적용 2_1. HandlerInterceptorAdapter를 상속받은 클래스 구현 com.spring.board.interceptor 패키지를 생성한 후 BoardInterceptor 클래스 추가하세요. BoardInterceptor.java 더보기 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 32 33 34 35 36 37 38 package com.api.board.interceptor; import javax..
-
[Spring Boot] REST API 만들기(5) - Mapper 구현 및 단위 테스트(Junit4)Spring Boot/2.4.x - REST API 만들기 2020. 5. 6. 15:58
게시글 목록 조회, 상세 조회, 등록, 수정, 삭제를 위한 BoardMapper.xml, BoardMapper.java 를 구현한 후 JUnit으로 테스트를 진행하겠습니다. 1. Mapper 구현 BoardMapper.xml 더보기 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 9..
-
[Spring Boot] REST API 만들기(4) - Log4jdbc 설정Spring Boot/2.4.x - REST API 만들기 2020. 5. 5. 17:34
기본적으로 스프링 부트는 Java Util Logging, Log4J2 and Logback 기능을 지원하여 실행된 SQL문을 확인할 수 있지만, 파라미터가 바인드되지 않고 물음표로 출력되거나, 탭이나 개행문자가 적용되지 않아 가독성이 떨어지기 때문에 log4jdbc 설정이 필요합니다. 1. pom.xml 의존성 추가 pom.xml에 log4jdbc-log4j2을 사용하기 위해 의존성을 추가하세요. pom.xml 더보기 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57..