Spring Boot 프로젝트를 진행하다 보면, 여러 프로젝트에서 재사용할 수 있는 공통 모듈을 패키지화해서 관리하고 싶을 때가 많습니다. 이번 포스팅에서는 공통 모듈을 Maven 패키지로 만들어 GitHub Packages에 등록하고, 이를 다른 프로젝트에서 사용하는 방법을 처음부터 끝까지 자세히 설명합니다.1. 🌱 공통 모듈 프로젝트 생성1️⃣ 프로젝트 구조 만들기Spring Boot 공통 모듈 프로젝트를 생성합니다. Maven 프로젝트로 설정하는 것이 중요합니다.Maven 프로젝트 생성 명령어:mvn archetype:generate -DgroupId=com.example -DartifactId=springboot-common-modules -DarchetypeArtifactId=maven-arc..
Spring
1. 🖥️ Redis란 무엇인가?Redis는 Remote Dictionary Server의 약자로, 데이터를 메모리에 저장하여 빠르게 처리하는 오픈 소스 인메모리 데이터베이스입니다. Key-Value 구조로 데이터를 저장하고, 다양한 데이터 구조를 지원하는 것이 특징입니다. 일반적인 데이터베이스와 달리 데이터를 디스크가 아닌 메모리에 저장하기 때문에 읽기/쓰기 속도가 매우 빠릅니다.Redis의 특징인메모리 데이터베이스: Redis는 모든 데이터를 메모리에 저장하고, 필요에 따라 데이터를 디스크에 백업할 수 있습니다. 이로 인해 데이터 처리 속도가 매우 빠르며, 특히 실시간 데이터 처리에 유리합니다.다양한 데이터 구조 지원: Redis는 단순한 Key-Value 저장소일 뿐만 아니라, 다양한 데이터 타입..
🌐 Aspect-Oriented Programming (AOP)AOP는 관심사 분리를 목표로 하는 프로그래밍 패러다임입니다. 특히 로깅, 트랜잭션 관리, 보안과 같은 횡단 관심사(Cross-cutting concerns)를 비즈니스 로직에서 분리할 수 있도록 해줍니다. 비즈니스 로직과는 상관없는 코드가 곳곳에 중복해서 나타나는 문제를 해결해주기 때문에 유지보수성을 크게 향상시킬 수 있습니다. 이를 통해 비즈니스 로직은 본연의 역할에만 집중할 수 있게 되는 거죠.🌟 AOP의 핵심 개념횡단 관심사(Cross-Cutting Concern): 애플리케이션 전반에 걸쳐 사용되는 공통된 기능들. 예를 들어, 로깅, 트랜잭션 관리, 보안 처리 같은 것들이 이에 해당됩니다. 이들은 각 모듈에서 필요로 하지만, 해당..
1. 💻 Spring의 IoC와 DI, 그리고 그 동작 방식Spring에서 중요한 개념 중 하나는 IoC(제어의 역전)과 DI(의존성 주입)입니다. 이 두 가지는 결국 객체의 생성과 관리를 누가 담당하는지에 관한 이야기입니다. 원래는 개발자가 프로그램 내에서 필요한 객체를 직접 생성하고, 의존 관계가 있으면 그 관계를 직접 설정해야 했습니다. 하지만 Spring은 IoC를 통해 이런 책임을 프레임워크가 맡습니다. 쉽게 말하면, 객체 생성과 의존성 관리의 제어권을 Spring이 가져가고, 개발자는 비즈니스 로직에만 집중할 수 있게 되는 것이죠. IoC 개념을 구현하는 방법이 바로 DI(Dependency Injection)입니다. DI는 말 그대로 객체가 필요한 의존성을 외부에서 주입받는 방식입니다. 예..
🤬 문제 Spring boot를 이용해 jsp를 호출함에 있어 Itellij IDE에서 아래의 오류 발생 페이지를 찾을 수 없음 404 ERROR 😅 원인 해당 프로젝트 실행 설정 중 Working Directory이 부모 폴더의 경로로 설정이 되어있었다. EX) portal/parents ☺ 해결방법 실행 configurations 변경 필요 오른쪽 상단 콤보박스 > 실행 Application 확인 > Configuration Edit > Modify Options > Working directory > portal/parent/myDitectory 수정
1. 소스 받기 git clone [url] 2. 소스 내 Project, Modules 설정 SDK 설정 File -> Project Structure -> Modules clone받은 소스에서 Maven 프로젝트 디렉토리를 Module로 설정 한다. File -> Project Structure -> Modules 해당 소스는 2개의 Maven 프로젝트(LTE-R_COMMON_SERVER, LTE-R_JEOLLA_UI)를 포함하고 있어 두개 모두 Maven Module로 설정을 해준다. Apply 후 OK Maven 목록에서 두개의 버튼을 클릭하여 새로고침 후 Maven Update를 해준다. 3. Tomcat 설정 Run -> Edit Configration Tomcat Server -> Local..
1. 🔍 DB 3개를 사용하는 프로젝트에서 발생한 문제와 해결 방법이번 프로젝트에서는 3개의 데이터베이스(DB)를 사용하면서 몇 가지 문제가 발생했습니다. 그중 하나는 내부 DB와 외부 DB에서 서로 다른 설정을 사용하는 부분에서 생긴 문제였습니다.🔹 프로젝트 구조프로젝트는 총 3개의 포털로 이루어져 있으며, 각 포털마다 3개의 DB를 사용합니다.서비스는 하나의 공통된 로직을 사용하며, 각 포털의 controller를 통해 필요한 서비스를 호출하는 방식으로 이루어집니다.🔹 DB 연결 방식각 DB를 연결하기 위해, Mapper 설정 시 3가지의 커스텀 어노테이션을 사용하여 각 포털에 맞는 DB 연결을 설정했습니다. 구체적으로는 아래와 같은 방식으로 @MapperScan을 사용해 각 포털에 맞는 map..