일상/책 리뷰

객체지향의 사실과 오해

2023. 9. 18. 15:29
목차
  1. 역할,책임,협력관점에서 본 객체지향 - 조영호
  2. 서론
  3. 느낀점
  4. 외워야 할 것

역할,책임,협력관점에서 본 객체지향 - 조영호

서론

자바를 다시 공부중인데 깊게 파고들수록 참 어려운 언어라는 생각이 들어 여러 책들을 찾아보는 중에 읽게 되었습니다.

객체지향에 대해 어느정도 알고 있다고 생각하고 있지만, 막상 설명하려 하니 쉽지 않은듯하여 이 책을 읽고 공부하게 되었습니다.

느낀점

  1. 객체지향의 기본 개념이 역할, 책임, 협력이며 객체지향이란 시스템을 상호작용하는 자율적인 객체들의 공동체로 바라보고 객체를 이용해 시스템을 분할하는 방법임을 알게 되었음.(자율적인 객체란 상태(변수)와 행위(메서드)를 함께 지니며 스스로 자기 자신을 책임지는 객체를 의미함) 
  2. 객체는 다른 객체와 협력하기 위해 메시지를 전송하고, 메시지를 수신한 객체는 메시지를 처리하는 데 적합한 메서드를 자율적으로 선택한다.
  3. 왜 클래스 지향이 아니라 객체지향인지는 이해가 갔음. 클래스는 정적이기 때문에 요구사항을 보고 설계하는건 객체여야함. 객체를 보고 정적인 형태의 클래스를 작성하는게 순서상 맞다는 생각이 듬.(순서를 바꿨다간 실제 사용중에 문제를 느끼고 클래스를 수정할 확률이 올라갈 것 같음.)

외워야 할 것

객체지향 설계 원칙 : SOLID

  1. S : 단일 책임 원칙 : SRP : Single Responsibility Principle
    • 하나의 클래스는 단 하나의 책임만 가져야 한다.
    • 단일 책임 원칙을 지키지 않을 경우 한 책임의 변경에 의해 다른 책임과 관련된 코드에 영향이 갈 수 있다.
  2. O : 개방- 폐쇄 원칙 : OCP , Open/ Closed Principle
    • 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다.
    • 기능을 변경하거나 확장할 수 있으면서 기능을 사용하는 코드는 수정하지 않는다.
  3. L : 리스코프 치환 원칙 : LSP : Liskov Substitution Principle
    • 프로그램 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다.
    • 상위 타입의 객체를 하위 타입의 객체로 치환해도, 상위 타입을 사용하는 프로그램은 정상적으로 동작해야 한다.
  4. I : 인터페이스 분리 원칙 : ISP : Interface Segregation Principle
    • 범용 인터페이스 하나보다 클라이언트를 위한 여러 개의 인터페이스로 구성하는 것이 좋다.
    • 인터페이스는 인터페이스를 사용하는 클라이언트를 기준으로 분리해야 한다.
    • 클라이언트가 필요로 하는 인터페이스를 분리함으로써 각 클라이언트가 사용하지 않는 인터페이스에 변경이 있어도 영향을 받지 않도록 만들어야 한다
    • # 인터페이스란? : 객체의 서비스에 대해서 미리 약속된 부분
  5. D : 의존관계 역전 원칙 : DIP : Dependency Inversion Principle
    • 추상화에 의존해야지 구체화에 의존하면 안된다.
    • 고수준 모듈은 저수준 모듈의 구현에 의존해서는 안되고 저수준 모듈은 고수준 모듈에서 정의한 추상 타입에 의존해야 한다.

'일상 > 책 리뷰' 카테고리의 다른 글

함께 자라기 애자일로 가는 길 - 2  (0) 2023.08.09
함께 자라기 애자일로 가는 길 - 1  (1) 2023.08.02
대체 뭐가 문제야 - 리뷰 - 2  (2) 2023.07.19
대체 뭐가 문제야 - 리뷰 - 1  (0) 2023.07.10
  1. 역할,책임,협력관점에서 본 객체지향 - 조영호
  2. 서론
  3. 느낀점
  4. 외워야 할 것
'일상/책 리뷰' 카테고리의 다른 글
  • 함께 자라기 애자일로 가는 길 - 2
  • 함께 자라기 애자일로 가는 길 - 1
  • 대체 뭐가 문제야 - 리뷰 - 2
  • 대체 뭐가 문제야 - 리뷰 - 1
잘잔디
잘잔디
4학년이 되고 취업 준비를 위해 2023-01-01부터 공부한 내용을 정리한 블로그입니다.
잘잔디
MBCS 공부일지
잘잔디
전체
오늘
어제
  • 분류 전체보기 (217)
    • 파이썬 (28)
      • 파이썬 이론 (8)
      • NumPy (3)
      • Pandas (6)
      • 파이썬 시각화 (8)
      • 응용 (2)
    • Java (3)
    • Back (38)
      • DataBase이론 (12)
      • MySQL (2)
      • JSP (8)
      • JSTL (2)
      • Spring (0)
      • Django (8)
      • MongoDB (6)
      • FastAPI (0)
    • Front (8)
      • HTML (3)
      • CSS (2)
      • JS (1)
    • 회고록 (10)
    • 알고리즘 문제 풀이 (95)
      • 알고리즘 이론 공부 (14)
      • 프로그래머스 (69)
      • 백준 (12)
    • 머신러닝 (0)
    • 딥러닝 (0)
    • Git (3)
    • R 프로그래밍 (3)
    • 빅데이터 관리 (16)
      • 리눅스 (4)
      • Hadoop (12)
    • AWS (2)
    • 일상 (10)
      • 책 리뷰 (5)
      • TOEIC (2)
      • 자잘하게 공부한 것들 (2)
    • 사이버보안 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • backend
  • Database
  • 이중우선순위 큐
  • JS
  • db
  • OOP
  • git
  • 백준
  • playdata
  • 즐거웠다
  • 객체지향
  • 독산역
  • HTML
  • Encore
  • 골드
  • Java
  • CSS
  • web
  • JavaScript

최근 댓글

최근 글

hELLO · Designed By 정상우.
잘잔디
객체지향의 사실과 오해
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.