
자바 컴파일 자바 실행 과정 자바 파일(. java)을 자바 컴파일러(javac)를 통해 클래스 파일(. class : 바이트코드)로 컴파일한다. 컴파일된 클래스파일을 클래스 로더가 JVM 메모리 로딩시킨다. JIT 컴파일러가 핫스팟으로 정한 부분은 네이티브 코드 화해서 JVM 내부에 캐싱한다. 인터프리터가 한 줄씩 읽어가며 네이티브 코드로 컴파일하여 실행하는데, JIT 컴파일러가 컴파일한 코드 부분은 캐싱된 것을 사용한다. 자바 컴파일러 : javac JDK에 포함된 자바 컴파일러로 자바 언어사양(JLS) 을 충족하는 소스코드를 자바 가상 머신 사양(JVMS)에 맞는 바이트코드를 생성한다. 바이트코드는 JVM이 이해할 수 있는 바이너리 코드(기계어)다. options : 명령줄 옵션. sourcefil..
DAO ( Data Access Object ) 정의 DAO의 풀 네임은 Data Access Object 이다. 이름 그대로 데이터베이스에 접속하는 객체이다. 데이터베이스 접속 이라는 역할을 가진 다 수의 로직을 하나의 객체로 모아 관리가 쉽도록 해준다. VO ( Value Object ) 정의 값이 같은면 동일하다고 간주되는, 식별성 없는 객체 (예 : Address, Color ) JPA의 Value Type 혹은 일급 컬렉션 역시 Value Object의 한 종으로 포함 됨. DTO ( Data Transfer Object ) 정의 레이어, 네트워크등 데이터가 이동할 때 Data Holder 역할. Why? 원격 호출 시, 여러 데이터를 하나씩 보내는 것은 네트워크 호출및 코드의 가독성에 부정적인..

IS-A IS-A 는 ~ 이다 라는 의미를 가지고 있다. 설명하면, 상위 클래스와 하위 클래스의 관계에 있을 때 IS-A 라고 할 수 있다. 코드로 보면 아래와 같다. class Dog extends Mammalia{ //생략. } class Mammalia { // 생략... } 생물 분류법에서 개는 포유류이다. 위 코드에서 Dog 클래스는 Mammalia 클래스에 상속되는데 Dog 은 Mammalia 로 표현할 수 있다. 이 처럼 상위 클래스로 하위 클래스를 표현할 수 있는 관계를 IS-A 관계라고 하며, 자바에서 대표적으로 상속관계를 들 수 있겠다. Has-A Has-A 는 ~을 가지다 라는 의미다. 흔히 합성(Composition) 혹은 조합이라고 불리는데 A 클래스의 필드로 B 클래스를 가지고 ..

다이나믹 프록시 ( Dynamic Proxy ) 💡 목적 Proxy 패턴 디자인 패턴에는 프록시 패턴이라는 것이 있는데 이 프록시 패턴은 어떤 특정 로직 전•후에 부가적인 작업을 진행하기 위한 방법이다. 다만 이 프록시 패턴을 구현을 통해 위 코드에서 문제점을 확인할 수 있다. 다른 구현체가 생성될 때 마다. ProxyHero와 같은 새로운 프록시 클래스가 매번 생성돼야 한다. fight()와 defend() 메서드 모두 같은 기능을 하고 있음에도 불구하고 중복된 코드를 작성해야 한다. 이 문제를 해결하기 위해 JDK에는 java.lang.reflection.Proxy (프록시 팩토리)가 런타임 시점에 Dynamic 하게 인터페이스에 대한 구현체를 생성해주는 기능을 제공한다. 📖 사용 예시 publ..
- Total
- Today
- Yesterday
- java
- Clean Architecture
- ATDD
- 동적 타입 언어
- 정적 타입 언어
- 클린 아키텍처
- pass by value
- 육각형 아키텍처
- 동적 디스패치
- multimap
- 내부 단편화
- 메모리 단편화
- pool
- 메모리 파편화
- 수직 분할
- Memory Fragmentation
- pass by reference
- Object Pool
- SpringBoot 2.2
- RestAssured
- Session
- OOP
- 컴포짓 패턴
- 객체 풀
- 외부 단편화
- 뾰족함
- 세션 불일치
- Sticky Session
- 수평 분할
- 장애 해결기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |