스프링 | 스프링 부트
[ Spring Boot ] 프레임워크와 라이브러리
Adose
2025. 1. 17. 04:56
📘 프레임워크와 라이브러리
프레임워크
프레임워크는 프로그램 개발 시 필수적인 코드, 알고리즘, D연동 같은 기능을 위해 기본적은 구조(=뼈대)를 제공한다.
개발자는 이 구조(=뼈대) 위에서 코드를 하고 프로그램을 개발한다.
⚒️ 예시 : 스프링 부트에서 사용되는 기본 구조 (=뼈대)
1️⃣ 자동 설정 (Auto Configuration) : properties, yml 파일에 설정을 추가하는 것만으로 데이터베이스 연결, 서버포트 설정을 할 수 있다.
server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
2️⃣ 데이터베이스 연동 (JPA, Hibernate) : JPA와 Hibernate를 내장, JpaRepositor를 이용해 데이터를 CRUD할 수 있는 기능을 제공한다.
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
}
import org.springframework.data.jpa.repository.JpaRepository;
public interface TestRepository extends JpaRepository<User, Long> {
// 기본적인 CRUD 메서드 (save, findById, findAll, delete 등)이 자동으로 제공
}
3️⃣ RESTful API 지원 : 스프링 부트는 @RestCotroller, @RequestMappging을 제공하여 HTTP요청을 처리할 수 있다.
@RestController
@RequestMapping(value = "/test")
public class TestController {
@GetMapping("/hi")
public String TestHi(...) {
...
}
}
// TestHi()는 url : test/hi 로 이용할 수 있다.
- 이 외에도 스프링부트에는 프로그램 개발을 위한 다양한 구조(=뼈대) 가 있다 !
- 프로그램 구조 또한 프레임워크가 제공하는 뼈대의 일종 ㅇㅇ
라이브러리
라이브러리는 특정 기능을 제공하는 도구라고 생각하면 된다.
⚒️ 예시 : 스프링부트에서 사용되는 라이브러리
1️⃣ java.util.logging (JDK 기본 로깅 라이브러리)
애플리케이션에서 로그를 기록하고 관리할 수 있도록 도와준다. 추가적인 외부 라이브러리 없이 사용 가능 ( 의존성 추가 안해도 됨 ㅇㅇ)
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@RestController
public class HelloSpring {
private static final Logger logger = LoggerFactory.getLogger(HelloSpring.class);
@GetMapping("/hello")
public String hi(){
logger.info("hi!!!!!!!!!!!!!!!!");
return "hello Spring";
}
2️⃣ Lombok 라이브러리
Lombk은 자바에서 반복적으로 작성되는 코드를 자동 생성해준다.
import lombok.Getter;
import lombok.Setter;
//getter, setter 메서드 자동 제공
@Getter
@Setter
public class User {
private String name;
private int age;
}
@AllArgsConstructor //모든 필드를 포함한 생성자 생성
@NoArgsConstructor // 기본 생성자 생성
public class User {
private String name;
private int age;
}
- 의존성은 아래와 같이 추가하면 되고, 최신버전 사용을 권장한다.
dependencies { implementation 'org.projectlombok:lombok:1.18.28' annotationProcessor 'org.projectlombok:lombok:1.18.28' }
- 프로그램 생성과 동시에 추가도 가능
결론
프레임워크는 프로그램 개발을 위한 큰 틀(=뼈대 ,구조 )를 가지고 있고, 개발자는 그 틀 위에서 코드를 작성한다.
(프레임워크가 흐름을 제어 ⇒ 프레임워크라는 큰 틀 위에서 개발자가 코드를 작성하기 때문)
라이브러리는 개발자의 필요에 따라 라이브러리를 가져다 사용할 수 있다.
(개발자가 흐름을 제어 ⇒ 필요에 따라 사용하기 때문)