Study
-
[Spring] 스프링 핵심 원리 - 싱글톤 컨테이너Study/Spring 2025. 4. 16. 21:55
싱글톤 패턴클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴객체 인스턴스를 2개 이상 생성하지 못하도록 막아야 함private 생성자를 사용해 외부에서 임의로 new 키워드를 사용하지 못하도록 막아야 함 예시)public class SingletonService { // 1. static 영역에 객체를 딱 1개만 생성해둠 private static final SingletonService instance = new SingletonService(); // 2. public으로 열어서 객체 인스턴스가 필요하면 이 static 메서드를 통해서만 조회하도록 허용함 public static SingletonService getInstance() { return instance; } // 3..
-
[Spring] 스프링 핵심 원리 - 스프링 컨테이너와 스프링 빈Study/Spring 2025. 4. 16. 21:49
스프링 컨테이너 생성ApplicationContext 를 스프링 컨테이너라고 함 (인터페이스임)스프링 컨테이너는 XML을 기반으로 만들 수 있고, 어노테이션 기반의 자바 설정 클래스를 만들 수 있음참고)더 정확히는 스프링 컨테이너를 부를 때 BeanFactory, ApplicationContext 로 구분해서 이야기함BeanFactory 를 직접 사용하는 경우는 거의 없으므로 일반적으로 ApplicationContext 를 스프링 컨테이너라고 함 스프링 컨테이너의 생성 과정스프링 컨테이너 생성스프링 컨테이너를 생성할 때는 구성 정보를 지정해줘야 함스프링 빈 등록빈 이름은 메서드명을 사용함빈 이름을 직접 부여할 수도 있음 (빈 이름은 항상 다른 이름을 부여해야 함)스프링 빈 의존관계 설정 - 준비스프링 빈..
-
[Spring] 스프링 핵심 원리 - 객체 지향 설계와 스프링Study/Spring 2025. 4. 16. 21:41
SOLIDSRP : 단일 책임 원칙 (single responsibility principle)한 클래스는 하나의 책임만 가져야 한다.하나의 책임이라는 것은 모호함중요한 기준은 변경이다. 변경이 있을 때 파급 효과가 적으면 단일 책임 원칙을 잘 따른 것 OCP : 개방-폐쇄 원칙 (open/closed principle)소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다.다형성을 활용한다.*다형성 : 하나의 타입(부모 타입)으로 여러 형태(자식 타입)의 객체를 다룰 수 있는 것인터페이스를 구현한 새로운 클래스를 만들어 새로운 기능을 구현함 (역할과 구현의 분리)객체를 생성하고, 연관관계를 맺어주는 별도의 조립, 설정자가 필요하다. 예시)더보기public class MemberService ..
-
[JVM] 컴파일과 최적화 (2) - 백엔드 컴파일과 최적화Study/JVM 밑바닥까지 파헤치기 2025. 4. 6. 21:16
바이트코드를 프로그래밍 언어의 중간 표현이라고 생각하면, 컴파일러가 클래스 파일을 로컬 환경(하드웨어 명령어 집합, 운영체제)에 맞는 네이티브 코드로 변환하는 과정을 전체 컴파일 과정의 백엔드로 간주할 수 있음JVM에서 JIT와 AOT 컴파일러는 필수는 아님는 어떤 컴파일러를 제공해야 한다고 규정하지 않았음하지만 백엔드 컴파일러의 컴파일 성능과 최적화 품질은 상용 가상 머신의 우수성을 측정하는 핵심 지표가 됨여기서는 JVM 내부 백엔드 컴파일러의 작업 절차와 원리를 살펴볼 것임따로 명시하지 않는 한 JIT 컴파일러는 핫스팟 VM의 내장 컴파일러를 뜻하고, 가상 머신은 핫스팟 VM을 가리킴주류 JVM들의 백엔드 컴파일러들은 많은 면에서 서로 비슷함 JIT 컴파일러핫스팟 VM과 OpenJ9은 자바 프로그램을..