[Spring] - 객체 지향 설계와 스프링①

uHan2·2020년 12월 5일
0

TIL.BackEnd

목록 보기
2/12

안녕하세요.
지금까지 계속 저만의 기술 블로그를 만들어야지, 만들거야
마음으로만 다짐하다가 인제야 시작하게 되었습니다.
비록 시작은 코딩일기지만, 그 끝은 창대하게
어엿한 개발자 블로그로 성장할 수 있도록 노력하겠습니다.


스프링 핵심 원리

본 게시글은 김영한님의 스프링 핵심 원리 강의 내용을 정리한 글입니다.

개요 :: EJB의 문제 그리고 Spring의 탄생

  • 예전에는 Enterprise Java BeansJava 진영의 표준이었고 정파였다.
    분산 서비스, 트랜잭션 설정 등 이론은 좋았지만 난이도는.. 심지어 가격도 매우매우매우 비쌌다고. 그리고 EJB의 ORM 기술이었던 Entity beans도 기술적으로 상당히 저조했다.

  • 이런 EJBEntity beans 에 불만을 품고 나온것이 바로 Spring FrameworkHibernate!
    (EJB를 사용하던 개발자가 빡쳐서 만들었다고..)

  • 이렇게 EJB에 의존하여 코드를 짜다보니 복잡하고 더러워져서 다시 Java의 본질로 회귀하자는 POJO(Plain Old Java Object) 얘기가 나왔다고 한다.

JPA :: Hibernate

  • 상기에 언급했듯이 Gavin King이 열받아서 직접만든 Hibernate가 점유율이 폭발한다. 그러자 Java 진영에서 Entity Beans는 망했다고 판단하고 Gavin King을 직접 데려온다(응?)
    그렇게 Hibernate가 JPA 표준으로 정제되어 자리잡는다.

Spring :: 탄생

  • Rod Johnson이 EJB의 문제점을 지적하는 책 출간.(전설의 시작)
    EJB를 상위 대체할 수 있음을 무려 30,000 라인의 예제 코드로 선보였다.
    (예제 코드가 실무 프로젝트에 쓰일 정도라고 한다..)
    여기서 IoC, DI, BeanFactory, ApplicationContext 개념 등장..

  • Juergen Hoeller, Yann Caroff가 Rod Johnson에게 오픈소스 프로젝트를 제안하고 여기서 겨울이 끝나고 봄이 온다는 뜻에 Spring이 탄생.

  • 하지만 이런 Spring도 설정이 굉장히 복잡했기에 이를 편리하게 해주는
    Spring Boot 가 등장한다.

Spring :: 생태계

  • Spring 안에는 여러 기술이 존재한다.

    • 필수

      • Spring Framework
      • Spring Boot
    • 선택

      • Spring Data (JPA)
      • Spring Security
      • Spring batch
      • Spring Session
      • Spring Rest Docs
      • Spring Cloud
        ...
    • 이 외에도 많은 자료들은 spring.io 를 참고하자!

  • Spring 의 편리한 사용을 돕는 Spring Boot가 최근에는 기본으로 사용된다.

    • Tomcat이 내장되어서 별도의 웹 서버 설치가 불필요하다.

    • 빌드 구성을 쉽게 할 수 있는 starter 종속성을 제공한다.
      (필요한 기능을 타고 타고 타서 전부 땡겨와준다.)

    • 3rd party lib를 자동으로 구성해준다.
      (버전 궁합에 맞게 알아서 설정해준다.)

    • 운영에서 모니터링 환경을 제공해준다.

    • 왠만한 스프링 설정이 default 값으로 되어있고 메뉴얼이 잘 되어있어 필요하면 찾아서 간편하게 설정하면 된다.

Spring :: Point

  • 핵심 컨셉은 진짜 객체 지향
    다른 기술들이 여기에 붙어 커진 것이다.
    (2편에 계속)
profile
For the 1% inspiration.

0개의 댓글