전체 글 (405) 썸네일형 리스트형 [Spring Boot] AOP 포인트 컷 사용하기 포인트컷(Pointcut)의 주요 용도포인트컷(Pointcut)은 AOP(Aspect-Oriented Programming)에서 Aspect(부가기능)가 적용될 지점을 결정하는 역할을 합니다. 즉, 어떤 메소드, 클래스 또는 패키지에 Advice(부가기능 로직)를 실행할지를 지정하는 것입니다. 이를 통해 특정 로직을 선택적으로 적용하고 불필요한 부분을 배제할 수 있습니다. 포인트컷(Pointcut) 왜 쓸까?특정 메소드나 클래스에 부가기능을 정확히 적용하기 위해모든 메소드에 일괄적으로 적용하면 불필요한 코드 실행이 발생할 수 있습니다.포인트컷을 통해 정확히 필요한 클래스/메소드만 필터링해 부가기능(로깅, 트랜잭션)을 적용할 수 있습니다. 예시 : 특정 컨트롤러 클래스에만 로깅을 적용할 때.유지보수성과.. [프로그래머스] 124 나라의 숫자 코드 힌트3진법과의 차이점124 나라의 숫자는 일반적인 3진법과 다르게 0 대신 4를 사용합니다.따라서, 나머지가 0일 때 몫에서 1을 빼는 것이 중요합니다. 이를 통해 1, 2, 4 세 숫자만 사용됩니다.StringBuilder 활용숫자를 계산한 후 바로 문자열에 추가하지만, 추가되는 순서는 뒤집힌 상태이기 때문에 마지막에 reverse()로 순서를 반전해야 합니다.몫과 나머지의 조정나머지가 0인 경우, 몫에서 1을 빼는 이유는 4를 0처럼 처리하기 위해서입니다.예를 들어, n = 3인 경우 '4'가 나와야 하는데, 이때 몫에서 1을 빼서 올바른 계산이 됩니다.예시n = 1 → "1"n = 2 → "2"n = 3 → "4"n = 4 → "11"이 문제의 핵심3진법을 변형하여 1, 2, 4만 사용하기 때.. [Spring Boot] AOP AOP(Aspect-Oriented Programming)란?AOP는 프로그램의 핵심 비즈니스 로직과 공통 관심사를 분리하여 모듈화하는 프로그래밍 패러다임입니다. 공통 관심사는 로깅, 트랜잭션 관리, 보안, 예외 처리 등 여러 모듈에 걸쳐 반복되는 기능을 의미하며, AOP는 이를 Aspect라는 모듈로 분리하여 개발자의 생산성을 높이고 코드 재사용성을 증가시킵니다. AOP의 특징모듈화: 공통 관심사를 Aspect로 분리하여 코드의 모듈성을 높입니다.재사용성: 하나의 Aspect를 여러 곳에서 재사용할 수 있습니다.유지보수 용이성: 비즈니스 로직과 공통 관심사를 분리함으로써 코드의 가독성과 유지보수가 용이해집니다.개발 생산성 향상: 반복되는 코드 작성을 줄이고, 비즈니스 로직에만 집중할 수 있게 도와줍니.. [Spring Boot] 핸들러 인터셉터(Handler Interceptor) 핸들러 인터셉터란?핸들러 인터셉터는 Spring에서 요청 전후 처리를 담당하는 컴포넌트로, Filter와는 달리 DispatcherServlet 수준에서 작동합니다. 이 컴포넌트는 컨트롤러에 도달하기 전, 후, 그리고 뷰 렌더링 직전에 특정 로직을 수행할 수 있게 해줍니다. 핸들러 인터셉터 인터페이스 메소드 설명CustomInterceptor 클래스@Slf4j@Componentpublic class CustomInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws .. [Spring Boot] Spring MVC 아키텍처: 요청 처리 흐름과 주요 컴포넌트 Spring MVC 주요 구성 요소 설명1. 필터 (Filter)역할: 필터는 클라이언트의 요청이 서버에 도달하기 전에 전처리를 수행하는 컴포넌트입니다. 필터는 웹 애플리케이션의 여러 요청과 응답에 대한 공통 작업을 수행할 수 있습니다.용도:로그 기록: 요청의 메서드, URL, 클라이언트 IP 주소 등을 로그로 기록하여 요청 분석에 도움을 줍니다.인증 및 권한 검사: 사용자의 인증 상태를 확인하고, 인증되지 않은 사용자의 요청을 차단합니다.형 변환: 요청 데이터를 적절한 형식으로 변환하거나, 요청에 대한 추가 처리를 수행합니다. 2. 디스패처 서블릿 (DispatcherServlet)역할: 디스패처 서블릿은 Spring MVC의 중앙 관리자로서, 클라이언트의 HTTP 요청을 가로채어 적절한 핸들러로 전달.. [Java] 1급 커넥션 1급 커넥션이란?1급 컬렉션 (First-class Collection)은 소프트웨어 설계 원칙 중 하나로, 특정 도메인 객체를 관리할 때 컬렉션을 포장(wrapper)한 클래스를 사용하는 것을 의미합니다. 객체지향 설계의 응집도와 책임의 단일화(Single Responsibility Principle)를 강화하는 데 도움이 됩니다. 1급 컬렉션의 특징컬렉션 외에 다른 멤버 변수를 가지지 않음1급 컬렉션 클래스는 내부에 단일 컬렉션(리스트, 셋 등)만을 멤버 변수로 가지며, 불필요한 다른 필드를 포함하지 않습니다.불변 객체(Immutable)컬렉션 내부의 데이터는 외부에서 수정할 수 없도록 보장합니다. 따라서 읽기 전용으로 제공하며, 추가/삭제 작업은 새로운 객체를 반환합니다.컬렉션과 관련된 로직을 캡.. [생성 패턴] 싱글톤(Singleton Pattern) Java 예제 싱글톤이란?싱글톤 패턴은 하나의 클래스에 대해 단 하나의 인스턴스만 생성되도록 보장하고, 이 인스턴스에 전역적 접근을 제공하는 디자인 패턴입니다. 프로그램 전체에서 동일한 객체를 공유해야 할 때 사용하는 패턴입니다. 싱글톤 패턴이 필요한 이유하나의 리소스에 대한 일관성 유지데이터베이스 연결 객체나 설정 파일 관리 객체처럼 하나만 존재해야 하는 리소스를 관리할 때 사용합니다.여러 객체가 동일한 자원을 동시에 수정하면 데이터 무결성에 문제가 발생할 수 있습니다.메모리 절약 및 성능 최적화동일한 객체를 여러 번 생성하는 대신 하나의 인스턴스를 재사용하므로 메모리 낭비를 줄일 수 있습니다.글로벌 접근 가능성 제공프로그램 어디서든지 하나의 객체에 접근해야 하는 경우에 사용합니다. 싱글톤 패턴의 구조싱글톤 패턴.. [디자인 패턴] 디자인 패턴이란? 디자인 패턴이란?디자인 패턴은 개발 과정에서 반복적으로 발생하는 문제를 효율적으로 해결하기 위한 재사용 가능한 설계 구조입니다. 이는 소프트웨어 개발 시 직면하는 특정 문제들에 대해 검증된 해결 방식을 제공합니다. 디자인 패턴의 핵심 목표디자인 패턴은 객체 지향 프로그래밍의 4대 특성(캡슐화, 상속, 추상화, 다형성)과 SOLID 원칙에 기반하여 구현됩니다. 주요 목표는 다음과 같습니다:코드 재사용성: 검증된 설계를 여러 프로젝트에 쉽게 활용할 수 있습니다.유지 보수성 향상: 코드의 구조가 명확해져 수정과 관리가 쉬워집니다.확장성: 시스템을 유연하게 설계하여 변경이 필요할 때 쉽게 확장할 수 있습니다.일관성 향상: 개발팀 간에 동일한 문제 해결 방식을 공유해 협업을 원활하게 만듭니다. 디자인 패턴의 .. 이전 1 ··· 4 5 6 7 8 9 10 ··· 51 다음