라이브러리
API를 기반으로 대상 환경(플랫폼)에서 바로 실행될 수 있도록 모듈화된 프로그램 모음이다. 라이브러리는 혼자서 동작하는 완전한 프로그램이 아닌, 특정한 부분 기능만을 수행하도록 제작된, 컴파일되어 기계어의 형태로 (또는 대상 플랫폼에 따라서는 바이트코드로) 존재하는 프로그램이다.
- 표준 라이브러리: 특정 언어의 개발 환경에 기본적으로 포함된 것들은 대부분 표준 라이브러리라고 불린다. 기본적인 기능 수행과 더불어 디버깅, 성능측정 등을 위한 별도의 API가 존재한다.
- 런타임 라이브러리: 프로그램이 실제 환경에서 실행되기 위해 필요한 모듈들이다. 대부분 위의 표준 라이브러리에서 기능 수행에 필요한 것들만 제공되거나, 스크립트의 실행기 등을 말한다.
InteliJ의 프로젝트 내 External Libraries를 보면 많은 라이브러리가 내장 되어 있는걸 볼 수 있다.
Gradle, Maven같은 빌드 툴은 의존관계를 관리해주는데, 의존관계가 있는 필요한 라이브러리들을 함께 다운로드 하는 역할을 해주었기 때문이다.
Spring Boot 의 특징
: 빌드 및 애플리케이션 구성을 단순화하기 위해 'starter' 라는 강력한 종속성 제공
Spring과 달리 Spring Boot는 웹 애플리케이션을 실행하는 데 단 하나의 종속성이 필요하다.(최소 종속성)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.4.4</version>
</dependency>
참고로 Spring에서 위의 Spring Boot 처럼 웹 응용 프로그램을 만드는 데 필요한 최소 종속성(minimum dependencies)은 다음과 같다:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.3.5</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.5</version>
</dependency>
스프링 부트는 다양한 스프링 모듈에 대한 수많은 스타터 종속성(starter dependencies)을 제공하는데, 가장 일반적으로 사용되는 것은 다음과 같다.
- spring-boot-starter-data-jpa
- spring-boot-starter-security
- spring-boot-starter-test
- spring-boot-starter-web
- spring-boot-starter-thymeleaf
아래 사진을 보면 spring-boot-starter 하위에 관련 라이브러리들이 있는걸 볼 수 있음.
★ 2.1 spring-boot-starter-parent
- 스프링부트(SpringBoot)에 필요한 dependency를 자동으로 추가해준다.
- spring-boot-starter-parent 아티팩트를 parent 태그에 명시하면 spring-boot-dependencies-x.x.x.RELEASE.pom 파일이 상속된다.
이에 사용자가 특별히 명시하지 않아도 스프링 부트에서 제공하는 의존성이 자동적으로 설정된다.
- 프로젝트 설정시 다양한 라이브러리를 사용하게되고, 버전 충돌문제가 늘 발생 한다.
starter-parent는 의존성 조합간의 충돌 문제가 없는 검증 된 버전정보 조합을 제공하여 충돌 문제를 해결하여 준다.
- 만일 spring-boot-starter-parent 로 상속받은 설정 정보를 다시 재정의하고 싶으면 properties 태그에 명시하면 된다.
* 대표적인 라이브러리 간단 설명
- spring-boot-starter-web
- spring-boot-starter-tomcat : 톰캣(웹 서버) , 이전에는 tomcat과 같은 was를 설치하고 자바소스를 실행시키는 방식으로 어플리케이션을 구동 했는데, Spring Boot에는 spring-boot-starter-tomcat 처럼 내장되어 있기 때문에 따로 설치하지 않고 main 메서드의 실행만으로도 웹서버가 동작하는 방식.
- spring-webmvc
- spring-boot-starter(공통) : 스프링 부트 + 스프링 코어 + 로깅
- spring-boot
- spring-core
- spring-boot-starter-logging
- logback, slf4j
- spring-boot
* logging관련해서 간단한 메모(spring-boot-starter-logging)
현업에서는 log를 남길 때 sysout으로 출력하면 안된다.
에러 관련 중요한 파일이 log파일을 따로 남겨서 확인을 하기 때문에..
많이 쓰는 로깅 조합 logback, slf4j
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 (김영한 강사님)
https://goddaehee.tistory.com/238
[스프링부트 (1)] 스프링부트 시작하기 (SpringBoot 프로젝트 설정 방법)
[스프링부트 (1)] 스프링부트 시작하기 (SpringBoot 프로젝트 설정 방법) 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ 스프링 부트 기초. 스프링 부트란? 그리고 스프링 부트 프로젝트 생성 방법 ] 입
goddaehee.tistory.com
'BackEnd > SpringBoot' 카테고리의 다른 글
[SpringBoot]Redundant declaration: @SpringBootApplication already applies @EnableAutoConfiguration (0) | 2023.02.02 |
---|