본문 바로가기

Spring Boot17

Spring Oauth2.0 Google 로그인 구현 (1) 1. Google Developers Console 프로젝트 생성 구글 개발자 콘솔 페이지에 접속한다. https://console.developers.google.com/ Google Cloud Platform 하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요. accounts.google.com 왼쪽 상단에 프로젝트를 선택하는란을 클릭한다. 새 프로젝트 버튼을 클릭한다. 프로젝트 이름을 입력하고 만들기 버튼을 클릭한다. 2. OAuth 클라이언트 Id 및 비밀번호 생성 방금전에 만든 프로젝트를 선택하고 검색창에 API를 검색해서 API 및 서비스 창으로 이동한다. 왼쪽의 OAuth 동의 화면을 클릭하고 User Type을 외부로 선택 후 만들기.. 2022. 1. 24.
[Spring Boot] Elastic Stack 연동 (ELK 연동) 이번 포스팅에서는 Elastic Stack을 연동하는 방법에 대해서 포스팅하려고한다. 서버에 Elastic Stack을 설치하지 않았다면 여기를 참고하면된다. 1. logstash dependency 추가 (build.gradle) implementation 'net.logstash.logback:logstash-logback-encoder:6.6' 2. logback-spring.xml 파일 추가 logback-spring.xml을 resources 폴더 아래에 추가한다. %-5level %d{HH:mm:ss.SSS} [%thread] %logger{36} - %msg%n %d{yyyy-MM-dd HH:mm:ss.SSS}[%-5level] : %msg%n INFO mylog.txt mylog-%d{yy.. 2021. 11. 28.
[Spring Boot] API 스프링부트 캐싱 적용 애플리케이션 개발 과정 중 자주 변하지 않는 정보는 캐싱해서 사용하기 위해서 스프링 부트 캐시를 적용해보았다. 만약 데이터가 신규로 추가되거나하면 캐시를 지워주고, 한번 더 select가 일어나게 해주면 된다. Spring Cache를 사용하면 자바 메소드에 캐싱을 적용하여 파라미터 값에 따라서 캐시를 적용한다. implementation group: 'org.springframework.boot', name: 'spring-boot-starter-cache', version: '2.6.0' 1. CacheConfig 작성 (@EnableCaching) import org.springframework.cache.annotation.EnableCaching; import org.springframework.. 2021. 11. 21.
[Spring] @Transactional 어노테이션 1. @Transactional @Transactional 어노테이션은 트랜잭션 처리를 위해서 Spring이 제공하는 어노테이션이다. @Transactional을 메서드 또는 클래스에 명시하여 메서드에 대해서 내부적으로 AOP를 통해 트랜잭션 처리코드가 실행된다. 다음과 같이 BooksImple 클래스의 addBook에 @Transactional을 선언했을 때 public class BooksImpl implements Books { public void addBooks(List bookNames) { bookNames.forEach(bookName -> this.addBook(bookName)); } @Transactional(rollbackFor = Exception.class) public void.. 2021. 10. 10.
[Spring Boot] Resource 추상화 백기선님의 스프링 핵심 기술 강좌를 들으면서 path에 대한 개념이 헷갈려서 정리하기로 했습니다. Resource에 대해서 살펴보겠습니다. 1. Resource 추상화 스프링에서 java.net.URL을 추상화 한 것이 Resource 인터페이스입니다. 인터페이스를 열어보면 주요 메소드를 볼 수 있습니다. 이렇게 추상화를 한 이유는 클래스패스 기준으로 리소스를 읽어오는 기능의 부재와 ServletContext를 기준으로 상대 경로를 읽어오는 기능 부재 등이 있습니다. public interface Resource extends InputStreamSource { boolean exists(); default boolean isReadable() { return this.exists(); } default.. 2020. 8. 27.
[Spring Boot] @Valid를 이용한 유효성 검사 서버에서 데이터를 받을 경우 데이터에 대한 유효성 검사를 하는 방법에 대해서 살펴보겠습니다. 1. application.properties 옵션 추가 클라이언트에서 서버로 알 수 없는 데이터 필드를 전달할 경우 에러를 발생시키는 설정입니다. 이 설정을 false로 하면 정의 되지 않는 속성이 있어도 무시할 수 있습니다. #unknown properties가 있으면 실패 spring.jackson.deserialization.fail-on-unknown-properties=true 2. EventDto 정의 EventDto 클래스를 정의해 보았습니다. 이벤트의 이름, 상세 설명, 이벤트 시작일, 이벤트 종료일등의 데이터값은 항상 null이면 안되기 때문에 @NotEmpty, @NotNull 어노테이션을 사.. 2020. 8. 9.