본문 바로가기

Programming language/Java6

[Java] SOLID란? SRP 단일 책임 원칙(Single responsibility principle) 한 클래스는 하나의 책임만 가져야 한다는 원칙이다. OCP 개방-폐쇄 원칙(Open/closed principle) 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다는 원칙이다. 다형성을 활용해야 한다. LSP 리스코프 치환 원칙(Liskov substitution principle) 프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야하는 원칙으로 상위 타입을 상속해서 재정의 했을 때 프로그램이 깨지지 않아야 함을 의미한다. ISP 인터페이스 분리 원칙(Interface segregation principle) 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터.. 2022. 5. 16.
[Java] 객체지향이란? 객체지향이란? 객체지향 프로그래밍(Object-Oriented Programming, OOP)은 프로그램을 실제 세상에 가깝게 모델링하는 컴퓨터 프로그래밍 패러다임 중 하나로, 실제 세계의 데이터를 추상화 시켜 프로그래밍에서 상태와 행위를 가진 객체를 만들고, 그 객체들 간의 유기적인 상호작용으로 구성하는 프로그래밍 방법이다. 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다. OOP의 4가지 특징 추상화 구체적인 사물들의 공통적인 특징을 파악해서 이를 하나의 개념(집합)으로 다루는 것이다. 즉 객첵들의 공통적인 특징(속성, 기능)을 모아 하.. 2022. 5. 16.
[Java] GC란? GC(Carbage Collection)란? 가비지 컬렉션(Garbage Collection) 가비지 컬렉션(Garbage Collection)은 프로그램이 동적으로 할당했던 메모리 영역 중에서 필요 없게 된 영역을 탐지하여 자동으로 해제하는 기능이다. 가비지 컬렉션은 자바만의 기능이 아니다. 개발자가 힙을 사용할 수 있는 만큼 자유롭게 사용하고, 더 이상 사용되지 않는 객체들은 가비지 컬렉션을 담당하는 프로세스가 자동으로 메모리에서 제거하도록 하는 것이 가비지 컬렉션의 기본 개념이다. 가비지 컬렉터(Garbage Collector) 가비지 컬렉터(Garbage Collector)는 가비지 컬렉션을 수행하는 담당자이다. JVM에는 가비지 컬렉션 알고리즘을 수행하는 가비지 컬렉터가 있다. 힙 메모리에 객.. 2022. 5. 12.
[Java] JVM, JRE, JDK JVM Java Virtual Machine (자바 가상 머신) JVM은 자바 바이트코드를 실행할 수 있는 주체이다. Java로 작성된 프로그램은 운영체제에 맞는 실행 파일로 컴파일되는 것이 아닌 .class 라는 확장자를 가진 파일(자바 바이트코드)로 변환된다. 변환된 자바 바이트코드는 JVM 위에서 작동이 된다. 이때, 미리 설치된 JVM 은 운영체제 별로 동일하게 작동하도록 .class 파일에게 환경을 제공한다. JRE Java SE Runtime Environment (자바 런타임 환경) JRE는 컴파일 된 Java 프로그램(자바 바이트코드, class 파일)을 실행하는데 필요한 패키지이다. JRE는 JVM을 포함하고 있다. JVM은 우리가 작성한 코드를 기반으로 한 .class 확장자를 가진 클.. 2022. 5. 12.
[Java] JIT 컴파일러란? JIT 컴파일(just-in-time compilation) 또는 동적 번역(dynamic translation)은 프로그램을 실제 실행하는 시점에 기계어로 번역하는 컴파일 기법이다. 컴파일러 vs 인터프리터 컴파일러와 인터프리터 모두 high-level language를 machine language로 번역한다. 컴파일러는 소스 코드(high-level language로 작성) 전체를 링커 등을 통해 한번에 번역하여 목적 파일(기계어로 작성)로 만들어 메모리상에 적재한다. 인터프리터는 소스 코드를 한 행씩 중간 코드로 번역 후 실행한다. 컴파일러는 소스코드 전체를 컴퓨터 프로세서가 실행할 수 있도록 바로 기계어로 변환한다. 인터프리터는 고레벨 언어를 중간 코드(intermediate code)로 변환하.. 2022. 5. 9.
[Java] JVM이란? Java Virtual Machine의 줄임말. JVM은 ‘자바를 실행하기 위한 가상 기계(컴퓨터)’이다. JVM은 2가지 기본 기능이 있다. 자바 프로그램이 어느 기기, 어느 운영체제 상에서도 실행될 수 있게 만들어 준다. -> WORA 자바 프로그램의 메모리를 효율적으로 관리 & 최적화해 준다. 💡 WORA WORA = Write Once, Run Anywhere ‘한 번 쓰고 모든 곳에서 실행한다’라는 뜻으로, 자바의 개발 철학이다. 자바는 WORA를 구현하기 위해 물리적인 머신과 별개의 가상 머신을 기반으로 동작하도록 설계되었다. 그래서 자바 바이트코드를 실행하고자 하는 모든 하드웨어에 JVM을 동작시킴으로써 자바 실행 코드를 변경하지 않고도 모든 종류의 하드웨어에서 동작되게 한 것이다. Java.. 2022. 5. 5.