Java/Java > Basics 3

Java > 패키지 구조

Layer-based 구조 (계층별 구조)com.example.app ├─ controller │ ├─ UserController.java │ └─ ProductController.java ├─ service │ ├─ UserService.java │ └─ ProductService.java └─ dao ├─ UserDao.java └─ ProductDao.java 장점계층 책임이 명확함MVC 패턴과 직관적으로 매칭단점도메인 단위로 변경/확장하기 어렵고, 특정 기능 수정 시 여러 패키지를 오가야 할 수 있음규모가 커지면 패키지 간 의존성 관리가 어려움 Feature/Domain-based 구조 (도메인별 구조)com.example.app ├─ user │ ├─ UserCo..

Java/Java > Basics 2025.11.17

Java > Checked 예외의 재정의

자바의 메서드 재정의 시 규칙Checked(이하 검사) 예외부모 메서드가 검사 예외를 던지지 않으면 재정의된(Overrided) 자식 메서드도 예외를 던질 수 없다자식 메서드는 부모 메서드가 던질 수 있는 검사 예외의 하위 타입만 던질 수 있다Runtime 예외제약없음 대표적으로 Runnable 인터페이스의 메서드 시그너처는 다음과 같다public abstract void run(); 따라서 Runnable 인터페이스를 구현한 클래스가 run() 메서드를 재정의할 때 검사 예외를 던지면 컴파일 에러가 발생한다 Thread 클래스도 Runnable 인터페이스를 구현하고 있으므로 위 제약이 동일하게 적용된다

Java/Java > Basics 2024.09.09

Java > Memory structure

Run-time data areashttps://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html#jvms-2.5Method area모든 JVM 쓰레드가 공유 클래스별 구조를 저장런타임 상수 풀(Pool)공통 리터럴 상수클래스 정보클래스의 실행(바이트) 코드필드, 메서드 데이터메서드와 생성자 코드static 영역static 변수 보관 논리적으로 Heap의 부분 메서드 영역의 메모리가 할당 요청을 충족시키지 못하면 JVM은 OutOfMemoryError를 던진다JVM stacks각각의 JVM 쓰레드는 생성될 때 자기만의 스택을 가진다 JVM 스택은 Frame을 저장한다 JVM 스택은 C같은 전통적인 언어의 스택과 유사하다(Stack) frame스택 영역에 쌓..

Java/Java > Basics 2024.09.04