Spring 9

spring boot 프로젝트 생성과 사용 이유

spring boot 프로젝트 생성 프로젝트 생성 시 아래 url 주소에서 생성 https://start.spring.io/ 이때 spring boot 버전을 고를수 있는데 버전 옆에 snapshot 이 붙은건 아직 만들고 있는 단계, m1 이런건 정식 릴리즈가 되지 않은 단계, 아무것도 안붙어있는게 정식 릴리즈 된것 웬만하면 정식 릴리즈된 버전을 선택하자! 여기서 사용되는 gradle은 버전 설정하고 라이브러리를 땡겨오는 역할이라는 정도만 이해! dependencies를 선택하고 프로젝트 생성! 프로젝트 폴더 설명 .idea : intellij가 사용하는 설정 파일 gradle/wrapper/ : gradle과 관련된 폴더 preference 에서 gradle 검색! 아래 설정을 gradle에서 int..

JAVA 2022.10.31

google oauth

기존의 security login을 만들때는 로그인이 완료가 되면 코드를 받아서 다시 액세스 토큰을 요청하고 그 토큰으로 사용자 정보를 받아오는 프로세스를 사용했다. oauth는 이미 코드는 받았고 알아서 액세스 토큰을 요청하고 정보까지 받아온다 . Spring Security 자기만의 시큐리티 세션이 있음 그 시큐리티 세션에는 Authentication 객체밖에 들어갈수 없다.( controller에서 DI를 해줄수 있음) 그 Authentication 안에는 두가지 타입이 들어갈수 있다 → UserDetails 와 OAuth2User 타입 UserDetails는 일반 로그인, OAuth2User oauth 로그인을 진행할때 authentication안에 들어오게되는 타입이다. 근데 이걸 일반 로그인일..

JAVA 2022.10.06

spring hateoas

rest api 에서 hateoas 가 필요한 이유? → rest의 개념 자체가 http url를 통해 자원(resource)을 명시하고 http method(get, post, put, delete)를 통해 해당 자원에 대한 crud operation을 적용 하는 것을 의미한다. 이때 url 즉 링크를 위해서 우리는 hateoas를 사용한다. hateoas사용시 spring boot 가 hateoas 설정을 자동으로 해주기 때문에 우리가 따로 설정해 주지 않아도 된다. hateoas란? rest api를 사용하는 클라이언트가 전적으로 서버와 동적인 상호작용이 가능하게 하는 것을 말한다. 이러한 방법은 클라이언트가 서버로부터 어떠한 요청을 할 때, 요청에 필요한 url를 응답에 포함 시켜 반환하는것으로 ..

JAVA 2022.08.01

spring boot 프로젝트 생성과 사용 이유

spring boot 프로젝트 생성 시 아래 url 주소에서 생성 이때 spring boot 버전을 고를수 있는데 버전 옆에 snapshot 이 붙은건 아직 만들고 있는 단계, m1 이런건 정식 릴리즈가 되지 않은 단계, 아무것도 안붙어있는게 정식 릴리즈 된것 웬만하면 정식 릴리즈된 버전을 선택하자! 여기서 사용되는 gradle은 버전 설정하고 라이브러리를 땡겨오는 역할이라는 정도만 이해하자! https://start.spring.io/ dependencies를 선택하고 generate 누르면 프로젝트 생성! ※ 참고사항 프로젝트 폴더 중 .idea는 intellij가 사용하는 설정파일 gradle/wrapper/는 gradle과 관련된 폴더라고만 알고 지나가기 build 시 더 빠르게 웹서버를 띄우고 ..

JAVA 2022.07.04

[JAVA] Spring data JPA 페이징과 정렬

페이징과 정렬 파라미터 Sort : 정렬 기능 Pageable : 페이징 기능( 내부 Sort 포함 ) 특별한 반환 타입 1. Page : 추가 count 쿼리 결과를 포함하는 페이징 → 일반적인 페이징 2. Slice : 추가 count 쿼리 없이 다음 페이지만 확인가능 → 스크롤 내리다 더보기 버튼 생성 하는 페이징 3. List : 추가 count 쿼리 없이 결과만 반환한다. ※ 여기서 count는 total count를 의미 Page findByAge(int age, Pageable pageable); @Test public void paging() throws Exception{ //given memberRepository.save(new Member("member1", 10)); memberR..

JAVA 2022.02.17

[JAVA] 쿼리 파라미터 남기기

쿼리 파라미터란? 콘솔에 뜨는 SQL 구문들에 들어가는 파라미터들이 ? 로 찍히는 부분을 말한다. 이 물음표에 들어가는 값들을 실시간으로 콘솔에서 확인하고 싶으면 아래의 경우를 참고하자! 1. 설정파일 logging에 다음을 추가하기 org.hibernate.type: SQL 실행 파라미터를 로그로 남긴다 2. 외부 라이브러리 추가 https://github.com/gavlyukovskiy/spring-boot-data-source-decorator GitHub - gavlyukovskiy/spring-boot-data-source-decorator: Spring Boot integration with p6spy, datasource-proxy, flexy-pool and s Spring Boot int..

JAVA 2022.01.20