-
[TIL] 6주차 4일 팀 프로젝트 끝, 객체 지향 특강 ( SOLID 원칙 )개발일지/스파르타 코딩클럽 부트캠프 2024. 5. 23. 21:16
오늘 한 것
- 팀 프로젝트 마무리
- 팀 프로젝트 발표
- 객체지향 특강
오늘 배운 것
객체지향 특강 중요한 것
일단 객체지향에서 가장 중요한 것은
의존도(결합도)를 낮추고 응집도를 높여야한다
그걸 위해서 오늘 배운 건
SOLID 원칙
SOLID 원칙이란?
Single Responsibility Principle 단일책임원칙
Open Closed PrinCiple 개방폐쇄원칙
Liskov Substitution 리스포크 치환원칙
Interface Segregation Principle 인터페이스 분리 원칙
Dependency Inversion PrinCiple 의존 역전 원칙
이렇게 다섯가지의 앞 글자를 따서 (어거지로) 만든 원칙인데
각 원칙들을 가볍게 살펴보자
Single Responsibility Principle 단일책임원칙
먼저 단일 책임 원칙은 말 그대로의 의미를 가지고 있다.
하나의 클래스는 하나의 기능만 가져라. 라는 의미인데
물론 하나의 메서드만 가져라 그런 의미가 아니고
여러가지의 의미를 포함하는 기능을 갖지 말라는 뜻이다.
Open Closed PrinCiple 개방폐쇄원칙
다음은 개방폐쇄원칙이다. 개방폐쇄원칙도 말과 비슷하다.
확장에는 열려있고, 수정에는 닫혀있어야 한다는 뜻인데
원본은 그대로 놔두고 확장해야 한다는 말이다.
여기서 말하는 원본은 부모클래스이다.
Liskov Substitution 리스포크 치환원칙
다음은 리스포크 치환원칙인데 이건 이름으로는 감이 오지 않을거다.
쉽게 말해서
서브(자식)타입은 기반(부모)타입으로 교체할 수 있어야 한다는 건데.
이게 무슨 말이냐면 ...... 부모 말 잘 들으라는 뜻이라고 한다.
override할 때 base를 삭제하거나 원본을 수정하는 일이 없도록 하는 것이다.
Interface Segregation Principle 인터페이스 단일책임
이건 첫 번째 원칙인 단일책임원칙이랑 같은 내용인데
SPR이 클래스 단일책임이라면 ISP는 인터페이스 단일책임의 뜻이다.
인터페이스 하나도 하나의 기능만 가지라는 의미.
여기서 Class와 Interface를 언제 사용해야할지도 간략히 알아보면
Class : is - a
Interface : has - a
클래스는 ~ 이다
인터페이스는 ~를 가지고 있다.
의 느낌인데. 말 그대로 클래스는 하나의 기능 자체를 의미하고
인터페이스는 어떠한 작은 기능을 가지고 있다면~ 의 느낌이다.
Dependency Inversion Principle 의존 역전 원칙
마지막은 의존역전원칙인데
이것도 설명은 쉽게할 수 있다.
Class를 참조할 때, 파생 클래스에서 직접적으로 참조하지말고
부모 클래스를 참조하라는 말이다.
이렇게 SOLID원칙을 다 알아봤는데
이걸 지키는 실습까지 해봤는데.....
이 모든걸 지키면서 프로그래밍을 하기란 정말 어려운 것 같다.
갈 길이 멀다..ㅠ
'개발일지 > 스파르타 코딩클럽 부트캠프' 카테고리의 다른 글
[TIL] 7주차 1일 개인 프로젝트 주차 ( 조명, 카메라 절두체, Coroutine) (0) 2024.05.27 [TIL] 6주차 5일 유니티 숙련주차 시작, 개인 프로젝트 ( RayCast, SkyBox, ForceMode) (0) 2024.05.24 [TIL] 6주차 3일 팀 프로젝트 마무리 단계, 랭킹 시스템 (2) 2024.05.22 [TIL] 6주차 2일 팀 프로젝트 여전히 진행중 (2) 2024.05.21 [TIL] 6주차 1일 팀 프로젝트 진행중 랭킹 시스템 구현 과정 (0) 2024.05.20