Programming/Spring
[스프링] RedisUtil 제공하기 with Azure Cache for Redis
Azure Cache for Redis란? Azure Cache for Redis | Microsoft AzureAzure Cache for Redis를 통해 빠르고 스케일링 가능한 애플리케이션을 제공하고 오픈 소스와 호환되는 완전 관리형 메모리 내 데이터 저장 서비스를 통해 Database as a Service를 캐시하세요.azure.microsoft.comAzure Cache for Redis란, Azure에서 제공하는 관리형 Redis 서비스이다. Spring 애플리케이션에서 Azure 리소스들에 접근할 때 사용할 수 있는 여러 인증 방식 중, Entra ID 인증 방식을 선택했다. Entra ID 인증 방식에 대해서는 이전 포스팅에서 상세히 다루었으니, 아래 포스팅을 참고하면 좋을 것 같다. [..
[스프링] 환경별(dev/qa/prd) 설정 관리를 위한 Spring Profile : application.properties
프로젝트를 진행하다 보면 로컬, 개발, 검증, 운영 환경에 따라 DB, 서버 포트, Redis 호스트 주소 등 다양한 설정을 환경에 따라 다르게 적용해야 할 때가 많다. 이러한 처리를 일일이 수동으로 조정하는 것은 매우 번거롭지만, Spring Boot의 Profile 기능을 이용하면, 번거롭게 매번 설정을 수정할 필요 없이 간편하게 환경에 맞는 설정을 적용할 수 있다. Spring은 하드 코딩을 지양하고, 구현하고자 하는 시스템의 환경에 맞춰 환경 변수를 효율적으로 조정할 수 있는 다양한 방법을 제공한다. 이를 위해 Properties를 설정하고, 필요한 Properties를 로드하여 시스템에 맞는 환경에서 애플리케이션을 기동할 수 있다. 오늘은 개발/검증/운영 환경에 따라 profile을 적절하게 설..
[스프링] 스프링 가이드 : 패키지 구조
개발표준정의서, 특히 패키지 구조에 대한 가이드를 정립하면서 어떤 패키지 구조가 가장 Best Practice일까에 대한 고민이 많았다. 오늘은 패키지 구조에 대해 잘 정리된 글이 있어 이 글을 기반으로 정리해보는 시간을 가져보려 한다. 패키지 구성은 크게 레이어 계층형과 도메인형 이렇게 2가지 유형으로 나눠 생각해볼 수 있다. 각 유형별로 간단하게 알아보고, Best Practice를 고민해보자. 계층형계층형 구조는 각 계층을 대표하는 디렉터리를 기준으로 코드들이 구성된다.└── src ├── main │ ├── java │ │ └── com │ │ └── example │ │ └── demo │ │ ..
[스프링] Service와 ServiceImpl 구조에 관하여
Service의 관점에서 바라봤을 때, 백엔드 Layer는 다음과 같이 두 가지 구조로 구현될 수 있다.Controller - Service - ServiceImpl - DBController - Service - DB이 두 구조의 차이는 ServiceImpl의 사용 여부에 따른 것이다. ServiceImpl를 사용하는 이유는 무엇일까?ServiceImpl을 사용하는 경우, Service Interface와 ServiceImpl Class 구조를 사용하게 된다.기본적으로 Service 인터페이스와 ServiceImpl 구현체를 나누게 된 이유는 두 가지가 있다. 1. 다형성과 OCP(Open Closed Principle)이론적으로 인터페이스와 구현체를 분리하면 구현체는 외부로부터 독립적이 된다. 이로 ..