전공자 따라잡기

[프리온보딩 백엔드 챌린지 6월] OT & 1-1주차 후기

봄봄로그 2023. 6. 6. 15:03

6/5 원티드 프리온보딩 백엔드 챌린지가 시작됐다! 🎉

오티를 12시에 한다길래 도시락을 싸와 회사휴게실에서 참여했는데 휴게실에 노트북을 들고 오니 조금 이상했다,,,,하하

 

아무튼 앞으로 2주간 JAVA에 대하여 공부하고 남은 4주간 취업관련 피드백을 받는다는데, 오티를 듣고보니 취업 자료는 지원을 5개, 20개를 해야 가능하다는 것 같다...? 뭐 어차피 내가 이것에 참여한 목적은 이직준비보단 말그대로 자바의 기초❗❗❗❗❗때문이었으니 그건 상관없다.

 

💡1-1 오늘 배운 것

1-1 Java의 정의와 동작 방식
(Java, JRE, JDK, JVM, AOT, JIT, Java Bytecode, Code cache, ByteBuddy)

Java의 구성요소와 동작 방식
클래스 로더와 클래스 로딩
Java 바이트코드와 코드 캐시
바이트코드를 컴파일하는 AOT, JIT 컴파일러

 

흑흑

너무 어려워.... 필기하면서 들었는데 이해가 1도 안됐습니다.... 역시 더 공부가 필요하다🥹

 


  • java는 객체지향 언어다. 모두 알고 있는 사실이지만 제대로 사용하는 것이 중요하다.
  • Java 아키텍처
    • 개념적인 의미로 보았을 때 java 플랫폼 > jdk > jre > jvm 라고 볼 수 있다. 
    •  

https://www.softwaretestinghelp.com/java-components-java-platform-jdk/

  • JDK와 JRE가 조금 헷갈렸었는데, 실행만 하면 JRE, 개발은 JDK를 쓰는 것 같다.
  • JVM이 하는 일
    • 클래스 로딩, GC 등 메모리 관리, 스레드 관리, 예외 처리
    • 이번 1-1 강의에선 클래스로딩에 대해 주로 다뤘다.
  • jvm architecture
    • Class Loaders
    • Runtime Data Areas (jvm memory)
    • Execution Engine
    • JNI (Java Native Interface)
    • Native Libraries
  • Java의 동작방식
    • byte 로 이루어진 class file을 class loader system이 컴파일 시켜서 java파일로 만든다.
    • 클래스로더는 런타임에 바이트코드를 동적으로 메모리에 로딩한다.
    • jvm memory에서 메모리를 할당하고 정보와 영역을 저장한다.
    • jvm memory에 들어온 것을 컴파일 한다. (바이트 코드를 읽어 네이티브 코드로)
      • 인터프리터 : 메모리에 로드된 바이트코드를 한줄 씩 실행
      • jit compiler
      • GC
      • ✅이 부분은 더 공부해서 정리해야한다!
  • Java는 컴파일러인가 인터프리터인가?
    • 인터프리터, 컴파일 하이브리드 모델이지만 컴파일언어로 분류된다.
    • 왜? javac를 통해 .java파일을 .class 파일로 컴파일 하기 때문에
  • Java바이트코드와 코드캐시
  • Java 바이트코드를 컴파일하는 AOT, JIT 컴파일러
    • AOT : 바이트코드를 실행하기 전에 한번에 컴파일 하는 것
    • JIT : hot method를 찾아 컴파일한다? => 이 부분이 잘 이해가 안간다.