F-Lab
🚀
깊이 있는 개발자 커뮤니티, 데브클럽에 함께 하세요

자바 기술 면접 대비하기 - 2편 (고급편)

writer_thumbnail

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에 대해 알아보기

 

ⓒ F-Lab & Company

이 컨텐츠는 F-Lab의 고유 자산으로 상업적인 목적의 복사 및 배포를 금합니다.

조회수

멘토링 코스 선택하기

  • 코스 이미지
    Java Backend

    아키텍처 설계와 대용량 트래픽 처리 능력을 깊이 있게 기르는 백앤드 개발자 성장 과정

  • 코스 이미지
    Node.js Backend

    아키텍처 설계와 대용량 트래픽 처리 능력을 깊이 있게 기르는 백앤드 개발자 성장 과정

  • 코스 이미지
    Python Backend

    대규모 서비스를 지탱할 수 있는 대체 불가능한 백엔드, 데이터 엔지니어, ML엔지니어의 길을 탐구하는 성장 과정

  • 코스 이미지
    Frontend

    기술과 브라우저를 Deep-Dive 하며 성능과 아키텍처, UX에 능한 개발자로 성장하는 과정

  • 코스 이미지
    iOS

    언어와 프레임워크, 모바일 환경에 대한 탄탄한 이해도를 갖추는 iOS 개발자 성장 과정

  • 코스 이미지
    Android

    아키텍처 설계 능력과 성능 튜닝 능력을 향상시키는 안드로이드 Deep-Dive 과정

  • 코스 이미지
    Flutter

    네이티브와 의존성 관리까지 깊이 있는 크로스 플랫폼 개발자로 성장하는 과정

  • 코스 이미지
    React Native

    네이티브와 의존성 관리까지 깊이 있는 크로스 플랫폼 개발자로 성장하는 과정

  • 코스 이미지
    Devops

    대규모 서비스를 지탱할 수 있는 데브옵스 엔지니어로 성장하는 과정

  • 코스 이미지
    ML Engineering

    머신러닝과 엔지니어링 자체에 대한 탄탄한 이해도를 갖추는 머신러닝 엔지니어 성장 과정

  • 코스 이미지
    Data Engineering

    확장성 있는 데이터 처리 및 수급이 가능하도록 시스템을 설계 하고 운영할 수 있는 능력을 갖추는 데이터 엔지니어 성장 과정

  • 코스 이미지
    Game Server

    대규모 라이브 게임을 운영할 수 있는 처리 능력과 아키텍처 설계 능력을 갖추는 게임 서버 개발자 성장 과정

  • 코스 이미지
    Game Client

    대규모 라이브 게임 그래픽 처리 성능과 게임 자체 성능을 높힐 수 있는 능력을 갖추는 게임 클라이언트 개발자 성장 과정

F-Lab
소개채용멘토 지원
facebook
linkedIn
youtube
instagram
logo
(주)에프랩앤컴퍼니 | 사업자등록번호 : 534-85-01979 | 대표자명 : 박중수 | 전화번호 : 1600-8776 | 제휴 문의 : info@f-lab.kr | 주소 : 서울특별시 강남구 테헤란로63길 12, 438호 | copyright © F-Lab & Company 2024