Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

개발새발

드디어 스프링1 #SOLID 본문

스프링

드디어 스프링1 #SOLID

개발하는후추 2022. 8. 3. 22:17

객체 지향 설계 원칙이란?

  • 수많은 사람들이 고민하고 시행착오를 겪으면서 만든 원칙
  • 좀 더 유지보수하기 쉽고, 유연하고, 확장이 쉬운 소프트웨어를 만들 수 있다
  • 코드 베이스뿐만 아니라 아키텍쳐 설계에 이르기까지 다양하게 적용할 수 있다

객체 지향 설계과정
1. 요구사항을 찾고 세분화한다
2. 기능을 구현하는데 필요한 데이터를 객체에 추가한다
3. 해당 데이터를 이용하는 기능을 구현
4. 객체 간에 어떻게 메소드 호출을 주고받을지 결정

SOLID

  • SRP, OCP, LSP, ISP, DIP의 첫 글자를 딴것이 SOLID

SRP(Single Responsibility Principle, 단일 책임의 원칙)

  • 클래스가 제공하는 기능들은 하나의 책임을 수행하는데 집중해야 한다
    잘지키면
    : 응집력이 높아지고, 결합도는 낮아진다
    : 코드 가독성이 좋아짐
    : 테스트 범위도 작아지고, 유지보수가 편해진다

OCP(Open Close Principle, 개방폐쇄의 원칙)

  • 확장에는 열려있고(open), 변경에는 닫혀 있어야 한다(close)
  • 변하는것과 변하지 않는것을 잘 구분하면 OCP를 지키는 용이
  • 인터페이스를 통해 느슨하게 의존

LSP(The Liskov Substitution Principle, 리스코브 치환의 원칙)

  • 하위클래스의 객체를 상위클래스의 참조 변수에서 대입해서 상의클래스의 역할을 수행하는데 문제가 없어야 한다

ISP(Interface Segregation Principle, 인터페이스 분리의 원칙)

  • 인터페이스의 단일 책임을 위한 원칙
  • 일반적인 하나의 인터페이스를 조금 더 구체적인 인터페이스로 쪼개는것이 낫다

DIP(Dependency Inversion Principle, 의존성 역전의 원칙)

  • 자주 변경되는 구체 클래스에 의존하지 않고, 추상화된 클래스에 의존하는것
  • 구체 클래스가 추상 클래스에 의존하므로 의존 관계가 역전된 형태

'스프링' 카테고리의 다른 글

#스프링 MVC 동작  (0) 2022.08.04
#스프링 MVC  (0) 2022.08.04
#DI #AOP # Ioc # PSA  (0) 2022.08.04
#서블릿  (0) 2022.08.04
#아키텍처 # 라이브러리 # 프레임워크  (0) 2022.08.04
Comments