Jinsu's Technical Blog
  • 홈
  • 태그
  • 방명록
  • 메뉴 닫기
  • 글작성
  • 방명록
  • 환경설정
    • 분류 전체보기 (250)
      • Java (18)
      • Spring Framework (33)
        • Toby's Spring 3.1 (6)
        • Spring IoC (6)
        • TDD (6)
        • Reflection (6)
        • AOP (6)
      • Spring Boot (11)
      • Spring Security (22)
      • Database (17)
        • Mysql (2)
        • JDBC (2)
        • JPA (13)
      • Build and Development Tools (3)
        • Maven (1)
        • Gradle (1)
        • Lombok (1)
      • Network (12)
      • Apache Tomcat (11)
      • Microservices Architecture (33)
      • Linux (9)
      • React (10)
      • Docker (22)
      • OAuth (10)
      • DevOps (2)
      • Git (2)
      • HTML (1)
      • CSS (1)
      • JavaScript (1)
      • Problem and Solution Guide (8)
        • Java (1)
        • Spring Framework (4)
        • Reflection (1)
        • Dynamic Proxy (1)
        • JPA (1)
      • Note-Taking (23)
  • 홈
  • 태그
  • 방명록
Problem and Solution Guide/Spring Framework

심화 스프링 프레임워크: 문제 해결과 실전 예시 모음

1. 빈 설정 및 DI (Dependency Injection) 문제: 의존성 주입을 이용해 서비스 클래스를 작성하고, @Autowired를 사용해 주입된 객체를 이용하는 방법을 구현하세요. 해결 방안:@Servicepublic class OrderService { private final ProductRepository productRepository; // 생성자 주입 @Autowired public OrderService(ProductRepository productRepository) { this.productRepository = productRepository; } public Product getProductById(Long id) { ..

2024. 9. 9. 12:48
Problem and Solution Guide/Spring Framework

Spring Framework 문제와 풀이

1. 의존성 주입 (Dependency Injection) 문제 문제: UserService가 UserRepository를 사용하여 유저 정보를 관리합니다. UserRepository를 의존성 주입을 통해 UserService에 주입하는 코드를 작성하세요.@Servicepublic class UserService { private UserRepository userRepository; // 의존성 주입을 통해 UserRepository를 주입하세요. public void saveUser(User user) { userRepository.save(user); }} 풀이:  • UserService 클래스에 UserRepository를 생성자 주입 방식으로 주입하는 방식으로..

2024. 9. 6. 09:41
Problem and Solution Guide/Spring Framework

AOP부터 트랜잭션 관리까지: Spring AOP 문제 풀이로 배우기

1. Spring AOP 기본 개념 문제 문제: 아래의 코드에서 @Before 어노테이션을 사용하여 Service 클래스의 performTask() 메서드가 호출되기 전에 “메서드가 시작됩니다.“라는 메시지를 출력하도록 AOP 설정을 추가하세요.@Servicepublic class Service { public void performTask() { System.out.println("작업을 수행 중..."); }} 풀이:  • @Before 어드바이스를 사용해 performTask() 메서드 실행 전에 메시지를 출력하는 AOP 설정을 추가합니다.@Aspect@Componentpublic class LoggingAspect { @Before("execution(* com.exa..

2024. 9. 6. 09:36
Problem and Solution Guide/Java

자바 기초 마스터: 주요 개념과 문제 풀이

1. 변수와 자료형 2. 조건문 3. 반복문 4. 배열 5. 메서드 6. 클래스와 객체 지향 프로그래밍(OOP) 7. 상속 8. 인터페이스 9. 예외 처리 10. 컬렉션 1. 변수와 자료형 문제: 두 정수 값을 입력받아, 두 값의 합과 곱을 출력하는 프로그램을 작성하세요.import java.util.Scanner;public class VariableExample { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("첫 번째 정수를 입력하세요: "); int num1 = scanner.nextInt(); System..

2024. 9. 6. 09:14
Note-Taking

Java와 Spring에서의 CRUD, AOP, 트랜잭션 관리 및 네트워크 통신 개념 정리

CRUD는 Create(생성), Read(읽기), Update(수정), **Delete(삭제)**의 약자로, 데이터베이스나 유사한 시스템에서 데이터를 관리하는 네 가지 기본 기능을 나타냅니다. CRUD는 일반적으로 데이터베이스와 상호작용하는 애플리케이션에서 사용되며, 다음과 같은 작업을 수행할 수 있게 합니다.  1. Create(생성): 새로운 데이터를 데이터베이스에 삽입합니다. 2. Read(읽기): 기존 데이터를 데이터베이스에서 조회하거나 접근합니다. 3. Update(수정): 이미 존재하는 데이터를 수정하거나 변경합니다. 4. Delete(삭제): 데이터를 데이터베이스에서 삭제합니다. 이러한 CRUD 작업은 웹 개발에서 매우 중요한 기능입니다. AOP Alliance는 **Aspect-Orient..

2024. 9. 5. 11:28
Note-Taking

Annotation 기반의 Container Configuration 개념 정리

Annotation 기반의 Container Configuration은 Spring 프레임워크에서 매우 중요한 개념으로, 전통적인 XML 기반 설정 대신에 자바 어노테이션을 사용하여 Spring 컨테이너를 구성하는 방법입니다. 이 접근 방식은 코드 내에 직접 설정 정보를 포함시키기 때문에 가독성과 유지보수성이 높아지는 장점이 있습니다. 1. Annotation 기반의 Container Configuration 개념 Spring에서 Annotation 기반의 Container Configuration은 주로 @Configuration과 @Bean 어노테이션을 사용하여 구현됩니다. 이 방식에서는 Spring IoC(역제어) 컨테이너가 빈(bean)을 구성하고 관리하는 데 필요한 메타데이터를 어노테이션을 통해..

2024. 9. 3. 22:51
Note-Taking

Autowired 어노테이션 사용 방법 정리

@Autowired 어노테이션 사용 방법  1. 생성자 주입@Autowired 어노테이션은 클래스의 생성자에 붙여서 의존성을 주입할 수 있습니다. 예를 들어 아래 코드를 보세요:public class MovieRecommender { private final CustomerPreferenceDao customerPreferenceDao; @Autowired public MovieRecommender(CustomerPreferenceDao customerPreferenceDao) { this.customerPreferenceDao = customerPreferenceDao; } // ...}Spring Framework 4.3 버전부터는 클래스에 생성자가 하나만 있을..

2024. 9. 3. 17:08
Note-Taking

Annotation-based Container Configuration과 Java-based Container Configuration 정리

Annotation-based Container Configuration  • 설명: 이 방법은 주로 클래스나 메서드에 다양한 스프링 어노테이션을 사용하여 빈(bean)을 정의하고 구성하는 방식입니다. 주로 @Component, @Service, @Repository, @Controller와 같은 어노테이션을 사용해 클래스가 스프링 컨테이너에서 관리되는 빈임을 명시합니다. • 예시: @Component로 클래스에 어노테이션을 붙이면 스프링이 자동으로 해당 클래스를 빈으로 등록합니다. • 장점: 설정이 간단하고, 기존 코드에 최소한의 변경으로 스프링과 통합할 수 있습니다. 주로 “자동 빈 등록”이라고 불리며, 많은 설정을 자동으로 처리합니다. • 단점: 세밀한 제어가 어렵고, 컴파일 시점에 설정을 확인할 ..

2024. 9. 3. 16:12
Note-Taking

Instrumentation API 정리

AspectJ도 Instrumentation API를 사용한다...Instrumentation API 주요 기능ClassFileTransformer:ClassFileTransformer는 클래스가 로드되기 전에 바이트코드를 변환할 수 있는 인터페이스입니다. 이를 통해 클래스 파일을 로드하거나 정의하는 과정에서 코드를 삽입하거나 수정할 수 있습니다.예를 들어, 메소드 호출 전후에 로그를 기록하는 기능을 추가하거나, 메소드 실행 시간을 측정하는 코드를 삽입할 수 있습니다.Java Agent:Instrumentation API를 사용하는 주요 방법 중 하나는 Java 에이전트를 사용하는 것입니다. 에이전트는 JVM이 시작될 때 클래스 로더에 ClassFileTransformer를 등록하여, 모든 클래스가 로드..

2024. 9. 3. 13:51
Spring Framework/AOP

Spring AOP와 AspectJ를 활용한 다양한 Advice 유형과 적용 방법

Declaring Advice어드바이스는 포인트컷 표현식과 연관되어 있으며, 포인트컷에 의해 매칭된 메서드 실행 전, 후 또는 실행 중에 실행됩니다. 포인트컷 표현식은 인라인 포인트컷이거나 named pointcut을 참조할 수 있습니다.Before Advice@Before 애노테이션을 사용하여 어드바이스를 선언할 수 있습니다.다음 예제는 인라인 포인트컷 표현식을 사용한 예제입니다:import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before;@Aspectpublic class BeforeExample { @Before("execution(* com.xyz.dao.*.*(..))") public void d..

2024. 9. 2. 10:23
Spring Framework/AOP

Spring AOP의 @AspectJ 스타일과 포인트컷 구성 가이드

@AspectJ@AspectJ는 애노테이션을 사용하여 일반적인 자바 클래스로 어드바이스를 선언하는 스타일을 의미합니다. @AspectJ 스타일은 AspectJ 5 릴리스의 일환으로 AspectJ 프로젝트에서 도입되었습니다. Spring은 포인트컷을 해석하고 매칭[match:연결]하기 위해 AspectJ에서 제공하는 라이브러리를 사용하여 동일한 애노테이션을 AspectJ 5처럼 해석합니다. 그러나 AOP 런타임은 여전히 순수한 Spring AOP로 동작하며, AspectJ 컴파일러나 위버(weaver)에 대한 의존성은 없습니다.AspectJ 컴파일러와 위버를 사용하면 전체 AspectJ 언어를 사용할 수 있으며, 이에 대한 내용은 "Using AspectJ with Spring Applications"에서..

2024. 8. 29. 11:39
Spring Framework/AOP

Spring AOP APIs 3: 간결한 프록시 정의, ProxyFactory를 사용한 AOP 프록시 생성, Advised 객체 조작, 자동 프록시 기능 활용

Concise Proxy Definitions특히 트랜잭션 프록시를 정의할 때, 유사한 프록시 정의가 많이 생길 수 있습니다. 부모-자식 빈 정의와 내부 빈 정의를 사용하면 훨씬 깔끔하고 간결한 프록시 정의를 만들 수 있습니다.먼저, 다음과 같이 프록시를 위한 부모(템플릿) 빈 정의를 생성합니다:XML 기반 구성: PROPAGATION_REQUIRED 자바 기반 구성:@Configurationpublic class AppConfig { @Bean public TransactionProxyFactoryBean txProxyTemplate(TransactionManager transactionManager) { Tra..

2024. 8. 27. 16:04
Spring Framework/AOP

Spring AOP APIs 2: Advisor API 이해 및 ProxyFactoryBean을 활용한 AOP 프록시 생성

The Advisor API in SpringSpring에서 Advisor는 포인트컷 표현식과 연관된 단일 어드바이스 객체만을 포함하는 애스펙트입니다.도입(introductions)의 특별한 경우를 제외하고, 모든 어드바이저는 모든 어드바이스와 함께 사용할 수 있습니다. `org.springframework.aop.support.DefaultPointcutAdvisor`는 가장 일반적으로 사용되는 어드바이저 클래스입니다. 이 클래스는 `MethodInterceptor`, `BeforeAdvice`, 또는 `ThrowsAdvice`와 함께 사용할 수 있습니다.Spring에서는 동일한 AOP 프록시에서 어드바이저와 어드바이스 타입을 혼합할 수 있습니다. 예를 들어, 하나의 프록시 구성에서 인터셉션 aroun..

2024. 8. 27. 13:45
Spring Framework/AOP

Spring AOP의 고급 기능: Pointcut, Advice, Introduction의 이해와 적용

https://docs.spring.io/spring-framework/reference/core/aop-api.html Pointcut API in Spring이 섹션에서는 Spring이 중요한 포인트컷 개념을 어떻게 처리하는지 설명합니다.Concepts스프링의 포인트컷 모델은 advice 유형과 독립적으로 포인트컷을 재사용할 수 있게 해줍니다. 동일한 포인트컷으로 다양한 어드바이스를 타겟팅할 수 있습니다.org.springframework.aop.Pointcut 인터페이스는 특정 클래스와 메서드를 타겟으로 어드바이스를 지정하기 위해 사용하는 핵심 인터페이스입니다. 전체 인터페이스는 다음과 같습니다:public interface Pointcut { ClassFilter getClassFilter(..

2024. 8. 26. 17:08
Spring Framework/AOP

Spring AOP와 AspectJ를 활용한 모듈화 프로그래밍 이해하기

[공식문서]AOP(Aspect-Oriented Programming)는 프로그램 구조를 생각하는 또 다른 방법을 제공하여 OOP(Object-Oriented Programming)를 보완합니다. OOP에서의 주요 모듈화 단위는 클래스인 반면, AOP에서는 모듈화 단위가 aspect입니다. aspect는 트랜잭션 관리와 같은 여러 타입과 객체에 걸쳐 있는 문제를 모듈화할 수 있게 해줍니다. 이러한 문제는 AOP 문헌에서 흔히 crosscutting concerns라고 불립니다.Spring의 주요 구성 요소 중 하나는 AOP 프레임워크입니다. Spring IoC 컨테이너는 AOP에 의존하지 않으므로(AOP를 사용하지 않아도 된다는 의미) AOP를 꼭 사용해야 하는 것은 아니지만, AOP는 Spring IoC..

2024. 8. 26. 17:07
  • «
  • 1
  • ···
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • »

공지사항

  • Jinsu's GitHub

전체 카테고리

  • 분류 전체보기 (250)
    • Java (18)
    • Spring Framework (33)
      • Toby's Spring 3.1 (6)
      • Spring IoC (6)
      • TDD (6)
      • Reflection (6)
      • AOP (6)
    • Spring Boot (11)
    • Spring Security (22)
    • Database (17)
      • Mysql (2)
      • JDBC (2)
      • JPA (13)
    • Build and Development Tools (3)
      • Maven (1)
      • Gradle (1)
      • Lombok (1)
    • Network (12)
    • Apache Tomcat (11)
    • Microservices Architecture (33)
    • Linux (9)
    • React (10)
    • Docker (22)
    • OAuth (10)
    • DevOps (2)
    • Git (2)
    • HTML (1)
    • CSS (1)
    • JavaScript (1)
    • Problem and Solution Guide (8)
      • Java (1)
      • Spring Framework (4)
      • Reflection (1)
      • Dynamic Proxy (1)
      • JPA (1)
    • Note-Taking (23)

블로그 인기글

전체 방문자

오늘
어제
전체
Powered by Privatenote Copyright © Jinsu's Technical Blog All rights reserved. TistoryWhaleSkin3.4

티스토리툴바