[정보처리기사 실기] 객체지향설계 SOLID 5가지 원칙
안뇽하세여 에이블러 여러분들~
벌써 주말이 끝나가고 내일 월요일이네요 ㅠㅠ
다음주에는 딥러닝심화가 들어가죠?!
딥러닝기초부분 후딱 복습하고 정처기 이론도 익혀야겠어요...
바쁘다바뻐
오늘부터는 정처기 시험장 들어가기전에 달달달 외울 개념들만 포스팅하려구요
SOLID는 영어로도 외우는게 좋을거같아유
SOLID는 객체 지향 프로그래밍과 디자인에서 유지보수와 확장이 용이한 소프트웨어 시스템을 구축하기 위한 다섯 가지 기본 원칙을 나타냅니다. 이 원칙들은 로버트 C. 마틴(Robert C. Martin)에 의해 제안되었으며, 개발자가 더 나은 소프트웨어 디자인을 할 수 있도록 돕습니다.
1. 단일 책임 원칙 (Single Responsibility Principle, SRP)
단일 책임 원칙은 클래스가 하나의 책임만 가져야 한다고 주장합니다. 즉, 클래스를 변경해야 하는 이유는 단 하나여야 합니다. 이 원칙을 따르면, 시스템의 다른 부분에 영향을 주지 않고 해당 클래스를 수정할 수 있으므로 유지보수가 용이해집니다.
2. 개방-폐쇄 원칙 (Open/Closed Principle, OCP)
개방-폐쇄 원칙은 소프트웨어 엔티티(클래스, 모듈, 함수 등)는 확장에 대해 열려 있어야 하지만, 수정에 대해서는 닫혀 있어야 한다는 원칙입니다. 즉, 기존의 코드를 변경하지 않고도 시스템의 기능을 확장할 수 있어야 합니다. 이를 통해 기능 추가나 변경이 필요할 때 기존 코드의 안정성을 해치지 않고 작업할 수 있습니다.
3. 리스코프 치환 원칙 (Liskov Substitution Principle, LSP)
리스코프 치환 원칙은 하위 타입은 항상 그들의 기본 타입으로 교체할 수 있어야 한다는 원칙입니다. 이 원칙에 따르면, 하위 클래스는 상위 클래스의 행위를 올바르게 지원해야 합니다. 이는 상속 구조가 있는 프로그램에서, 하위 클래스를 상위 클래스의 객체로 대체해도 프로그램의 기능이 올바르게 동작해야 함을 의미합니다.
4. 인터페이스 분리 원칙 (Interface Segregation Principle, ISP)
인터페이스 분리 원칙은 클라이언트가 사용하지 않는 메서드에 의존하도록 강제해서는 안 된다는 원칙입니다. 즉, 매우 큰 인터페이스보다는 구체적인 여러 개의 인터페이스가 더 낫다는 것을 의미합니다. 이 원칙을 적용하면, 각 인터페이스가 그 인터페이스를 사용하는 특정 클라이언트의 요구에 맞춰져 있기 때문에 시스템의 유연성이 증가합니다.
5. 의존관계 역전 원칙 (Dependency Inversion Principle, DIP)
의존관계 역전 원칙은 고수준 모듈은 저수준 모듈에 의존해서는 안 되고, 두 모듈 모두 추상화에 의존해야 한다는 원칙입니다. 또한, 추상화는 세부 사항에 의존해서는 안 되며, 세부 사항은 추상화에 의존해야 합니다. 이 원칙은 유지보수와 재사용을 용이하게 하며, 시스템의 결합도를 낮추어 줍니다.
SOLID 원칙은 객체 지향 설계의 효과적인 지침으로, 소프트웨어를 유연하고, 쉽게 확장하며, 유지보수하기 쉽게 만드는 데 도움을 줍니다. 이 원칙들을 잘 활용하면, 더욱 견고하고 오류가 적은 소프트웨어 개발이 가능해집니다.
'KT에이블스쿨 5기 > 정보처리기사' 카테고리의 다른 글
[정보처리기사 실기] 정규화와 이상현상 (도부이결다조/삽살개) (1) | 2024.04.14 |
---|---|
[정보처리기사 실기] GOF(Gang of Four) 디자인패턴 (0) | 2024.04.14 |
[정보처리기사 실기] redo와 undo +은행거래예시 (0) | 2024.04.14 |
[정보처리기사 실기] CRUD - Create(생성), Read(읽기), Update(갱신), Delete(삭제) (0) | 2024.04.14 |
[정보처리기사 실기] 트랜잭션(Transaction)의 4가지 특성과 5가지 논리적상태 +은행거래예시 (0) | 2024.04.14 |