Study/Spring
-
[Spring DB] 커넥션풀과 데이터소스 이해Study/Spring 2025. 7. 12. 15:35
커넥션 풀 이해데이터베이스 커넥션을 매번 획득 데이터베이스 커넥션을 획득할 때는 아래 과정을 거침어플리케이션 로직은 DB 드라이버를 통해 커넥션을 조회한다.DB 드라이버는 DB와 TCP/IP 커넥션을 연결한다. 이 과정에서 3 Way Handshake 같은 TCP/IP 연결을 위한 네트워크 동작이 발생한다.DB 드라이버는 TCP/IP 커넥션이 연결되면 ID, PW와 기타 부가정보를 DB에 전달한다.DB는 ID, PW를 통해 내부 인증을 완료하고, 내부에 DB 세션을 생성한다.DB는 커넥션 생성이 완료되었다는 응답을 보낸다.DB 드라이버는 커넥션 객체를 생성해서 클라이언트에 반환한다. 단점커넥션을 새로 만드는 것은 과정도 복잡하고 시간도 많이 소요됨DB와 어플리케이션 서버 모두 TCP/IP 커넥션을 새로 ..
-
[Spring DB] 데이터 접근 핵심 원리 - JDBC 이해Study/Spring 2025. 6. 28. 23:15
JDBC 이해JDBC 등장 이유어플리케이션 서버와 DB - 일반적인 사용법커넥션 연결 : 주로 TCP/IP를 사용해서 커넥션을 연결한다.SQL 전달 : 어플리케이션 서버는 DB가 이해할 수 있는 SQL을 연결된 커넥션을 통해 DB에 전달한다.결과 응답 : DB는 전달된 SQL을 수행하고 그 결과를 응답한다. 어플리케이션 서버는 응답 결과를 활용한다. 어플리케이션 서버와 DB - DB 변경각각의 데이터베이스마다 커넥션을 연결하는 방법, SQL을 전달하는 방법, 결과를 응답 받는 방법이 모두 다름이런 문제를 해결하기 위해 JDBC라는 자바 표준이 등장함 JDBC 표준 인터페이스대표적으로 다음 3가지 기능을 표준 인터페이스로 정의해서 제공함java.sql.Connection - 연결java.sql.Statem..
-
[Spring] 스프링 핵심 원리 - 스프링 AOP 주의사항Study/Spring 2025. 5. 7. 06:47
프록시와 내부 호출 - 문제개요스프링은 프록시 방식의 AOP를 사용함AOP를 적용하려면 항상 프록시를 통해서 대상 객체(Target)를 호출해야 함만약 프록시를 거치지 않고 대상 객체를 직접 호출하게 되면 AOP가 적용되지 않으므로 Advice(부가 기능)도 호출되지 않음일반적인 상황AOP를 적용하면 스프링은 대상 객체 대신에 프록시 객체를 스프링 빈으로 등록함따라서 스프링은 의존관계 주입 시 항상 프록시 객체를 주입함프록시 객체가 주입되기 때문에 대상 객체를 직접 호출하는 문제는 일반적으로 발생하지 않음문제 상황대상 객체의 내부에서 메서드 호출이 발생하면 프록시를 거치지 않고 대상 객체를 직접 호출하는 문제가 발생함프록시 방식의 AOP 한계 : 메서드 내부 호출에 프록시를 적용할 수 없음 프록시와 내부..
-
[Spring] 스프링 핵심 원리 - 스프링 AOPStudy/Spring 2025. 4. 23. 21:45
AOP 소개 - 핵심 기능과 부가 기능어플리케이션 로직은 크게 핵심 기능과 부가 기능으로 나눌 수 있음핵심 기능 : 해당 객체가 제공하는 고유의 기능부가 기능 : 핵심 기능을 보조하기 위해 제공되는 기능 ex) 로그 추적 로직, 트랜잭션 기능단독으로 사용되지 않고, 핵심 기능과 함께 사용됨부가 기능 적용 문제보통 부가 기능은 여러 클래스에 걸쳐서 함께 사용됨. 따라서 이러한 부가 기능은 횡단 관심사(cross-cutting concerns)가 됨즉, 하나의 부가 기능이 여러 곳에 동일하게 사용되다는 뜻아래와 같은 문제 발생함부가 기능이 여러 곳에 퍼져 중복 코드를 만들어냄중복으로 인해 부가 기능을 변경하거나 부가 기능의 적용 대상을 변경할 때 많은 수정이 필요함 AOP 소개 - Aspect위와 같은 부가..