Querydsl 일반적인 사용 정리
Spring boot 2022. 7. 4. 15:56

Querydsl로 프로젝트를 하면서 많은 쿼리문을 작성하는데 필요 시 계속 구글링하면서 하기도 귀잖고 해서 일반적인 사용 방법에 대해 정리하려고 한다. ◆기본적인 사용 //객체 조회 val foos = query.selectFrom(foo).fetch() //count 조회 val count = query.selectFrom(foo).fetchCount() //join val foos = query.selectFrom(foo) .leftJoin(food).on(foo.id.eq(food.foo.id) .fetch() //ordering val foos = query.selectFrom(foo) .orderBy(foo.name.asc(), foo.age.desc()).fetch() //update quer..

AWS SES 사용하기
Spring boot 2022. 3. 1. 16:46

쉽고 편리하게 E-mail를 고객한테 보내려면 Gmail SMTP를 사용하는 방법은 검색하면 많이 나온다. 이번 글은 spring 프로젝트에서 AWS SES를 설정하고 메일을 보내는 방법을 설명 하려고 한다. AWS에서 서비스를 신청하고 도메인을 등록하고 권한을 부여하는 부분에 대한 내용은 생략하고 Spring에서 설정하고 메일을 보내는 방법에 대해 적으려고 한다. ◆Dependency 추가 com.amazonaws aws-java-sdk-ses 1.12.167 ◆Config Class import com.amazonaws.auth.AWSStaticCredentialsProvider import com.amazonaws.auth.BasicAWSCredentials import com.amazonaws.s..

[Spring] 코드에서 Active Profile 가져오기
Spring boot 2022. 1. 9. 12:15

실행프로파일 별로 다르게 실행해야할 업무 로직을 구현이 필요할 경우 아래와 같이 진행하면 쉽게 구현 할 수 있다. ◆Enviroment 빈 설정 Spring 환경 변수는 Enviroment class로부터 가져 올 수 있다. 아래 코드로 bean을 주입한다. @Autowired private final Environment environment; ◆사용 if(Arrays.stream(environment.getActiveProfiles()).anyMatch( env -> (env.equalsIgnoreCase("dev") ))){ //비즈니스 로직 구현 }

[Spring] Cache
Spring boot 2022. 1. 3. 23:39

Spring framework에서는 기본적으로 Hash map 기반의 cache 기능을 지원한다. 이번 글에서는 Spring의 cache기능에 대하여 전반적으로 알아보고 간단하게 사용해 보려고 한다. JAVA에서의 Cache JAVA에서는 CachingProvider, CachManager, Cashe, Entry, Expity등 5개의 Interface을 제공한다. CachingProvider: CacheManager를 정의 및 구성, 관리를 해주는 interface 정의 CacheManager: 하나의 Cache에 대한 관리 interface 정의 , 하나의 CacheManager는 하나의 CachingProvider만 소유할 수 있다. Cache: Key-value Mapping 관계를 가진 자료구..

[Spring] Maven Wrapper
Spring boot 2022. 1. 3. 20:23

Maven Wrapper 란 Maven 환경에서 개발 시 Apache maven 프로젝트를 관리하는 주는 툴이다. 이것을 사용하면 매번 복잡한 개발환경을 구성할 필요 없이 어디서든 쉽게 개발할 수 있다. Maven Wrapper 생성 Maven프로젝트 폴더 아래에서 아래 명령을 사용하면 쉽게 Maven Wrapper를 생성 할 수 있다. mvn -N io.takari:maven:0.7.7:wrapper 명령어 #특정 프로파일로 실행 ./mvnw -P[profile명] #Test ./mvnw test # Test skip ./mvnw -Dmaven.test.skip=true #clean ./mvnw clean #package, jar 파일 만듬 ./mvnw package #Install, 현재 폴더에 설치..

[Spring]JobRunr libary 사용
Spring boot 2021. 12. 19. 21:03

Java에서 백그라운드 Job를 실행시키는 라이브러리 이다. 실행 시키고 잊는 처리를 하기에 접합하다. python에서의 Celery와 같은 역할을 하지만 더 많은 기능을 제공한다. Spring에서의 사용(Maven) org.jobrunr jobrunr-spring-boot-starter 3.1.2 설정 Spring의 application.properties에서 아래 두 항목에 대한 설정해 해주면 SPring 에서 초기화 작업을 해준다. org.jobrunr.background-job-server.enabled=true org.jobrunr.dashboard.enabled=true 만약 여러개의 Runner를 사용할 예정이면 RDB, No-SQL 혹은 queue를 사용하면 된다.→ 참고 @Bean pub..

[Spring] EJB, POJO 그리고 Spring
Spring boot 2021. 12. 12. 11:21

Spring에 대하여 좀 더 깊은 이해와 알아보기 위해 본 글은 작성 되었다. 먼저 EJB에 대한 내용과 POJO의 탄생 배경에 대해 설명하고 POJO을 깊이 다루어 보려고 한다. EJB(Enterprise JavaBeans) 그리고 POJO의 탄생 EJB는 복작한 Enterprise 서비스를 개발하는데 있서 복잡한 비즈니스 로직과 Low-level의 처리를 분리시켜 개발자로 하여금 비즈니스 로직에만 집중할 수 있게 만들어 주었다. 이러한 철학을 가진 EJB의 가장 최악의 문제는 비즈니스 object 들은 JAVA본연의 객체지향의 특징과 장점을 포기해야 했다. 상속과, 다형성 등 객체지향의 이점을 누릴 수 없다 하나의 기능을 구현하기 위해서는 EJB에서 구현된 불필요한 object들부터 상속 받아야 했고..

[Spring] Kotllin + Spring boot 시작하기
Spring boot 2021. 12. 8. 21:30

Spring boot Spring boot는 JAVA 언어를 기반으로 한 응용프로그램 프레임워크다. 웹 프로그램 뿐만 아니야 다양한 영역에서 사용된다. 본 시리즈에서는 Spring boot 기반 웹프로그램 개발에 초점을 맞추어 진행할 예정이다. Spring boot가 많이 사용되는 이유가 무엇인지에 대하여 이번 시리즈의 글을 통하여 알아보려고 한다. Spring boot MVC 프로젝트를 진행함에 있어서 필자는 제일 먼저 구조를 잡는데 시간을 할애한다. 필자는 프로젝트의 개발의 편리성과 유지보수의 용이성은 프로젝트 구조에서 시작된다고 생각한다. Spring 영역에서는 MVC 구조가 보편화 되여 있고 필자가 개발하던 flask(python) 기반의 프레임워크도 MVC 구조로 설계되었다. 구조 부분의 고찰에..