스프링 입문을 위한 자바 객체 지향의 원리와 이해 리뷰(1) (1~2장)

Bryan Lee 2022. 4. 26. 15:39

이 책을 선택한 이유

- F-lab이라는 기관을 통해서 멘토링을 받았었는데, 

  그 커리큘럼에 이 책이 있어서 멘토링 기간동안에 읽었었고,

  나중에 복습 차원에서 한 번 다시 읽었다.  

 

배운 점

 

- 기계어-어셈블리어-C언어-C++-Java로 발전해온 프로그래밍 언어의 역사에 대해서 알게 되었다.

  특히, From 문제 To 해결의 관점에서

  기존의 언어에 어떤 문제가 있었고, 다음의 언어가 그것을 어떻게 해결했는지에 초점을 맞춰서 이해할 수 있었다. 

 

- Java 언어의 가장 큰 특징은 Write Once Run Anywhere이다.

  이것은 JVM에 의해서 달성된다. 

 

- 스프링 프레임워크는 객체지향(OOP) 프레임워크이다. 

   따라서 객체지향을 올바르고 제대로 이해해야 스프링 프레임워크를 제대로 이해할 수 있다. 

 

- JDK는 Java Development Kit

  JRE는 Java Runtime Environment

  JVM은 Java Virtual Machine  

 

- 메모리 영역은 T 메모리 구조라고 일컫고, 스태틱, 스택, 힙 영역으로 구성된다.

  (실제로는 PC Register, Native Method Stack도 포함되지만, 책에서는 생략하였습니다) 

 

- 프로그램이 실행될 때, 우선 JRE는 프로그램 안에 main() 메서드가 있는지 확인한다

-> main() 메서드가 확인되면 JRE는 JVM에 전원을 부팅한다  

-> 부팅된 JVM은 목적 파일을 받아 그 목적 파일을 실행한다  

-> 또한, JVM은 전처리 과정을 하는데, 

    바로 프로그램이 반드시 포함해야 하는 java.lang 패키지를 T 메모리의 스태틱 영역에 가져다 놓는다  

 

- main() 메서드는 프로그램의 시작점이기도 하고, 끝이기도 합니다. 

  main() 메서드가 끝나면 JRE는 JVM을 종료하고 JRE 자체도 운영체제 상의 메모리에서 사라진다. 

 

- 스태틱 영역은 클래스 멤버 변수를, 스택 영역은 지역 변수를, 힙 영역은 객체 멤버 변수를 관리한다. 

 

- 멀티 스레드의 T 메모리 모델은 스택 영역을 스레드 개수만큼 분할해서 쓰는 것이다. 

  멀티 프로세스는 다수의 데이터 저장 영역, 즉 다수의 T 메모리를 갖는 구조이다.  

 

- 멀티 스레드는 스택 영역은 각 스레드마다 독립되어 있지만, 스태틱 영역과 힙 영역은 공유한다. 

 

- 멀티 스레드에서 쓰기 가능한 전역 변수를 사용하면 스레드 안전성이 깨질 수 있다.