inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

채널톡 면접관이 직접 알려주는 CS 면접 대비 - Java 편

GC에서 사용하는 알고리즘을 설명해주세요. Java는 어떤 알고리즘을 사용하나요? ⭐️⭐️⭐️

GC 알고리즘

해결된 질문

31

Cola

작성한 질문수 39

1

Java에서 Mark and Sweep 말고도 다른 알고리즘을 조합해서 사용한다고 하는데요.

이렇게 Mark and Sweep만 키워드로 가져가도 괜찮을까요??

java 객체지향 computer-science

답변 2

1

JSCODE 제이온

안녕하세요, Cola님!

Mark and Sweep을 핵심 키워드로 가져가시는 건 충분히 괜찮습니다. Mark는 모든 GC 알고리즘의 공통 출발점이라, 어느 컬렉터를 쓰더라도 "GC Root에서 시작해 reachable 객체를 마킹한다"는 점은 동일하기 때문이에요.

 

다만 면접 답변을 더 풍성하게 가져가시려면, Mark and Sweep 외에 함께 알아두시면 좋은 알고리즘 두 가지가 있습니다.

  • Mark and Compact: 마킹 후 살아남은 객체를 한쪽으로 모아 정리 → Mark and Sweep의 단편화 문제를 해결, Old Generation에서 사용

  • Copying: 살아남은 객체를 다른 영역으로 복사 → Young Generation의 Eden Survivor 사이 이동에 사용

 

전체 구조로 정리하면 이렇습니다.

[GC의 큰 틀]
  └ Mark and Sweep (마킹 → 정리)

[영역별 정리 방식]
  ├ Young Generation : Copying
  └ Old Generation   : Mark and Sweep / Mark and Compact

 

면접에서 "GC 동작 원리"가 메인 질문으로 나오면 Mark and Sweep을 출발점으로 답변하시고, 후속 질문이 들어올 때 위 두 알고리즘으로 확장하시면 됩니다!

1

Cola

감사합니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. Cola님!

Java의 가비지 컬렉션(GC)은 Mark and Sweep 외에도 여러 가지 알고리즘을 조합해서 사용합니다. Mark and Sweep은 가장 기본적인 GC 방식 중 하나로, 객체를 마크하고 쓸모없는 객체를 수거하는 방식입니다.

하지만 현대적인 JVM에서는 다양한 GC 알고리즘이 존재합니다. 예를 들어, 젠코브리터나 CMS(Concurrent Mark-Sweep), G1(Garbage-First) 등이 있으며, 각 알고리즘은 성능 최적화와 목적에 따라 요소를 다르게 조합해서 사용합니다. 그러므로 면접이나 테스트에서 “Mark and Sweep”만을 언급하기보다는, 여러 GC 알고리즘을 이해하고 그 특징과 사용 사례를 알고 있는 것이 더욱 유리할 수 있습니다.

관련하여 실행과정 질문입니다. 질문을 참고하시면, Java의 실행 및 컴파일 과정을 이해하는 데 도움이 될 것입니다. 이를 통해 Java 내부에서 어떻게 가비지 컬렉션이 수행되는지 더 잘 이해할 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

MySql

0

9

1

강사님.. 하단 URL에 있었던 코드들 다운 받거나 공유 부탁 드립니다..

0

13

2

섹션3. 11 회원객체 다이어그램

0

15

1

팬텀리드 해결 예시 질문

0

13

0

OCP, DIP과 @Qualifier 어노테이션에 대해서 질문합니다.

0

19

1

노션 접근권

0

19

1

@Version 어노테이션이 붙은 필드는 낙관적 락이든 비관적 락이든 업데이트가 됩니다.

0

19

1

형 이번에 낸 책이랑 강의 내용에 차이가 있어?

1

36

1

형 나 몰래 책내면 모를 줄 알고?

1

30

1

OrderServiceTest 상문주문 테스트 시 update 쿼리 문의

0

21

1

멀티스레드

1

22

2

N+1 관련해서 질문있습니다.

0

33

3

성능 오버헤드

1

28

2

다음 강의는 언제 올려주시는지요?

0

37

2

하단 파일이 열리지 않습니다

0

35

1

ssh-keygen -t rsa -P "" 등 ssh 암호화? 는 하둡에서 필수인가요?

0

27

2

강의 중복 확인 요청

0

26

1

volatile에 대해 질문 있습니다.

2

37

2

Mark and Sweep

1

35

1

20년 4,5회 13번

0

27

2

용어 질문

1

25

1

호출횟수 질문입니다.

1

37

2

실행과정 질문입니다.

2

37

1

코딩 테스트 All-in-One(Java)' 강의 노션 교재 권한문의

0

28

1