소프트웨어 개발을 편하게 만들기 위한 개발 환경을 의미합니다. 쉽게 말하면 틀을 제공하는 것인데, 개발을 할 때에 이 틀에 맞추어 개발을 해야 합니다.
application 개발에 필요한 클래스, 함수 등을 모아 놓은 모음집입니다. 소프트웨어를 만들 때 이 모음집에서 필요에 따라 원하는 기능을 가져다 쓸 수 있습니다.
코드에 메타데이터를 추가할 수 있는 기능을 제공합니다. 보통 특별한 의미를 부여하거나, 컴파일러와 런타임에 특정 동작을 트리거하기 위해 사용됩니다.
@ 기호로 시작되며, 클래스, 메서드, 변수, 매개변수, 패키지 등에 붙일 수 있습니다.
@Override@Deprecated보일러 플레이트 코드(Boilerplate code)를 줄여주는 라이브러리입니다. 자동으로 보일러 플레이트 코드를 생성하여 가독성과 유지 보수성을 높여줍니다.
어노테이션 기반으로 동작하며, 주로 컴파일 시점에 소스 코드를 변환하여 필요한 메서드를 자동으로 생성해줍니다.
보일러 플레이트 코드(Boilerplate code)는 뭔가요?
getter, settter, constructor, toString 등과 같이 반복적으로 작성되는 코드를 의미합니다.
@Getter, @Setter
@ToString
객체의 toString()메서드를 자동으로 생성합니다.
기본적으로 모든 필드를 포함하며, 특정 필드를 제외하거나 포맷을 지정하는 것도 가능합니다.
@EqualsAndHashCode
equals()와 hashCode() 메서드를 자동으로 생성합니다.
객체의 동일성과 해시 코드를 정의하는데 사용됩니다.
@NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor
@Data
@Getter, @Setter, @ToString, @EqualsAndHashCode, @RequiredArgsConstructor를 한꺼번에 적용하는 어노테이션입니다. 주로 테스트 용도로 사용이 됩니다.
@Builder
빌더 패턴을 적용하여 객체를 생성할 수 있게 해줍니다. 보통 복잡한 객체 생성에 사용이 됩니다.
@Slf4j
해당 어노테이션이 붙은 클래스에 로그를 남기기 위한 Logger 객체를 자동으로 생성합니다.
Java Application Framework입니다. 엔터프라이즈 application 개발에 주로 사용이 됩니다.
Spring Framework를 기반으로 간편하고 빠르게 application을 개발할 수 있도록 도와주는 도구입니다.
Spring Framework는 초기 설정과 구성파일이 복잡하고 방대합니다. 그리고 이를 개발하고 배포하기 위해서는 여러 가지 의존성을 관리해야 하고 서버와 관련된 설정이 필요합니다.
이런 과정을 최소한의 노력으로 수행할 수 있는 방법이 필요해 등장한 것이 Spring Boot입니다.
spring-boot-starter-web을 빌드 관리 도구에 추가하면 모든 종속성와 설정이 자동으로 구성됩니다.Java와 유사한 문법 구조를 가진 Groovy 기반 스크립트 언어를 사용합니다.
다양한 소프트웨어를 빌드할 수 있는 빌드 자동화 도구입니다.
빌드(Build)란?
소스 코드를 컴퓨터가 실행 가능한 파일로 변환해주는 작업을 의미합니다.
자바의 경우, 소스 코드를 컴파일해 나온 결과물인 자바 바이트 코드에 라이브러리와 같은 의존성을 추가하여 실행 가능한 파일(.jar, .war)을 만드는 것이 빌드 과정입니다.
빌드 자동화 도구
빌드와 더불어 라이브러리 관리, 테스트, 배포 등 까지 자동화하여 수행합니다.
Groovy 기반 언어의 빌드 스크립트입니다. 소스 코드를 빌드하고, 라이브러리들의 의존성을 관리할 수 있습니다.
특정 작업을 위해 모아 놓은 task들의 모음집입니다.
plugins {
id 'java'
id 'org.springframework.boot' version '3.1.5'
id 'io.spring.dependency-management' version '1.1.3'
}
프로젝트에서 사용하는 라이브러리나 패키지를 관리합니다.
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-security'
// ...
}
라이브러리를 추가하는 시점을 설정할 수 있습니다.
라이브러리가 저장된 위치를 정의하고 저장소에서 라이브러리를 가져옵니다.
repositories {
mavenCentral()
}
자료 및 코드 출처: 스파르타 코딩클럽