[Spring 스프링 기본] 1. 객체지향설계와 스프링

2023. 10. 22. 22:56·[ Development ]/[ Back-end ] Spring 기본

스프링 핵심 원리 - 기본편 (인프런 / 김영한 / 유료)

 

# 스프링

- 자바 (= 객체 지향 언어) 언어 기반의 프레임 워크

- 객체 지향 언어가 가진 강력한 특징을 살려내 좋은 객체 지향 프로그램을 개발할 수 있도록 하는 프레임워크

 

# 객체 지향 요소

- 추상화

- 캡슐화

- 상속

- 다형성 : 인터페이스 / 구현 클래스 -> 클라이언트 변경 없이 서버 구현 기능을 유연하게 변경할 수 있다. 

-> 제어의 역전(IoC), 의존관계 주입(DI)은 다형성을 활용해서 역할과 구현을 편리하게 할 수 있도록 지원한다.

-> 객체 지향의 핵심은 다형성이나 다형성 만으로는 구현 객체를 변경할 때 클라이언트 코드도 함께 변경되어 OCP, DIP를 지킬 수 없다.

 

# 좋은 객체 지향 프로그래밍의 원칙

• SRP : 단일 책임 원칙(single responsibility principle) 

- 한 클래스에는 하나의 책임만 가져야 한다
• OCP : 개방-폐쇄 원칙 (Open/closed principle)

- 소프트웨어 요소는 확장에 열려있으나 변경에는 닫혀있어야 한다
• LSP : 리스코프 치환 원칙 (Liskov substitution principle)

- 프로그램의 객체는 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다
• ISP : 인터페이스 분리 원칙 (Interface segregation principle)

- 하나의 범용 인터페이스 보다 특정 클라이언트를 위한 여러 인터페이스가 낫다

• DIP : 의존관계 역전 원칙 (Dependency inversion principle)

- 구현 클래스가 아닌 인터페이스에 의존해야한다

- 클라이언트가 구현체에 의존하면 변경이 아주 어려워진다

 

 

728x90

'[ Development ] > [ Back-end ] Spring 기본' 카테고리의 다른 글

[Spring 스프링 기본] 스프링 컨테이너와 스프링 빈  (1) 2023.11.21
[Spring 스프링 기본] 객체 지향 원리 적용  (1) 2023.11.14
[Spring 스프링 기본] 2. 핵심 원리 이해 1 - 예제 만들기  (0) 2023.11.07
[Spring 스프링 입문] JPA, AOP  (2) 2023.10.17
[Spring 스프링 입문] 6. 스프링 DB 접근 기술 (1)  (3) 2023.10.10
[Spring 스프링] 5. 회원 관리 예제 - 웹 MVC 개발  (1) 2023.10.10
[Spring 스프링] 4. 스프링 빈과 의존관계  (1) 2023.10.10
'[ Development ]/[ Back-end ] Spring 기본' 카테고리의 다른 글
  • [Spring 스프링 기본] 객체 지향 원리 적용
  • [Spring 스프링 기본] 2. 핵심 원리 이해 1 - 예제 만들기
  • [Spring 스프링 입문] JPA, AOP
  • [Spring 스프링 입문] 6. 스프링 DB 접근 기술 (1)
dev charlotte
dev charlotte
주 - 컴퓨터공학 / 복수 - 산업 보안
    250x250
  • dev charlotte
    int main() {
    dev charlotte
  • 전체
    오늘
    어제
    • 분류 전체보기
      • [ Laboratory ]
        • Paper review
        • Advanced Operating System
        • System Software & Storage
        • Lab etc
      • [ Computer Science ]
        • Algorithm_C++
        • Operating System
        • Information Retrieval
        • Database_sql
        • SW Engineering
        • Computer Network
        • JavaScript
        • Python
        • Data Structure
        • CS study
        • Distributed systems
      • [ Computer Security ]
        • Convergence Security
        • Web Security
        • PIMS
        • Network Security
        • Digital Finance
      • [ Artificial Intelligence ]
        • Trend
        • Seminar
      • [ 미래, 같이, LG ]
      • [ Development ]
        • [ Front-end ]
        • [ Back-end ] Spring 기본
        • [ Back-end ] Node.js
      • etc
        • 현대오토에버 스마트 모빌리티 공학 체험 교육
      • It's me
  • 블로그 메뉴

    • 링크

      • GitHub
    • 공지사항

    • 인기 글

    • 태그

      백준
      프로그래밍 언어론
      hotstorage
      스마트모빌리티공학체험교육
      현대오토에버
      오블완
      현대오토에버 스마트모빌리티
      ssafy 13기
      코딩 교육
      SQL
      SSAFY
      코딩 인강
      대학생 대외활동
      프로그래머스 입문
      소프트웨어 공학
      공대생 대외활동
      프로그래머스
      현대오토에버 스마트 모빌리티
      프로그래머스 c++
      티스토리챌린지
      MySQL
      자바스크립트
      싸피 13기
      싸피
      데이터베이스
      spdk
      ACM
      프로그래머스 코테
      비전공자 코딩
      코드잇
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.4
    dev charlotte
    [Spring 스프링 기본] 1. 객체지향설계와 스프링
    상단으로

    티스토리툴바