2023.12.26 모각코 1회차 결과

2023. 12. 27. 15:19·2023-24 동계 모각코
목차
  1. 스프링은 자바 언어 기반의 웹 프레임워크이고, 자바는 객체 지향 언어이다.그렇다면 좋은 객체 지향 프로그래밍이란 무엇일까?
  2. 객체 지향 프로그래밍이란 ??
  3. 객체 지향 프로그래밍(OOP)
  4. 객체 지향 프로그래밍의 특징
  5. 객체 지향 프로그래밍의 5가지 설계 원칙 (SOLID)
  6. 스프링이란 ??

 

스프링은 자바 언어 기반의 웹 프레임워크이고, 자바는 객체 지향 언어이다.그렇다면 좋은 객체 지향 프로그래밍이란 무엇일까?


 

 

객체 지향 프로그래밍이란 ??

 

객체 지향 프로그래밍(OOP)

  • 객체 지향 프로그래밍( Object Oriented Programming ) 은 컴퓨터 프로그래밍 패러다임 중 하나이다.
  • OOP는 컴퓨터 프로그램을 명렁어의 시각에서 벗어나 객체들의 모임으로 파악하고자 한다.
  • OOP는 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다.

 


 

 

객체 지향 프로그래밍의 특징

  • 객체 지향 프로그래밍은 추상화, 상속, 다형성 등이 있으며 다중 상속 등의 특징 또한 존재한다.
  • 위에서도 언급한 유연하고 변경이 용이한 좋은 객체 지향 프로그래밍을 하기 위해서는 다형성이 매우 중요하다.

 


 

 

객체 지향 프로그래밍의 5가지 설계 원칙 (SOLID)

  1. SRP: 단일 책임 원칙(single responsibility principle)
    • 한 클래스는 하나의 책임을 가진다.
  2. OCP: 개방-폐쇄 원칙 (Open/closed principle)
    • 확장에는 열려 있으나 변경에는 닫혀 있어야 한다.
    • 기능을 추가하려면 소스코드의 수정이 불가피하다. 다형성을 이용하더라도 클라이언트 코드를 변경해야 한다. 이는 OCP 원칙에 위배되는 것이다. 이것을 해결하기 위해서는 객체를 생성하고, 연관관계를 맺어주는 별도의 조립, 설정자가 필요하다.
  3. LSP: 리스코프 치환 원칙 (Liskov substitution principle)
    • 프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다.
    • 다형성에서 하위 클래스는 인터페이스 규약을 다 지켜야 한다는 것, 다형성을 지원하기 위 한 원칙, 인터페이스를 구현한 구현체는 믿고 사용하려면, 이 원칙이 필요하다.
  4. ISP: 인터페이스 분리 원칙 (Interface segregation principle)
    • 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.
  5. DIP: 의존관계 역전 원칙 (Dependency inversion principle)
    1. 프로그래머는 “추상화에 의존해야지, 구체화에 의존하면 안된다.” 구현 클래스에 의존하지 말고, 인터페이스에 의존하라는 뜻이다.

(참고 - 위키백과)

 


스프링이란 ??

 

스프링의 정의

  • 스프링은 엔터프라이즈용 Java 애플리케이션 개발을 편하게 할 수 있게 해주는 오픈소스 경량급 애플리케이션 프레임워크이다.
  • 다른 기술들과 다르게 개발 초기에 기본적인 설정과 적용시킬 기술들만 잘 선택한다면, 기술보다는 애플리케이션의 로직 자체에 더 집중하여 비즈니스 로직을 구현할 수 있다.

 


 

 

(참고) 스프링의 오픈소스와 경량급
  • 오픈소스
    • 스프링은 모든 사용자에게 무료로 열려 있다. 즉, 어떤 개인 및 기업도 스프링을 사용하여 웹 애플리케이션을 개발을 할 수 있으며, 필요하다면 스프링의 코드를 일부 수정하여 사용하여도 무관하다. 이처럼 오픈소스로 프로젝트를 공개해 놓으면 여러 사람이 프로젝트의 코드를 사용해봄으로써 다양한 검증 과정을 거칠 수 있다는 장점이 있다.
    • 스프링은 오픈소스 프레임워크이지만, 안정적인 개발과 개선이 보장된다. 현재 스프링은 오픈소스로 배포되어 누구나 이용할 수 있지만, 스프링소스(SpringSource)라는 IT기업에서 관리하고 있으며, 스프링의 소스 코드를 수정하거나 개선하는 일에는 스프링소스의 한정적인 인원만 참여할 수 있다.
  • 경량급
    • 스프링은 수십개의 세부 모듈 및 수십만줄의 방대한 코드로 이루어진 프레임워크이다. 스프링을 정의함에 있어 경량급이라 함은 기존에 스프링 대신 사용하던 기술들과 비교하여, 스프링을 사용했을 때에 개발자가 작성해야 할 코드가 상대적으로 단순하다는 것을 의미한다.
    • 따라서, 스프링을 정의함에 있어 경량급 애플리케이션 프레임워크라 함은, 스프링을 사용함으로써 기존 기술을 사용할 때에 불가피하게 작성해야만 했던 불필요하게 복잡한 코드를 제거하여 코드의 복잡성을 낮출 수 있음을 의미한다.

 

(참고) 프레임워크와 어플리케이션 프레임워크   
  • 웹 개발에 있어 프레임워크란, 어떠한 목적을 쉽게 달성할 수 있도록 해당 목적과 관련된 코드의 뼈대를 미리 만들어둔 것을 의미한다.
  • 일반적으로 프레임워크는 특정 업무 분야 혹은 하나의 기술에집중한다. 반면, 애플리케이션 프레임워크는 특정 업무 분야 및 특정 기술이 아니라, 애플리케이션 개발에 필요한 모든 과정에 집중한다. 따라서 애플리케이션 프레임워크는 애플리케이션을 개발하는 데에 있어 필요한 모든 업무 분야 및 모든 기술과 관련된 코드들의 뼈대를 제공한다.

 


 

스프링의 특징

  • POJO 프로그래밍
    • POJO란, Plain Old Java Object, 즉 순수 Java만을 통해서 생성한 객체를 의미한다.
    • 순수 Java 만을 사용한다는 것은 Java 및 Java의 스펙에 정의된 기술만 사용한다. 즉 다른 기술을 사용하지 않는 순수한 Java만을 사용하여 만든 객체인 것이다.
    • 반면, POJO는 순수 Java만을 사용하여 만든 객체이므로 특정 기술이나 환경에 종속되지 않는다. 따라서, 외부 기술이나 규약의 변화에 얽매이지 않아, 보다 유연하게 변화와 확장에 대처할 수 있다
  • POJO 프로그래밍의 특징
    • IoC / DI (Inversion of Control / Dependency Injection, 제어의 역전 / 의존성 주입 )
    • AOP (Aspect Oriented Programming, 관심 지향 프로그래밍)
    • PSA (Portable Service Abstraction, 일관된 서비스 추상화)

 

참고 사이트

'2023-24 동계 모각코' 카테고리의 다른 글

2024.01.31 모각코 4회차 결과  (1) 2024.02.07
2024.01.05 모각코 3회차 결과  (0) 2024.01.07
2023.12.29 모각코 2회차 결과  (0) 2024.01.02
2023.12.29 모각코 2회차 계획  (0) 2024.01.02
2023.12.26 모각코 1회차 계획  (2) 2023.12.27
  1. 스프링은 자바 언어 기반의 웹 프레임워크이고, 자바는 객체 지향 언어이다.그렇다면 좋은 객체 지향 프로그래밍이란 무엇일까?
  2. 객체 지향 프로그래밍이란 ??
  3. 객체 지향 프로그래밍(OOP)
  4. 객체 지향 프로그래밍의 특징
  5. 객체 지향 프로그래밍의 5가지 설계 원칙 (SOLID)
  6. 스프링이란 ??
'2023-24 동계 모각코' 카테고리의 다른 글
  • 2024.01.05 모각코 3회차 결과
  • 2023.12.29 모각코 2회차 결과
  • 2023.12.29 모각코 2회차 계획
  • 2023.12.26 모각코 1회차 계획
폐프
폐프
  • 폐프
    폐프의삶
    폐프
  • 전체
    오늘
    어제
    • 분류 전체보기 (43)
      • 2023 하계 모각코 (12)
      • 2023-24 동계 모각코 (8)
      • 2024 SW ACADEMY (5)
      • Spring (1)
      • JPA (0)
      • JAVA (2)
      • Database (10)
      • OS (5)
      • Network (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
폐프
2023.12.26 모각코 1회차 결과
상단으로

티스토리툴바

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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