CS/JAVA

[CS/JAVA] 가비지 컬렉션 / 객체지향 설계의 원칙

dbfl9911 2024. 11. 26. 16:53

 


 

 

 

• 가비지 컬렉션(Garbage Collection)에 대해 설명해주세요. 

 

  • 가비지 컬렉션은 JVM의 메모리 관리 기법 중 하나로, 시스템에서 동적으로 할당됐던 메모리 영역 중에서 필요 없어진 메모리 영역을 회수하여 메모리를 관리해주는 기법입니다. 

 

 

• 가비지 컬렉션 과정에 대해 설명해주세요.

  • GC의 작업을 수행하기 위해서 JVM이 어플리케이션의 실행을 잠시 멈추고, GC를 실행하는 쓰레드를 제외한 모든 쓰레드들의 작업을 중단 후 (Stop The World 과정), 사용하지 않는 메모리를 제거(Mark and Sweep 과정)하고 작업이 제개됩니다. 
  • GC의 작업은 Young 영역에 대한 Minor GC와 Old 영역에 대한 Major GC로 구분됩니다. 

 

 


 

 

 

• 객체지향의 설계원칙에 대해 설명해주세요.

 

  1. SRP - 단일 책임의 원칙 : 한 클래스는 하나의 책임만 가져야 합니다.
  2. OCP - 개방 폐쇠의 원칙 : 확장에는 열려있고, 수정에는 닫혀있어야 합니다.
  3. LSP - 리스코프 치환 원칙 : 하위 타입은 항상 상위 타입을 대체할 수 있어야 합니다.
  4. ISP - 인터페이스 분리의 원칙 : 인터페이스 내의 메소드는 최소한 일수록 좋습니다. (하나의 일반적인 인터페이스보다 여러개의 구체적인 인터페이스가 낫습니다.) SRP와 같은 문제에 대한 두가지 다른 해결책입니다. 
  5. DIP - 의존관계 역전의 원칙 : 구체적인 클래스보다 상위 클래스, 인터페이스, 추상 클래스와 같이 변하지 않을 가능성이 높은 클래스와 관계를 맺어야 합니다. DIP 원칙을 따르는 가장 인기있는 방법은 의존성 주입(DI)입니다. 

 

 


 

 

* 위 글은 아래 문서를 참고해 작성했습니다. 

https://dev-coco.tistory.com/153

 

신입 개발자 기술면접 질문 정리 - 자바

💡 Java의 특징을 설명해주세요.Java는 객체지향 프로그래밍 언어입니다. 기본 자료형을 제외한 모든 요소들이 객체로 표현되고, 객체 지향 개념의 특징인 캡슐화, 상속, 다형성이 잘 적용된 언어

dev-coco.tistory.com

 


 

review 1회독 2회독 3회독 4회독 5회독
check ✅(1/22) ✅(1/23) ✅(2/10)