
최대한 간단하게 메일을 보낼 수 있게 gmail 이용 구글 계정 설정 구글 계정 관리 > 보안 2단계 설정 및 앱 비밀번호 생성 구글 메일 > 톱니바퀴 > 모든 설정 보기 > 전달 및 POP/IMAP IMAP 사용 Spring Boot 설정 build.gradle // https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-mail implementation("org.springframework.boot:spring-boot-starter-mail") MailSender 설정 kotlin configuration @Configuration class MailConfig { @Bean fun getMailSender()..

Case 1 Spring Boot 3.0.0 Kotlin Gradle 7.6 (kotlin) spring 3.0.0 부터 javax에서 jakarta를 사용하면서 기존 코드들을 그대로 사용하면 호환성 문제가 있음. 그렇다고 많은부분이 바뀌는건 아니고 build.gradle 의존성만 조금 바꿔주면 된다. plugins { ... kotlin("kapt") } dependencies { ... annotationProcessor("jakarta.persistence:jakarta.persistence-api") annotationProcessor("jakarta.annotation:jakarta.annotation-api") // https://mvnrepository.com/artifact/com.quer..

javascript module 웹 개발을 할 때 javascript 는 필수적으로 사용되는데, module을 관리하는 방법은 방법이 다양합니다. CDN을 통해서 import 하거나 js를 직접 다운받아서 프로젝트에 포함하는 방법도 있겠지만 플러그인을 통해서 javascript library를 관리하는 방법을 기술합니다. Maven frontend-maven-plugin 라이브러리 사용 https://github.com/eirslett/frontend-maven-plugin eirslett/frontend-maven-plugin "Maven-node-grunt-gulp-npm-node-plugin to end all maven-node-grunt-gulp-npm-plugins." A Maven plugi..

JMeter란 부하 테스트, 기능 동작과 성능을 측정하기 위해 제작된 JAVA 어플리케이션 오픈소스 소프트웨어입니다. JMeter는 정적 및 동적 리소스, 웹 동적 애플리케이션에서 성능을 테스트하는 데 사용할 수 있습니다. 목적 AWS EC2 에 배포한 Spring boot 웹 어플리케이션이 얼마만큼의 부하에 견딜 수 있는지 방법을 찾아보다가 JMeter 라는 애플리케이션을 알게 되었고 꽤나 괜찮다는 평이 많은것 같아 HTTP Request 부하 테스트 Tool로 사용하기로 했습니다. 다운로드 및 실행(mac) $ brew install jmeter $ open /usr/local/bin/jmeter 다운로드(windows) jmeter.apache.org/download_jmeter.cgi Apache..

spring boot 의존성 maven org.springframework.boot spring-boot-starter-thymeleaf gradle(kotlin) dependencies { ... implementation("org.springframework.boot:spring-boot-starter-thymeleaf") ... } 참고사이트 https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html Tutorial: Using Thymeleaf 1 Introducing Thymeleaf 1.1 What is Thymeleaf? Thymeleaf is a modern server-side Java template engine for both w..

Validation spring-boot-starter-validation은 hibernate-validator, jakarta.validation을 포함합니다. 위의 Reference링크에 있는 가이드에 따르면 Hibernate Validator는 Jakarta Bean Validation(JSR380)의 참조구현이라고 합니다. Hibernate Validator 6 또는 Bean Validation2.0을 사용하기 위해서는 JDK 8 이상이 필요합니다. Reference https://docs.jboss.org/hibernate/validator/6.0/reference/en-US/html_single/ Hibernate Validator 6.0.22.Final - JSR 380 Reference I..
Filter와의 차이점 Servlet 기술의 Filter와 Spring MVC의 HandlerInterceptor는 특정 URI에 접근할 때 제어하는 용도로 사용된다는 공통점을 가지고 있다. 하지만 실생시점에 속하는 영역(Context)에 있다. Filter는 동일한 웹 어플리케이션의 영역 내에서 필요한 자원을 활용하지만 Interceptor는 스프링에서 관리되기 때문에 스프링 내의 모든 객체(Bean)에 접근이 가능하다는 차이가 있다. AOP와의 차이점 일반적인 경우라면 컨트롤러를 이용할 때는 AOP의 BeforeAdvice를 활용하기 보다는 HandlerInterceptor 인터페이스 혹은 HJandlerInterceptorAdaptor 클래스를 활용하는 경우가 더 많다. 가장 큰차이는 파라미터 차이..
트랜잭션 개요 트랜잭션은 하나의 업무에 여러개의 작은 업무들이 같이 묶여 있는것을 의미한다. 이같은 작업의 특징은 모두 실행되고 완료되거나 중간에 하나라도 실행이 되지 않으면 모두 실행되지 말아야 한다는 조건을 가지고 있다. 그렇지 않을경우 트랜잭션의 기본원칙에 위배된다. ACID 트랜잭션의 4원칙으로 원자성(Atomicity), 일관성(Consistency), 격리(Isolation), 영속성(Durability) 라고 한다. @Transaction 트랜잭션 어노테이션에는 몇가지 속성이 있는데 경우에 따라서는 속성들을 조정해서 사용해야 한다. 전파(Propagation) 속성 -PROPAGATION_MANDATAORY 작업은 반드시 특정한 트랜잭션이 존재한 상태에서만 가능 -PROPAGATION_NES..