2024/05/29 4

[Java] Singleton pattern

1. Runtime MemoryMethodstatic상수 ⇒ Unique한 값프로그램 ㅌ코드Class → 실행 시, Stack → new 연산자를 통해 Instance가 됨.StackFunctionHeapInstance2. Singleton Pattern클래스 하나 당 하나의 Instance를 만든다.재사용단점사용하지 않으면 GC가 처리할 수 있다.3. staticInstance 생성없이 필드와 메소드를 생성하고자 할 때 활용필드와 메소드를 객체마다 다르게 가져야 한다면 인스턴스로 생성공통 변수, 인스턴스 필드를 포함하지 않는 메소드를 선언하고자 할 때 사용객체없이 바로 사용 가능public class PlusClass{ static int field1 = 15; static int plusMetho..

Language/Java 2024.05.29

[Java] ⭐JVM내부구조 & 메모리 영역

1. JVM의 동작 방식자바 애플리케이션을 클래스 로더를 통해 읽어 자바 API와 함께 실행1) 자바 프로그램을 실행하면 JVM은 OS로부터 메모리를 할당 받는다. 2) 자바 컴파일러(javac)가 자바 소스코드(.java)를 자바 Byte Code(.class)로 컴파일 한다. 3) Class Loader는 동적 로딩을 통해 필요한 클래스들을 로딩 및 링크 하여Runtime Data Area(실질적인 메모리를 할당 받아 관리하는 영역)에 올린다. 4) Runtime Data Area에 로딩 된 Byte Code는 Execution Engine을 통해 해석된다. 5) 이 과정에서Execution Engine에 의해Garbage Collector의 작동과Thread 동기화가 이루어진다. 2. JVM 구조C..

Language/Java 2024.05.29

[1과목 소프트웨어 설계] 애플리케이션 설계 - 025. ⭐ 모듈 (Module)

분리됨 시스텝의 기능들서브루틴, 서브시스템, 작업 단위 등 같은 의미로 사용단독으로 컴파일 가능, 재사용 가능각 모듈은 서로 독립됨하나의 기능만을 수행하고 다른 모듈과의 과도한 상호작용 배체독립성이 높을수록 수정 시, 다른 모듈에게 거의 영향이 미치지 않으며, 오류가 발생해도 쉽게 발견하고 해결 가능독립성 = 결합도↓ + 응집도↑ + 모듈의 크기 작게 1. 결합도 (Coupling)모듈 간에 상호 의존하는 정도 / 모듈 간의 연관관계결합도가 약할수록 품질이 높고, 강할수록 품직이 낮음결합도가 강하면 시스템 구현 및 유지보수 작업이 어려움1) 자료 결합도 (Data Coupling)모듈 간 인터페이스가 자료 요소로만 구성될 때모듈이 다른 모듈을 호출하면서 매개변수로 데이터를 넘겨주고, 결과를 다시 돌려주는..