01 스프링과 스프링부트

pudding·2022년 10월 23일
0

Spring ~ Spring boot

목록 보기
1/3

Spring Framework

스프링을 효과적으로 사용하려면 스프링이 지지하는 가치와 이루고자 하는 목표를 반드시 이해해야한다. 그리고 목표를 이루기 위해 스프링이 제공하는 구체적인 기술에는 무엇이 있으며 왜 필요한지 알아야한다.

스프링은 자바를 바탕으로 한 기술이고, 스프링이 자바에서 가장 중요하게 생각하는 가치는 객체 지향 프로그래밍이 가능한 언어라는 것이다.

그래서 오브젝트가 중요하다. 오브젝트의 기술적인 설계와 사용방법을 넘어서 오브젝트의 설계에까지 관심을 두어야한다.
-> 객체지향 설계의 기초원칙(OOP)부터 다양한 목적을 위해 재활용 가능한 설계 방법인 디자인패턴, 좀 더 깔끔한 구조가 되도록 지속적으로 개선해 나가는 리팩토링, 오브젝트가 기대한대로 동작하는지를 효과적으로 검증하는데 쓰이는 단위테스트 등과 같은 여러가지 응용기술과 지식이 요구된다.

스프링은 객체지향 설계와 구현에 관해 특정한 모델과 기법을 억지로 강요하지는 않는다. 하지만 오브젝트를 어떻게 효과적으로 설계하고 구현하고 사용하고 이를 개선해 나갈 것인가에 대한 명쾌한 기준을 마련해준다.
동시에 객체지향 기술과 설계, 구현에 관한 실용적인 전략과 베스트 프랙티스를 평범한 개발자도 자연스럽고 손쉽게 적용할 수 있도록 프레임워크로 제공한다

토비의 스프링3에서는 1장에서 스프링이 어떤것이고 무엇을 제공하는지보다는 스프링이 관심을 갖는 대상인 오브젝트 설계와 구현, 동작원리에 집중하다보면 자연스레 스프링이 무엇인지 알게된다고 말한다.

내용 출처: 토비의 스프링 3

장점

  • 경량 컨테이너
  • IoC(Invertion of Control: 제어 역행)
  • Di(Dependency Injection: 의존성 주입)
  • AOP(Aspect-Oriented Programming: 관점지향 프로그래밍)

Spring Boot

  • 스프링은 여러가지 기술들의 모음이라고 할 수 있다. 기능이 많은만큼 환경설정이 복잡하다. 그래서 이걸 간편화 해주기위해 등장한 것이 스프링 부트이다.
  • Spring initialize 사이트에서 바로 실행 가능한 spring boot 프로젝트를 만들 수 있다.

Spring과의 비교

  • embedded tomcat이나 jetty로 웹 애플리케이션 서버를 바로실행할 수 있다. 따로 tomcat을 설치해주거나 버전 관리를 해줄 필요가 없다.
  • spring boot starter 디펜던시만 추가해주면 바로 API를 정의할 수 있다. 기존의 Spring에서는 디펜던시 버전관리에 어려움이 많았는데 spring boot starter가 알아서 대부분의 디펜던시를 관리해준다.
  • jar file을 이용해 자바 옵션만으로 손쉽게 배포가 가능하다.Spring Actuaor를 이용한 애플리케이션의 모니터링과 관리를 제공한다. ??

Spring boot starter

  • starter란 특정 목적을 달성하기 위한 의존성 그룹이라고 생각하면 이해하기 쉽다. starter는 간편하게 dependency를 제공해주는데, 만약 우리가 JPA가 필요하다면 pom.xml(메이븐)이나 build.gradle(그레들)에 'spring-boot-starter-data-jpa'만 추가해주면 spring boot가 그에 필요한 라이브러리들을 알아서 받아온다.
    spring-boot-starter-*
  • starter의 명명 규칙은 위와 같다. *부분에 원하는 스타터명을 명시하면 된다. 명명 규칙을 알면 손쉽게 원하는 라이브러리를 import 할 수 있다.
profile
영차 영차 개발 공부 기록 하기

0개의 댓글

관련 채용 정보