토비의 스프링 - 오브젝트와 의존관계
0. 스프링을 학습하기 전 스프링의 핵심 철학은, 객체지향 프로그래밍이 제공하는 가치를 활용하는 것이다. 그래서 스프링을 학습하기전에 객체 생성 -> 관계 형성 -> 소멸 까지의 흐름을 숙지하면 좋다. 또한 스프링을 사용하다보면 객체지향 설계/원칙을 자연스럽게 적용할 수 있도록 설계되어있다. 1.1.1 초난감 DAO...
0. 스프링을 학습하기 전 스프링의 핵심 철학은, 객체지향 프로그래밍이 제공하는 가치를 활용하는 것이다. 그래서 스프링을 학습하기전에 객체 생성 -> 관계 형성 -> 소멸 까지의 흐름을 숙지하면 좋다. 또한 스프링을 사용하다보면 객체지향 설계/원칙을 자연스럽게 적용할 수 있도록 설계되어있다. 1.1.1 초난감 DAO...
1. VPC VPC를 사용하여 사용자가 정의한 가상 네트워크를 생성한 후 EC2 인스턴스와 같은 AWS 리소스를 그 안에 배치할 수 있다. 즉, 사용자의 워크로드를 외부와 격리되는 네트워크에 구성하여 관리하는 것이 가능하다. 1.1. VPC 구성 과정 VPC 이름 및 IPv4 CIDR 지정 Internet과 통신이 가능하도록 Inter...
1. MySQL의 전체 구조 MySQL 서버는 크게 MySQL 엔진과 스토리지 엔진으로 구분할 수 있다. 2. MySQL 엔진 MySQL 엔진은 요청된 SQL 문장을 분석하거나, 최적화 하는 등 DBMS의 두뇌에 해당하는 처리를 수행한다. 또한 MySQL 엔진은 클라이언트의 접속/쿼리 요청을 처리하는 커넥션 핸들러와 SQL파서, 전처리기, ...
CHAPTER 03. 코드 구성하기 가볍게 배경지식 훑어보기 육각형 아키텍쳐 육각형 아키텍쳐 용어 인바운드 어댑터/포트 : 애플리케이션에 표현 계층 대신 비즈니스 로직을 호출하여 외부에서 들어온 요청을 처리하는 인바운드 어댑터로, Controller 라고 생각하면 편하다 아웃바운드 어댑터/포트 : 영속화 계층 대신 비즈니스 로...
QueryDSL과 DTO를 매핑하는 방법 총 4가지가 존재하는데 Projections.bean (프로퍼티 접근 Setter) Projections.fields (필드 접근) Projections.constructor (생성자 접근) @QueryProjection (생성자 활용) 특징: DTO 생성자에 @QueryProjectio...
1. Method Area 클래스 구조(클래스 이름, 부모 클래스 이름, 메서드 및 변수 정보) 등 클래스 수준의 모든 정보를 담고 있다. static 변수를 가지고 있다. JVM 당 하나의 메서드 영역을 가지고 있고, 공유 될 수 있는 영역이다. 2. Heap 모든 객체 및 연관된 인스턴스 변수/배열이 저장되는 장소이...
IBM Documentation Oracle Documentation JIT-Compiler Java는 JVM이 Interpreting할 수 있는 ByteCode를 가진 .class로 구성된다. 런타임 시점에, JVM은 .class파일을 로드하고, byte code의 의미를 결정하고 적절한 계산을 수행한다. 즉, JIT Compiler는 런타...
ClassLoader Javac에 의해 바이트코드로 변환된 클래스 파일을 JVM 메모리로 로딩하기 위한 하위 시스템이다. Class Loader는 세 가지 주요 기능이 있다. Loading Linking, Initialization 1. ClassLoader - Loading 클래스 로더는 .class 파일을 읽고, 바이너...
1. 스프링 컨테이너와 Bean 1.1. 스프링 컨테이너란? 스프링 컨테이너는 자바 객체의 생명 주기를 관리하며, 생성된 자바 객체들에게 추가적인 기능을 제공하는 역할을 수행한다. 여기서 말하는 자바 객체를 스프링에서는 빈(Bean)이라고 칭한다. IoC와 DI의 원리가 이 스프링 컨테이너에 적용된다. 1.1.1 제어 흐름을 외부에서 ...
Annotation(어노테이션) 은 무엇인가?? 구글 번역기를 돌려보면 “주석” 이라고 나온다. Annotations, a form of metadata, provide data about a program that is not part of the program itself. Annotations have no direct effect...