spring-god-study / spring-basic

김영한님 스프링 기본 강의를 듣고 서로 인증하고 힘을 내며 잇쌰잇쌰하는 프로젝트
0 stars 3 forks source link

2021.07.14 (수) 인증 #5

Open kyupid opened 3 years ago

kyupid commented 3 years ago
dnjsrud3407 commented 3 years ago

강의명 : 스프링 핵심 원리 - 기본편

수강 회차 : <스프링 핵심 원리 이해2 - 객체 지향 원리 적용>

요약

arangeblue commented 3 years ago

스린이 강의명 : 스프링 핵심 원리 기본편

수강 회차 : 섹션 7 / 다양한 의존관계 주입 방법 ~ 롬복과 최신 트렌드

요약

정리

kyupid commented 3 years ago

2021.07.14

스프링이란?

여러가지 기술들이 있는데 핵심 기술은 스프링 부트와 스프링 프레임워크 . 스프링 배치는 천만명을 업데이트해라 -> 천건 올려서 처리하고 천건올려서 처리하고 하는 그런기술.

모든 기술을 사용하게 편리하게 해주는것이 스프링부트. 가장 중요한것은 스프링 프레임워크

스프링 프레임워크

핵심기술 : 스프링 DI 컨테이너, AOP, 이벤트, 기타 웹기술: 스프링 MVC, 스프링 WebFlux 데이터 접근기술: 트랜잭션, JDBC, ORM 지원, XML 지원 기술 통합: 캐시, 이메일, 원격접근, 스케줄링 테스트: 스프링기반테스트지원 언어: 코틀린, 그루비 최근에는 스프링 부트를 통해서 스프링 프레임워크의 기술들을 편리하게 사용

스프링부트

스프링부트는 프레임워크랑 떨어져있지않고 편리하게 사용하게 하기위한 껍데기 기능 이것만 가지고 돌아가는건 아니다

스프링이라는 단어?

스프링이라는 단어는 문맥에 따라 다르게 사용된다

스프링 왜 만들었나?

이 기술을 왜 만들었는가? 아무리복잡한기술도 기술의 컨셉은 단순하다.

스프링의 핵심 개념

당시 EJB는 EJB를 상속받고하면서 굉장히 지저분한 의존적인 코드가 탄생 객체지향의 장점을 다잃어버린다 하지만 스프링은 좋은 객체 지향 어플리케이션을 개발해줄수있게 도와주는 프레임워크라는 것을 이해해야한다

다음 강의는 그래서 좋은 객체 지향 어플리케이션이란?

hokyung-lee commented 3 years ago

3강 좋은 객체지향의 5가지 원칙

kimminju commented 3 years ago

2021.07.14 강의명 : 스프링 핵심 원리 기본편 [섹션1 객체지향 설계와 스프링] 스프링

  1. 스프링 생태계 1) 기술(spring.io> project > Overv iew) ㄱ) 필수
    • 스프링 프레임워크
    • 스프링 부트 ㄴ) 선택
    • 스프링 데이터
    • 스프링 세션
    • 스프링 시큐리티
    • 스프링 Rest Docs
    • 스프링 배치
    • 스프링 클라우드
  2. 스프링 프레임워크
    1) 핵심기술 : 스프링 DI컨테이너, AOP, 이벤트, 기타 2) 웹기술 : 스프링 MVC, 스프링 WebFlux 3) 데이터 접근기술 : 트랜잭션, JDBC, ORM 지원, XML 지원 4) 기술 통합 : 캐시, 이메일, 원격접근, 스케줄링 5) 테스트 : 스프링 기반 테스트 지원 6) 언어 : 코틀린, 그루비
  3. 스프링 부트
    1) 스프링 프레임워크를 기반으로 편리하게 사용할 수 있도록 도와주는 기술 2) 장점
    • 스프링을 편리하게 사용할 수 있도록 지원
    • 단독으로 실행할 수 있는 스프링 애플리케이션을 쉽게 생성
    • Tomcat 같은 웹 서버를 내장해서 웹 서버 설치x
    • 손쉬운 빌드구성을 위한 starter 종속성 제공(lib를 하나만 땡기면 starter 가 나머지 lib도 땡겨준다)
    • 스프링과 3rd parth(외부) 라이브러리 자동 구성(버전 최적화)
    • 메트릭, 상태확인, 외부 구성 같은 프로덕션 준비 기능 제공(운영환경 모니터링 등 지원)
    • 관례에 의한 간결한 설정(기본적인 설정이 되어 있고 매뉴얼이 나와있음)
  4. 스프링 1) 스프링 DI 컨테이너 기술(스프링 빈을 관리) 2) 스프링 프레임워크 3) 스프링 부트, 스프링 프레임워크 등을 모두 포함한 스프링 생태계 4) 스프링은 자바언어 기반의 프레임워크(객체지향언어) 5) 스프링은 좋은 객체 지향 어플리케이션을 개발할 수있도록 해주는 프레임워크
sablemarten commented 3 years ago

좋은 객체지향의 5가지 원칙

SRP 단일책임원칙 : 1클래스 = 1책임 OCP 개방폐쇄원칙 : 아직 잘 모르겠음 LSP 리스코프 치환 원칙 : 기능에 위배되는 구현은 하지마라 ISP 인터페이스 분리 원칙 : 인터페이스 쪼개기 DIP 의존관계 역전 원칙 : 역할 구현 위랑 비슷함

OCP는 잘 안 와닿았지만 나머지는 굳이 의식 안 해도 지키게 되는듯

char-yb commented 3 years ago

uiurihappy 강의명: 스프링 핵심원리 기본편 강의 회차: 싱글톤 컨테이너

기존에 만들었던 순수 DI 컨테이너인 AppConfig에서는 요청을 할때마다 객체를 새로 생성을 해야했지만, 싱글톤 패턴으로 싱글톤 컨테이너를 만들어 객체 인스턴스를 싱글톤으로 관리한다.

스프링 컨테이너는 싱글턴 패턴을 적용하지 않아도, 객체 인스턴스를 싱글톤으로 관리한다. 스프링 컨테이너 덕분에 고객의 요청이 올 때 마다 객체를 생성하는 것이 아니라, 이미 만들어진 객체를 공유해서 효율적으로 재사용할 수 있다.

cxz5309 commented 3 years ago

좋은 객체 지향 설계의 원칙(SOLID)

SRP : 단일 책임 원칙

OCP : 개방-폐쇄 원칙

LSP : 리스코프 치환 원칙

ISP : 인터페이스 분리 원칙

DIP : 의존관계 역전 원칙

정리