본문 바로가기

728x90

Spring boot

(6)
Hypermedia-Driven RESTful Web Services : Spring HATEOAS 구현방법 [2] Spring에서 Hateoas를 구현하는 방법에 대해서 알아보겠다. ## 환경 : Spring Boot + IntellJ + Maven 0) Dependency org.springframework.boot spring-boot-starter-hateoas 1) Link 를 만들기 위하여 WebMvcLinkBuilder 활용 Link link = new Link("http://localhost:8080/api/actors/1"); // 링크를 만들때 위와 같이 하드코딩을 하지 않도록 WebMvcLinkBuilder를 사용 // # WebMvclinkBuilder를 사용하여 링크를 만든다. // Link Object에는 rel와 href를 넣는다. // rel : 이름 / href : 실제 링크 // lin..
Hypermedia-Driven RESTful Web Services : HATEOAS란? [1] Hateoas의 개념에 대해서 알아보고, Spring에서 어떻게 구현하는지에 대해서 알아보겠다. REST API에는 등급이 존재한다. REST API의 등급 중 가장 높은 등급이 Hateoas라고 보면된다. 아래 표를 살펴보면, 일반적인 프로젝트에서는 구현하는 Rest API의 레벨은 Lvl2라고 보면된다. Lvl2는 Resources와 HTTP메서드를 사용한다. Lvl3, Hateoas는 Lvl2에 추가적인 Link를 가지고 있다. 이 Link를 통해 네비게이션이 가능하다. Request를 보면, Lvl2와 별 차이가 없어 보이지만, Response를 보면 JSON에 HAL라는 추가적인 링크가 있는 것을 알 수 있다. => 완벽한 RestApi를 사용하기 위해서는 Hateoas를 사용해야 한다. Hyp..
[Spring Security] Spring Boot에서 Spring Security 설정하기 (Database) # 구현 과정 1) Database를 사용하여 Role에 따라 Access Control 하도록 한다. - User JPA Entity, Role JPA Entity 가 필요하다. (N:M 매핑 관계로 함) - User와 Role entity와 관계된 Spring Data JPA repository를 만든다. 2) UserDetailsService와 UserDetails를 만든다. - UserDetailsService 인터페이스에서 정의된, loadUserByUsername()를 구현한다. - UserDetails 인터페이스에 User Entity, Role Entity를 넣어주는 것이 UserDetailsService의 loadUserByUsername 메서드이다. 3) Spring Security 설..
[Spring Security] Spring Boot에서 Spring Security 설정하기 (in-memory) # Spring Boot에서 Security를 어떻게 쓰는지 알아보겠다. 0. 프로젝트 생성 1. Maven Dependency 추가 : Default Auto Configuration에 대해서 살펴보기. (New Project에서 생성 Security > Spring Security 추가) org.springframework.boot spring-boot-starter-security => spring-boot-starter-security 만 의존성 추가해도 많은 일이 생긴다. (Auto Configuration이 일어남.) 1) Authentication Manager bean이 in-memory에 저장되어 , default User가 생긴다. (login, logout page가 제공됨) user..
[Spring Boot] Spring Boot 의 특징 Spring Boot 관련 개념 1. Spring Boot 를 왜사용하는지? 1) 생산성 2) Time to Market - 적시에 출시하는게 중요하기 때문. 2. Spring Boot 의 장점? 1) 수동적인 설정의 양을 최소화 auto-configuration - 관련된 클래스가 있음. props files & JAR classpath을 기반으로해서 자동으로 설정함. xml 파일을 만들어 줄 필요가 없다. 2) Dependency conflicts를 해결 해준다. 라이브러리간의 버전 충돌이 발생 할 수 있는데 관련된걸 세팅 3) embedded server 제공 애플리케이션 안에 내장 서버를 가지고 있어서 별도 설치 없이 빠르게 시작 할 수 있다. 3. Spring Boot 와 Spring MVC, ..
[Spring Boot] Hibernate 의 동작 원리 및 특징과 사용 예시 helloHibernate Hibernate 연습 Benefits of Hibernate 1) Hiberante provides the Object-to-Relational Mapping(ORM) 2) Hibernate handles all of the low-level SQL JDBC 코드의 양을 최소화 해준다. Application Architecture SessionFactory를 사용해서 session을 만들어 DB와 커뮤니케이션 한다. hibernate.cfg.xml *.hbm.xml class mappings : 객체와 테이블 사이에 매핑을 하는 부분 1) Configuration Hibernate Config (설정정보) : hibernate.cfg.xml 을 읽음 Hibernate Mapp..

728x90