스터디/스프링

스프링 공부 일지 - 객체 지향 설계와 스프링

sleesm 2023. 1. 1. 14:05

 

빠밤!!

1월 1일이 시작되면서

지원이랑 같이 스프링 스터디를 시작한다👊👊

 

 

사용할 강의 링크 👉👉 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8

 

스프링 핵심 원리 - 기본편 - 인프런 | 강의

스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런...

www.inflearn.com

 

 

부디 20일 안에 다 듣기를!!

 

 

 

 

 

 

 

 

 


 

 

 

강의는 스프링의 역사부터 시작된다!!

 

짧게 요약하자면!!

 

 

 

기존의 EJB(Enterprise Java Beans) 지옥에서 벗어나고 싶은

 

개발자 로드 존슨의 책 출간을 시작으로 오픈소스 프로젝트스프링이 시작되었다!!!

(전통적인 J2EE(EJB)라는 겨울을 넘어 새로운 시작이라는 뜻의 스프링이 나옴)

 

 

 

그리고 개빈킹하이버네이트를 만들면서

EJB의 엔티티빈 기술을 대체하는 것이 등장했다!!!

 

이로써 JPA 라는 새로운 표준을 정의할 수 있었고 JPA의 80% 이상 사용되는 구현체가 바로 저 하이버네이트다!!

 

 

 

 

 


 

 

 

그렇다면 스프링은 무엇인가?!!!

 

 

스프링 사이트에서 프로젝트를 확인해보면 종류가 엄청나다!!

 

그 중 가장 중요한 것은 이 둘이다!! 👇👇👇

스프링 프로젝트들

 

 

 

  • 스프링 프레임워크
    • 핵심 기술에 DI 컨테이너, AOP 등이 있다
    • 위 강의는 핵심 기술을 중심으로 알려주고 있다

 

 

 

  • 스프링 부트
    • 👉👉 https://start.spring.io/  
    • 스프링을 편리하게 사용할 수 있도록 지원해줌
    • 그렇기 때문에 스프링 프레임워크가 필수적으로 필요하다
    • 웹 서버를 내장하기 때문에 별도의 웹 서버 설치 X
    • starter 종속성 제공
    • 외부 라이브러리 자동 구성

 

 

 

 

 

 

 

 


 

 

스프링은 자바의 객체 지향 특징을 가장 잘 살려내는 프레임워크라고 할 수 있다!!

 

 

그럼 여기서!

좋은 객체 지향 설계 5가지 원칙 SOLID

 

  • SRP 단일 책임 원칙
    • 변경이 있을 때 파급 효과가 적으면 단일 원칙 책임을 잘 따른 것이다!

 

  • OCP 개방-폐쇄 원칙
    • 인터페이스를 사용해 클래스를 만들어 확장
    • 인터페이스를 사용했기 때문에 기존 코드는 변경 X
    • 자바 코드만을 사용했을 때는 지키기 어려움 👉 스프링 컨테이너를 활용!

 

  • LSP 리스코프 치환 원칙
    • 하위 클래스는 인터페이스 규약을 다 지켜야 한다!

 

  • ISP 인터페이스 분리 원칙
    • 범용 인터페이스보다는 분리된 인터페이스 사용

 

  • DIP 의존관계 역전 원칙
    • 구현 클래스에 의존 X
    • 인터페이스에 의존 O

 

 

 

 

👍👍👍 스프링DI 컨테이너, DI 를 통해 객체 지향 설계를 가능하게 함!! (특히 OCP, DIP)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


살짝 얼렁뚱땅 끝나버린 첫 번째 강의!!

이론 중심의 강의라서 

뭔가 더 듣기 힘들었다.............

나는 역시 실전파인가봐 😁😁😁

 

 

 

새해가 밝았지만 여전히 블로그는 밀렸고,,

언젠가 다 쓰길 바라며 2023년 첫 번째 글을 적어본다!

 

그럼 안녕!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!🙌🙌🙌🙌🙌🙌🙌🙌🙌🙌🙌🙌🙌🙌🙌🙌🙌🙌🙌🙌