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] Eureka
Spring 2021. 12. 19. 21:39

MSA 아키텍쳐에서 각 서비스의 IP와 Port 정보를 저장하고 제공하는 Service Discovery 이다. 주요 동작 MSA는 구동 시 Eureka Server에 자신의 IP와 Port를 API 방식으로 등록합니다. 등록된 서비스는 주기적인 Health check를 통해 서비스 상태를 체크합니다.(기본 30초 주기, 3번 체크 후 서비스 불가능 하면 삭제) Eureka Client는 30초에 한번씩 서버로 부터 모든 서비스 정보를 가져와 자신의 가지고 있는 정보를 업데이트 합니다. Server 설정 및 Client 사용 https://www.tutorialspoint.com/spring_boot/spring_boot_eureka_server.htm

[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..

[DynamoDB] Spring에서 DynamoDB 사용
DataBase 2021. 12. 16. 21:49

Spring boot에서 AWS DynamoDB를 사용하여 CRUD를 하는 법에 대하여 간단히 정리해 보았다. 기타 No-sql DB와 다르게 기능 구현을 쉽게 할 수 있었던것 같다. 본 글의 spring 튜토리얼를 참고하여 작성 되었다. 준비 Local에서 dynamoDB을 docker로 구동하는 방법을 공유 한다.(이렇게 구동시 Key값은 공백으로 연결한다.) version: '3.7' services: dynamodb: image: amazon/dynamodb-local container_name: my-dynamodb hostname: dynamodb restart: always volumes: - ./my-dynamodb-data:/home/dynamodblocal/data ports: - 80..

[Spring] Logging 구성 및 구현
Spring boot 2021. 11. 22. 22:46

앞 글을 통하여 Logging의 중요성과 어떤 Content들을 정리해야 하는지에 대하여 알아 보았다. 앞글의 내용을 바탕으로 Spring Application에 있어서 중요한 것들을 정리해 보았다. 사용자 인증인가 정보(로그인 및 resource에 대한 접근 정보도 포함) Exception 정보, 어떤 상황에 어떤 Exception이 발생하였는지를 추후 분석할 수 있을 정도면 충분할 것 같다. Transation에 관련된 log, 데이터와 관계되는 부분이니 데이터 베이스 장애처리하는데 도움을 줄 수 있다 이외에도 중요한 비즈니스 로직이나, 장애 발생 상황 등을 빠르게 판단할 수 있는 것들을 남겨야 한다. 위의것들을 잘 분류하여 주기적으로 삭제가능 혹은 영구 보존 등으로 등급을 나누어 관리 할 수 있다...