본문 바로가기

Spring Boot

(26)
Spring Boot 내장 WAS 종류와 특징 스프링 부트 내장 WAS의 종류와 특징입니다. 최대한 쉽게 적어봤어요. Tomcat ~7버전까지 대규모 트래픽에서 불안정하다 vs 아니다 등의 의견이 분분했고, 8버전은 폭망했지만, 8.5버전으로 대응하여 안정화시켰고, 9버전이 나와 안정화되었고 이후로도 꾸준히 업데이트 중입니다. 강력한 커뮤니티, 다양한 성공 사례 등... Java 진영에서 실제로 가장 널리 사용되는 WAS에요. Spring Boot에서도 기본 내장 WAS는 Tomcat이구요. 저 역시도 아직까지는 기본 WAS를 사용하고 있습니다. org.springframework.boot spring-boot-starter-web implementation('org.springframework.boot:spring-boot-starter-web')..
Spring Boot Validation Custom (ConstraintValidator) 스프링 부트에서 Validation 체크할 때 커스텀한 어노테이션을 만들어서 사용해볼게요. 자주 사용할만한 체크를 미리 만들어두면 좋아요. 예제에서는 성별을 Validation 체크하는 어노테이션을 만들어볼거에요. pom.xml org.springframework.boot spring-boot-starter-validation build.gradle dependencies { implementation 'org.springframework.boot:spring-boot-starter-validation' } Gender @interface GenderValidator 클래스를 추가하고 ContraintValidator의 구현 로직을 작성해주면 됩니다. gender라는 필드에 @Gender 어노테이션만 추..
Spring Boot Querydsl (Maven, Gradle 5) 항상 JPA를 사용하면서 JpaRepository와 EntityManager만 사용했었는데 항상 먼가 제한적이다는 느낌을 많이 받았어요. 그래서 Native Query를 어떻게 하면 깔끔하게 코딩할 수 있을까 고민하다가 답을 찾지 못했고 결국 Querydsl이나 jooq로 눈을 돌리게 되었어요. 쿼리의 도움을 받아야 하는 레거시 시스템 환경은 확실히 JPA가 많이 불리한 것 같아요. 개발 환경은 JDK 11 + Spring boot 2.1.9 버전이구요. 예제를 통해 간단히 Querydsl을 설정하고 사용해볼게요. for Maven 더보기 pom.xml 아래 코드 추가 후에 Update Project 4.0.0 com.querydsl querydsl-apt com.querydsl querydsl-jpa ..
Eclipse(이클립스) git clone 깃에 올라가 있는 프로젝트를 로컬에 복제하여 이클립스에 프로젝트를 세팅해보려고 해요. 예제 프로젝트는 Spring Boot로 하였습니다. 1. git clone url 이클립스에서 받을 수도 있지만 터미널이 더 편하실거에요. 원하는 경로에 본인의 git clone url 명령어를 실행해주세요. 2. import project clone 받은 프로젝트를 임포트해주세요. 3. project 설정 Gradle 프로젝트네요. 프로젝트 우클릭 - Configure - Add Gradle Nature 설정해주세요. Maven은 Convert to Maven Project로 설정하시면 됩니다.
Spring Boot Interceptor 적용 스프링에서 공통적으로 처리할 로직을 구현하고 싶을 때가 있어요. 대표적으로 Java Filter, Spring Interceptor, Spring AOP를 활용할 수 있는데요. 이 글에선 Interceptor를 활용하여 특정 URI들의 요청을 가로채서 역할을 수행할 수 있도록 구현해볼거에요. Interceptor는 Spring Container 영역이며 Servlet 단위에서 실행되요. 인증/권한 처리, 로직 시간 계산, 로깅 등을 공통적으로 처리하고 싶을 때 사용해요. AuthInterceptor 이름만 Auth로 써봤어요. 실제로는 로그만 찍을겁니다. AuthInterceptor 클래스에 HandlerInterceptor 인터페이스를 구현할거에요. 스프링에서 다해줘요. 우리는 비즈니스 로직만 구현하면..
Spring Boot Session MySQL 연동, 저장 이미 구현한 Spring Session의 데이터를 MySQL에 저장하는 방법에 대해서 알아볼거에요. 예제 소스가 필요하신 분은 아래 글을 참고해주세요. https://gofnrk.tistory.com/42 Spring Boot Session 사용하기 (Bean Scope) Spring Boot에서 세션을 사용하는 방법에 대해서 알아볼게요. Bean Scope를 활용하여 session 데이터를 편리하게 관리할 수 있는 방법을 알려드릴거에요. 굉장히! 간단합니다. 컴포넌트 하나만 추가하면 되요. Use.. gofnrk.tistory.com build.gradle dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-j..
Spring Boot Session MongoDB 연동, 저장 이미 구현한 Spring Session의 데이터를 MongoDB에 저장하는 방법에 대해서 알아볼거에요. 예제 소스가 필요하신 분은 아래 글을 참고해주세요. https://gofnrk.tistory.com/42 Spring Boot Session 사용하기 (Bean Scope) Spring Boot에서 세션을 사용하는 방법에 대해서 알아볼게요. Bean Scope를 활용하여 session 데이터를 편리하게 관리할 수 있는 방법을 알려드릴거에요. 굉장히! 간단합니다. 컴포넌트 하나만 추가하면 되요. Use.. gofnrk.tistory.com build.gradle dependencies { implementation 'org.springframework.boot:spring-boot-starter-data..
Spring Boot Session Redis 연동, 저장 이미 구현한 Spring Session의 데이터를 Redis에 저장하는 방법에 대해서 알아볼거에요. 예제 소스가 필요하신 분은 아래 글을 참고해주세요. https://gofnrk.tistory.com/42 Spring Boot Session 사용하기 (Bean Scope) Spring Boot에서 세션을 사용하는 방법에 대해서 알아볼게요. Bean Scope를 활용하여 session 데이터를 편리하게 관리할 수 있는 방법을 알려드릴거에요. 굉장히! 간단합니다. 컴포넌트 하나만 추가하면 되요. Use.. gofnrk.tistory.com build.gradle dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-r..