멀티 모듈이 무엇이고, 왜 사용할까?
·
Spring
1. 멀티 모듈이란? Java에서 모듈이란 패키지의 한 단계 위의 집합체이며, 서로 밀접하게 연관된 패키지들과 리소스들의 그룹을 의미한다. 각 모듈은 독립적으로 개발, 빌드, 테스트, 배포가 가능하다. 멀티 모듈 프로젝트는 상호 연결된 여러 개의 모듈로 구성된 프로젝트로, 각 모듈이 서비스의 구성요소로서 동작한다. 2. 멀티 모듈 프로젝트 - 단일 모듈 멀티 프로젝트 vs 멀티 모듈 싱글 프로젝트 회원 시스템을 예시로 들며 멀티 모듈 프로젝트에 대해 자세히 살펴보자. 회원 시스템을 개발하기 위해 아래와 같은 프로젝트가 필요하다. member-external-api: 고객 화면에서 호출하는 API 서버 member-admin-api: 관리자 페이지에서 호출하는 API 서버 member-batch: 주기적인..
[트러블 슈팅] This method cannot decide whether these patterns are Spring MVC patterns or not.
·
Spring
This method cannot decide whether these patterns are Spring MVC patterns or not. If this endpoint is a Spring MVC endpoint, please use requestMatchers(MvcRequestMatcher); otherwise, please use requestMatchers(AntPathRequestMatcher). 새로운 Spring Boot 프로젝트를 만들고 회원가입 API를 만들며 Spring Security와 관련하여 위와 같은 에러가 발생하였다. Spring Security 버전이 달라지면서 RequestMatchers 작성 방법이 달라지면서 발생한 에러이다. → 공식문서 참고 이전 프로젝트에서 사..
Spring AOP를 이용하여 모든 Request 로그 남기기
·
Spring
0. 들어가며 AOP와 Spring AOP에 대해 알아보자 1. AOP란? AOP는 Aspect Oriented Programming의 약자로, 관점 지향 프로그래밍을 의미한다. 핵심적인 비즈니스 로직으로부터 횡단 관심사를 분리하는 것을 목적으로 한다. 로깅, 보안, 트랜잭션 처리와 같 leeeeeyeon-dev.tistory.com 저번 포스트에서 AOP가 무엇인지와 Spring AOP를 사용하는 방법에 대해 간단하게 알아보았다. 이전에는 API 요청 정보를 로깅할 때 아래 예시처럼 Controller 메소드마다 모두 직접 적어주었다. @RestController @RequestMapping("/api/v1/crews/schedules") @RequiredArgsConstructor public cla..
AOP와 Spring AOP에 대해 알아보자
·
Spring
1. AOP란? AOP는 Aspect Oriented Programming의 약자로, 관점 지향 프로그래밍을 의미한다. 핵심적인 비즈니스 로직으로부터 횡단 관심사를 분리하는 것을 목적으로 한다. 로깅, 보안, 트랜잭션 처리와 같이 비즈니스 핵심적인 기능이 아니지만 애플리케이션 코드가 중복되고 강력하게 결합되어 있어 다른 로직과 분리할 수 없는 애플리케이션 로직을 의미한다. 다시 말하면, AOP란 핵심적인 관점과 부가적인 관점을 나누어보고 그 관점을 기준으로 각각 분리하는 것을 의미한다. 쉽게 말해 부가적인 기능들을 따로 관리한다는 뜻이다. 2. AOP, 뭐가 좋을까? 먼저 코드 전체에 흩어져 있는 관심 사항이 하나의 장소로 응집된다. 그렇기 때문에 중복되는 코드를 줄일 수 있다. 두 번째로, 비즈니스 로..
logback과 Sentry로 에러 모니터링하기
·
Spring
들어가며 현재 진행중인 프로젝트에서는 logback과 팀 내 협업 툴인 디스코드를 연동하여 애플리케이션 단에서 에러 로그가 발생하면 디스코드로 알림이 오도록 환경을 구축하였다. 빠르게 에러를 파악할 수 있다는 장점이 있지만, 디스코드는 메신저 툴이기 때문에 로그를 관리하기 어렵다는 단점이 있다. 그렇기 때문에 에러 트래킹 및 성능 모니터링 도구로 유명한 Sentry를 프로젝트에 도입하여 로그를 보다 체계적으로 관리하고자 한다. 참고로 Sentry는 완전 무료 서비스가 아니다. 무료 Plan을 제공하긴 하나 사용할 수 있는 기능이 한정적이다. 멤버 수 제한 - 유료 사용의 경우 무제한 에러 수 제한(월 5,000개) - 유료 사용의 경우 100,000개 이상 히스토리 제한(30일) - 유료 사용의 경우 9..
Spring Boot 3.0 이상에서 QueryDsl 프로젝트 세팅
·
Spring
진행 버전은 다음과 같습니다. - Java 17 - JDK 17 - Spring Boot 3.1.4 - QueryDsl 5.0.0 build.gradle // QueryDsl 이라고 주석이 달린 부분이 기본 build.gradle에서 추가해준 부분이다. plugins { id 'java' id 'org.springframework.boot' version '3.1.4' id 'io.spring.dependency-management' version '1.1.3' } group = 'com.example' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '17' } configurations { compileOnly { extendsFrom annotat..
짱정연
'Spring' 카테고리의 글 목록 (3 Page)