[Book리뷰] 스프링 입문을 위한 자바 객체 지향의 원리와 이해

devdo·2022년 5월 26일
0

Book리뷰

목록 보기
8/8

정말 알기 쉽게 정리가 잘 된 책이다. 책을 다 읽은 후에 인상은 인 한문장으로 압축이 된다.

자바 + 스프링의 절묘한 조합을 잘 보여준 책!

복잡한 정보를 객체지향설계라는 개념으로 깔끔하게 연결/정리해준 책이라 생각된다.
그 어려운 일은 이 책이 해낸다.!

자바의 특성부터 시작해, 객체지향설계, 스프링 프레임워크까지의 긴 여정을 공부해야 할 때 이 책은 초보자 입장에서 가장 잘 설명해준 것 같다.

정말 잘 정리가 되었다고 생각하는 인상깊은 부분이
1) 자바가 실행되는 과정에서 JVM이 자바 program에 메모리를 할당해주는 과정과
2) 객체지향의 특징을 4가지로 쉽게 암기할 수 있게 한 부분이다.

관련된 내용을 정리하면 아래와 같다.


책 정리

자바의 특성은 "Write Once Run Anywhere"

1) T 메모리 구조 (스태틱(Static)=method 영역, 스택(Stack) 영역, 힙(Heap) 영역)

  • 멀티 스레드 vs 멀티 프로세스

  • main() 메서드가 실행되기 전 JVM에서 수행하는 전처리 작업으로 T메모리의 스태틱 영역에 배치

  • main() 메서드가 실행되기 전 JVM에서 수행하는 전처리 작업으로 T메모리의 스태틱 영역에 배치

  • 지역 변수는 스택 영역에서 일생을 보낸다. 그것도 스택 프레임 안에서 일생을 보내며 스택 프레임이 사라지면 함께 사라진다.(블록 스택 프레임)

  • 클래스 멤버 변수는 스태틱 영역에서 일생을 보낸다. 스태틱 영역에 한번 자리 잡으면 JVM이 종료될 때까지 고정된(static) 상태로 그 자리를 지킨다.

  • 객체 멤버 변수는 힙에서 일생을 보낸다. 객체 멤버 변수들은 객체와 함께 가비지 컬렉터라고 하는 힙 메모리 회수기에 의해 일생을 마치게 된다.


2) 객체 지향의 4대 특성 : "캡! 상추다"

  • 슐화 = 정보은닉

  • 속 = 재사용과 확장

  • 상화 = 모델링 = 자바의 class 키워드 (객체 지향의 추상화는 곧 모델이다)

  • 형성 = 오버라이딩(재정의), 오버로딩(중복정의)

사실상 상속과 다형성은 같이 묶어야 되지 않을까 싶다.

3) SOLID 원칙

https://velog.io/@mooh2jj/객체지향-설계-5원칙-SOLID를-파훼쳐보자

  • SRP(Single Responsibility Principle): 단일 책임 원칙
  • OCP(Open Closed Principle): 개방 폐쇄 원칙
  • LSP(Liskov Substitution Principle): 리스코프 치환 원칙
  • ISP(Interface Segregation Principle): 인터페이스 분리 원칙
  • DIP(Dependency Inversion Principle): 의존 역전 원칙

그 밖에 잘 몰랐던 걸 정리해줘서 좋았던 부분

  • 생성자 : 개발자가 아무런 생성자도 만들지 않으면 자바는 인자가 없는 기본 생성자를 자동으로 만들어준다. 인자가 있는 생성자를 하나라도 만든다면 자바는 기본 생성자를 만들어 주지 않는다.

  • 참조 변수의 복사 : 기본 자료형 변수는 저장하고 있는 값을 그 값 자체로 해석하는 반면, 객체 참조 변수는 저장하고 있는 값을 주소로 해석

  • super 키워드 : 바로 위 상위 클래스의 인스턴스를 지칭하는 키워드

  • this 키워드 : 객체가 자신을 지칭할 때 쓰는 키워드

  • 디자인 패턴 정리한 부분
    https://velog.io/@mooh2jj/스프링을-위한-디자인패턴-정리

  • SOA(Service Oriented Architecture) 사상 - 개발자 입장에서의 개발이 아니라 실제 현실의 업무를 기준으로 개발하자는 사상

  • 스프링 삼격형(IoC/DI, AOP, PSA)

  • 스프링 의존성 주입 방식(생성자, setter, 필드방식)

  • PSA(Portable Service Abstraction) - 일관성 있는 서비스 추상화


서점에서 가서 이렇게 잘 정리가 된 책을 읽으면 지금까지 파편화된 지식들이 연결될 수가 있어 참 기분이 좋다. 스프링 입문으로 하는 책으로 이 책은 정말 보물같은 책이다.

스프링 입문자라면 또는 스프링 지식을 좀더 정리가 필요하다고 생각하는 분이라면 사서 봐도 돈이 아깝지 않은 책이다.

아직 AOP 부분은 내가 사용할 일이 없어서 계속 남겨두고 있는 김영한의 AOP 강의를 들을 때 다시 이책을 읽어볼 것 같다.


책 <스프링 입문을 위한 자바 객체 지향의 원리와 이해> 김종민

profile
배운 것을 기록합니다.

0개의 댓글