To create a Java Spring Boot application that exposes a RESTful API for managing a library system, follow these steps:

1. Set up the project structure and dependencies
2. Create domain models (entities) for Book and Author
3. Configure MySQL database connection and Hibernate settings
4. Implement repositories to interact with the database
5. Implement services to handle business logic
6. Implement controllers to expose RESTful APIs

Here's an example implementation of each step:

Step 1: Set up the project structure and dependencies

Create a new Spring Boot project using start.spring.io or your favorite IDE. Add the following dependencies:

- Web (spring-boot-starter-web)
- JPA (spring-boot-starter-data-jpa)
- MySQL Driver (mysql:mysql-connector-java)

Step 2: Create domain models (entities) for Book and Author

Book.java:

```java
import javax.persistence.*;
import java.util.HashSet;
import java.util.Set;

@Entity
public class Book {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String title;

    @ManyToMany(mappedBy = "books")
    private Set<Author> authors = new HashSet<>();

    // Constructors, getters, setters, equals, hashCode
}
```

Author.java:

```java
import javax.persistence.*;
import java.util.HashSet;
import java.util.Set;

@Entity
public class Author {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;

    @ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE})
    @JoinTable(name = "author_book",
            joinColumns = @JoinColumn(name = "author_id"),
            inverseJoinColumns = @JoinColumn(name = "book_id"))
    private Set<Book> books = new HashSet<>();

    // Constructors, getters, setters, equals, hashCode
}
```

Step 3: Configure MySQL database connection and Hibernate settings

application.properties:

```
spring.datasource.url=jdbc:mysql://localhost:3306/library?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=my_password

spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
```

Step 4: Implement repositories to interact with the database

BookRepository.java:

```java
import org.springframework.data.repository.CrudRepository;

public interface BookRepository extends CrudRepository<Book, Long> {
}
```

AuthorRepository.java:

```java
import org.springframework.data.repository.CrudRepository;

public interface AuthorRepository extends CrudRepository<Author, Long> {
}
```

Step 5: Implement services to handle business logic

BookService.java:

```java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class BookService {
    @Autowired
    private BookRepository bookRepository;

    // CRUD methods for books (e.g., create, read, update, delete)
}
```

AuthorService.java:

```java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class AuthorService {
    @Autowired
    private AuthorRepository authorRepository;

    // CRUD methods for authors (e.g., create, read, update, delete)
}
```

Step 6: Implement controllers to expose RESTful APIs

BookController.java:

```java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/api/books")
public class BookController {
    @Autowired
    private BookService bookService;

    // Map HTTP requests to service methods (e.g., GET, POST, PUT, DELETE)
}
```

AuthorController.java:

```java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/api/authors")
public class AuthorController {
    @Autowired
    private AuthorService authorService;

    // Map HTTP requests to service methods (e.g., GET, POST, PUT, DELETE)
}
```

Now you have a Java Spring Boot application that exposes a RESTful API for managing a library system with support for creating, reading, updating, and deleting books and authors. The data is stored in a MySQL database using Hibernate.
라이브러리 시스템 관리를 위한 RESTful API를 노출하는 Java Spring Boot 애플리케이션을 생성하려면 다음 단계를 따르십시오.

1. 프로젝트 구조 및 종속성 설정
2. 도서 및 저자에 대한 도메인 모델(엔티티)을 생성합니다
3. MySQL 데이터베이스 연결 및 최대 절전 모드 설정 구성
4. 데이터베이스와 상호 작용할 리포지토리 구현
5. 비즈니스 로직을 처리하는 서비스 구현
6. RESTful API를 노출하기 위한 컨트롤러 구현

다음은 각 단계의 구현 예제입니다.

1단계: 프로젝트 구조 및 종속성 설정

start.spring.io 또는 자주 사용하는 IDE를 사용하여 새 Spring Boot 프로젝트를 생성합니다. 다음 종속성을 추가합니다.

- 웹(spring-boot-starter-web)
- JPA(spring-boot-starter-data-jpa)
- MySQL 드라이버(mysql:mysql-connector-java)

2단계: Book 및 Author에 대한 도메인 모델(엔티티) 만들기

Book.java:

```java
import javax.persistence.*;
import java.util.HashSet;
import java.util.Set;

@Entity
public class Book {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String title;

    @ManyToMany(mappedBy = "books")
    private Set<Author> authors = new HashSet<>();

    // Constructors, getters, setters, equals, hashCode
}
```

Author.java:

```java
import javax.persistence.*;
import java.util.HashSet;
import java.util.Set;

@Entity
public class Author {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;

    @ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE})
    @JoinTable(name = "author_book",
            joinColumns = @JoinColumn(name = "author_id"),
            inverseJoinColumns = @JoinColumn(name = "book_id"))
    private Set<Book> books = new HashSet<>();

    // Constructors, getters, setters, equals, hashCode
}
```

3단계: MySQL 데이터베이스 연결 및 최대 절전 모드 설정

application.properties를 구성합니다:

```
spring.datasource.url=jdbc:mysql://localhost:3306/library?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=my_password

spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
```

4단계: 데이터베이스와 상호 작용할 리포지토리 구현

BookRepository.java:

```java
import org.springframework.data.repository.CrudRepository;

public interface BookRepository extends CrudRepository<Book, Long> {
}
```

AuthorRepository.java:

```java
import org.springframework.data.repository.CrudRepository;

public interface AuthorRepository extends CrudRepository<Author, Long> {
}
```

5단계: 비즈니스 로직을 처리하는 서비스 구현하기

BookService.java:

```java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class BookService {
    @Autowired
    private BookRepository bookRepository;

    // CRUD methods for books (e.g., create, read, update, delete)
}
```

AuthorService.java:

```java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class AuthorService {
    @Autowired
    private AuthorRepository authorRepository;

    // CRUD methods for authors (e.g., create, read, update, delete)
}
```

6단계: 컨트롤러를 구현하여 RESTful API를 노출하기

BookController.java:

```java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/api/books")
public class BookController {
    @Autowired
    private BookService bookService;

    // Map HTTP requests to service methods (e.g., GET, POST, PUT, DELETE)
}
```

AuthorController.java:

```java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/api/authors")
public class AuthorController {
    @Autowired
    private AuthorService authorService;

    // Map HTTP requests to service methods (e.g., GET, POST, PUT, DELETE)
}
```

이제 도서 및 저자의 생성, 읽기, 업데이트 및 삭제를 지원하는 라이브러리 시스템을 관리하기 위한 RESTful API를 노출하는 Java Spring Boot 애플리케이션이 생겼습니다. 데이터는 최대 절전 모드를 사용하여 MySQL 데이터베이스에 저장됩니다.