[spring] 스프링부트 학습-1
🦥 스프링부트의 핵심 기능
의존성 관리 간소화, 배포 간소화, 자동설정
-
‘스프링부트 스타터’의 BOM은 프로젝트 아티팩트(라이브러리 등의 구성 요소), 버전과 의존성관리를 포함한 특수한 POM이다. (POM: 빌드도구에서 의존성을 가져오고, 프로젝트 빌드에 사용하는 정보와 프로젝트 구성이 담긴 파일) 스타터를 의존성에 추가하면 의존성 내의 여러 라이브러리 버전이 모든 의존성에 맞게 동기화 된다. 예를 들어, 의존성에 포함된 A라이브러리는 다른 B, C라이브러리등과 정확히 잘 동작한다. 의존성간에 식별하기 어려운 버전 충돌이 발생하지 않으므로, 의존성이 간소화된다.
-
스프링부트는 하나의 jar파일로 배포를 간소화하였다. jar를 세이딩하는 대신 중첩된 JAR를 사용하면 많은 잠재적 문제가 완화된다. Jar A 와 Jar B가 각각 다른 버전의 라이브러리 C를 사용할 때 발생 가능한 버전 충돌이 없기 때문이다. 또한 애플리케이션 실행도 Java -jar app<파일명>.jar 명령을 통해 실행한다.파일명>
-
자동 설정은 스프링 부트의 가장 강력한 기능이다. 설정(configuration)보다는 관습(convention)에 의해 코드를 작성하여 작성해야 하는 설정 코드가 최소화 된다. 또한 자동 설정은 개발자가 비즈니스 로직에만 집중할 수 있게 해준다.
🦥 스프링부트 개발 도구
메이븐 & 그레이등
- 메이븐은 엄격하고 때로는 독단적이기까지 한 선언적 접근법으로 프로젝트와 개발 환경을 대단히 일관되게 만든다. 메이븐 방식을 따르면 일반적으로 문제가 거의 발생하지 않으므로 빌드에 신경쓰지 않고 코드에만 집중하게 된다.
- 그레이들은 프로그래밍/스크립팅 중심 언어로 최신버전 프로그래밍 언어 사용시 종종 문제가 생긴다. 대신 대규모 프로젝트에서는 메이븐보다 훨씬 빌드속도가 빠르다.
스프링 부트 버전
- 실제 프로덕트로 배포되는 애플리케이션은 항상 현재 버전의 스프링 부트를 사용해야 한다.
🦥 Rest API
API 사용
- 모든 것을 한곳에서 실행하는 모놀리식 애플리케이션 시대는 갔다.하지만 여전히 모놀리식이 유효한 경우가 있다.
1.도메인과 도메인의 경계가 모호할때
- 제공된 기능이 긴밀하게 결합됐으며, 모듈 간 상호 작용에서 유연함 보다 성능이 더 중요할때
- 관련된 모든 기능의 애플리케이션 확장 요구사항이 알려져있고 일관적일 때
- 기능이 변동성이 없을 때, 즉 변화가 느리거나 변화 범위가 제한적일 때
Leave a comment