자바 기술 면접 대비하기 - 2편 (고급편)
F-Lab : 상위 1% 개발자들의 멘토링
안녕하세요! F-Lab의 대표멘토 Fitz라고 합니다.
IT서비스 기업과 빅테크 기업으로 취업/이직 준비를 하시는 분들을 위해 깊게까지 물어보는 기술면접을 대비하실 수 있도록 2편을 준비해보았습니다! 🔥
2편에서는 취업/이직을 준비하는 분들뿐 아니라 이미 테크 기업에 재직중인 현직자분들도 보실만한 내용을 추가해두었습니다. 토글로 접혀있어 적어보일 수 있지만, 펼쳐보시면 여러 키워드들을 얻으실 수 있으실겁니다. 💪
많은 분들께 도움이 되길 바랍니다!
GC란 무엇이고, 왜 써야할까요?
꼬리질문
개발자가 메모리에 대해 신경을 덜 쓸 수 있어서 편해지는데, 그에 따른 단점은 없을까요?
키워드
성능
Stop the world
개발자가 GC 튜닝을 하는 궁극적인 목표는 무엇일까요?
G1GC부터는 GC튜닝에 크게 손이 가진 않는데, G1GC는 어떻게 만들었길래 개발자가 튜닝을 이전보다 덜 해도 되는걸까요?
리전으로 구성된 구조가 왜 튜닝의 수고를 덜어주는걸까요?
잘 운영하고 있던 어플리케이션이 갑자기 Out of Memory Error(OOM)
를 내며 프로세스가 종료되었습니다. 어떻게 대처해볼 수 있을까요?
꼬리질문
OOM의 원인은 어떻게 파악해볼 수 있을까요?
OOM의 원인을 로그만 가지고 파악하는게 가능할까요?
힙 덤프란 무엇인가요?
힙 덤프는 어떻게 생성할 수 있을까요?
첫 질문으로 돌아가자면 운영중인 어플리케이션이 갑작스럽게 종료된건데, 어플리케이션이 종료된 상태에서 힙덤프를 생성하는게 가능한가요?
서비스를 운영하면 모니터링을 해야할 일이 많은데 어떤 툴들을 사용해볼 수 있을까요?
꼬리질문
Pinpoint
, Newrelic
, Datadog
같은 APM 툴들은 한 요청에 대한 매우 세밀한 트래킹을 제공합니다. 어떤 원리로 구현한걸까요?
APM툴을 쓸때 JVM의 javaagent
라는 옵션을 사용하는데 이것은 무엇일까요?
키워드
Java Bytecode Instrumentation
꼬리질문
Java Bytecode Instrumentaion이란 무엇일까요?
이 기술에서 자바의 바이트코드를 순회하기 위해 어떤 디자인 패턴을 사용할까요?
키워드
visitor pattern
JMX
란 무엇일까요?
JMX를 활용하여 모니터링 할 수 있는 도구는 무엇무엇이 있을까요?
키워드
jconsole
jvisualvm
java mission control
java flight recoder
etc...
JIT 컴파일러란 무엇이고, 이것은 왜 필요할까요?
키워드
인터프리터
컴파일러
꼬리질문
- AOT 컴파일은 무엇일까요?
C1 컴파일러와 C2 컴파일러는 무엇일까요?
- 이 2개는 역할이 어떻게 다른가요?
컴파일 과정에서 컴파일러가 최적화해주는 것들은 무엇무엇이 있을까요?
검색 키워드
JVM 컴파일러 최적화
hotspot compiler optimization
내용
+연산을 StringBuilder로 변환해주기
반복문 펼쳐주기
탈출분석
인라이닝
Etc...
힙에 메모리를 할당하는 과정에서 어떤 일들이 벌어지나요?
꼬리질문
TLAB이란 무엇일까요?
키워드
Thread Local Allocation Buffer
이것은 어떤 문제를 해결하기 위해 만들어진 것일까요?
여기까지 준비해봤습니다. 긴 질문 보느라 고생 많으셨습니다.
감사합니다!
사수가 없어 성장하기 힘드신가요?
F-Lab에서 빅테크 기업 타이틀과 실력을 겸비한 멘토님들께 실력 향상을 위한 멘토링을 받을 수 있습니다.
개발 경험이 있는 취준생이거나 7년 이하 경력 개발자라면 충분히 멘토링을 받아 뛰어난 개발자로 성장하실 수 있습니다.
이 컨텐츠는 F-Lab의 고유 자산으로 상업적인 목적의 복사 및 배포를 금합니다.