본문 바로가기

spring boot

(7)
[Spring Boot] Spring Security JWT Token JWT(Json Web Token) Json 객체를 통해 안전하게 정보를 전송할 수 있는 웹표준 Json 객체를 암호화하여 만든 String 값 기본적으로 암호화가 되어 있어 변조하기 어려움 JWT를 이용하여 로그인 구현 1. gradle dependency 추가 - build.gradle dependencies { implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'io.jsonwebtoken:jjwt:0.9.1' } 2. 비밀키 설정 - application.properties jwt.secret=thisiskey 3. JwtTokenProvider 생성 Jwt 생성하고, 유효성을 검증하는 컴포넌트..
[Spring Boot] Swagger 3.x 적용 및 접속 Swagger OAS(Open Api Specification)을 위한 프레임워크 API 문서화를 쉽게 할 수 있도록 도와줌 파라미터를 넣어 실제로 어떤 응답이 오는지 테스트 가능 OpenAPI를 구현하기 위한 도구 세트 Open API RESTful API 설계를 위한 업계 표준 사양 Spring Boot에 Swagger 적용하기 1. gradle dependency 추가 - build.gradle dependencies { implementation 'io.springfox:springfox-boot-starter:3.0.0' implementation 'io.springfox:springfox-swagger-ui:3.0.0' } 2. Swagger Config 설정 @Configuration pub..
[Spring Boot] Jackson과 Gson Jackson Gson 공통점 Java에 대한 JSON 데이터 바인딩을 지원하는 완전한 라이브러리 차이점 Spring Framework에 내장됨 라이브러리를 수동으로 추가해야 함 Json 뿐만 아니라 XML과 YAML도 지원 속도가 빠르고 유연하여, 고용량의 데이터를 파싱할 때 좋음 비교적 가벼움 직렬화 json -> java object (new ObjectMapper()).writeValueAsString(java_object); (new Gson()).toJson(java_object); 역직렬화 java object -> json (new ObjectMapper()).readValue(json_data, java_object.class); (new Gson()).fromJson(json_data,..
[Spring] RestTemplate RestTemplate Spring해서 제공하는 http 통신에 유용하게 사용할 수 있는 템플릿 REST 방식으로 api를 호출할 수 있는 Spring 내장 클래스 (= RESTFul 원칙을 지킬 수 있음) json, xml 응답을 모두 받을 수 있음 Connect Pool을 사용하지 않음으로 객체를 생성할 때 인자로 ClientHttpRequestFactory의 구현체를 사용해야 함 Spring 3.0부터 지원 가능 RestTemplate Method HTTP Method 설명 excute Any exchange Any 헤더를 세팅해서 HTTP Method로 요청 보낸 후 ResponseEntity로 반환 받음 getForObject GET get 요청을 보내고 java Object로 반환 받음 get..
[Spring] Spring Data JPA ORM(Object-Relational Mapping) ORM 프레임워크가 중간에서 객체와 DB 데이터(테이블)를 자동으로 매핑 sql 자동 생성 프로그램 복잡도를 줄일 수 있다 복잡한 query가 필요한 경우 직접 query를 입력해야 한다 JPA (Java Persistence API) ORM 기술 표준 JAVA에서 제공하는 API Spring Data JPA Spring에서 JPA를 쉽게 사용할 수 있게 만들어놓은 프레임워크CRUD 처리를 위한 공통 인터페이스 제공 JpaRepository Spring Data JPA에서 CRUD 처리를 위한 공통 인터페이스 find(), findAll(), save(), delete(), ... @Service Repository와 Dto를 통해 DB에 접근하여 ..
[Spring] @Controller와 @RestController의 차이 @Controller 주로 MVC에서 View를 반환할 때 사용한다. ResponseBody 어노테이션을 통해 HTTP Response Body에 데이터를 담아 사용할 수도 있다. (이렇게 사용할 경우 View를 리턴하지 않고 Controller에서 직접 데이터 리턴이 가능하다) Client -> Request -> Dispatcher Servlet -> Handler Mapping -> Controller -> View -> Dispatcher Servlet -> Response -> Client @ResponseBody 자바 객체를 HTTP 응답 본문의 객체로 변환하여 클라이언트에게 전송할 때 사용한다. Client -> Request -> Dispatcher Servlet -> Handler Map..
[Spring Boot] Spring Boot의 구조와 역할 Controller @RestController public class TestController { @Autowired PersonService personService; @GetMapping("/test1") public String test1(){ String result = ""; List people = personService.findAll(); for(PersonEntity item: people){ result += item.getId()+" "+item.getName()+" " +item.getAge()+" "+item.getAddress() +" / "; } return result; } @GetMapping("/test2") public String test2(){ String res..