JSP를 어느 정도 알고 계시다면 스프링 부트를 배우시는데 큰 도움이 될 거예요. 스프링 부트는 자바 개발 생산성을 높여주는 강력한 프레임워크로, REST API 개발에 특화되어 있습니다.
프로젝트 개요 및 개발 과정 설명
프로젝트 목표: 스프링 부트, MyBatis를 이용하여 학생 정보를 CRUD(Create, Read, Update, Delete) 할 수 있는 REST API를 구현합니다.
개발 환경:
- 스프링 부트 버전: 2.7.12
- DB: H2
- 빌드 도구: Maven
- ORM: MyBatis
- API: RESTful API
개발 과정:
- 프로젝트 생성: 스프링 초기화 웹사이트 (start.spring.io)를 이용하여 스프링 부트 프로젝트를 생성합니다. 필요한 의존성 (스프링 웹, MyBatis, H2 데이터베이스 등)을 추가합니다.
- Entity 클래스 생성: 학생 정보를 나타내는 Student 클래스를 생성합니다.
- Mapper 인터페이스 생성: SQL 쿼리를 작성할 StudentMapper 인터페이스를 생성합니다.
- XML Mapper 파일 생성: StudentMapper 인터페이스에 대한 SQL 쿼리를 작성합니다.
- Service 클래스 생성: 비즈니스 로직을 처리할 StudentService 클래스를 생성합니다.
- Controller 클래스 생성: REST API 요청을 처리할 StudentController 클래스를 생성합니다.
- 테스트: 작성된 API를 테스트합니다.
CRUD 코드 예시 및 설명
Entity 클래스 (Student.java)
Java
@Data
@Entity
public class Student {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String studentId;
private String name;
private String phoneNumber;
private String address;
}
- @Data: Lombok 어노테이션으로 getter, setter, toString 등을 자동 생성합니다.
- @Entity: JPA Entity로 지정합니다.
- @Id: Primary Key를 지정합니다.
- @GeneratedValue: 자동 증가 값을 사용합니다.
Mapper 인터페이스 (StudentMapper.java)
Java
public interface StudentMapper {
List<Student> findAll();
Student findById(Long id);
int insert(Student student);
int update(Student student);
int deleteById(Long id);
}
- 각 메서드는 SQL 쿼리에 대응됩니다.
XML Mapper 파일 (StudentMapper.xml)
XML
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.StudentMapper">
<select id="findAll" resultType="com.example.demo.entity.Student">
SELECT * FROM student;
</select>
</mapper>
- namespace: Mapper 인터페이스의 패키지 경로를 지정합니다.
- select, insert, update, delete: 각 SQL 쿼리의 ID와 결과 타입을 지정합니다.
Service 클래스 (StudentService.java)
Java
@Service
public class StudentService {
@Autowired
private StudentMapper studentMapper;
public List<Student> findAll() {
return studentMapper.findAll();
}
// 나머지 메서드 구현
}
- @Service: 스프링 빈으로 등록합니다.
- @Autowired: StudentMapper를 자동 주입합니다.
Controller 클래스 (StudentController.java)
Java
@RestController
@RequestMapping("/students")
public class StudentController {
@Autowired
private StudentService studentService;
@GetMapping
public List<Student> getAllStudents() {
return studentService.findAll();
}
// 나머지 API 메서드 구현
}
- @RestController: REST Controller로 지정합니다.
- @RequestMapping: 요청 URL을 지정합니다.
- @GetMapping, @PostMapping 등: HTTP 메서드에 따른 요청 처리 메서드를 지정합니다.
설명:
- 위 코드는 간단한 예시이며, 실제 프로젝트에서는 더 복잡한 로직이 추가될 수 있습니다.
- MyBatis는 XML 또는 어노테이션을 이용하여 SQL 쿼리를 작성할 수 있습니다.
- 스프링 부트는 자동 설정 기능을 제공하여 개발 생산성을 높여줍니다.
- REST API는 JSON 형식으로 데이터를 주고받습니다.
다음 단계:
- 위 코드를 바탕으로 실제 프로젝트에 맞게 수정하고 확장합니다.
- 에러 처리, 보안, 성능 최적화 등을 고려하여 개발합니다.
- 스프링 부트의 다양한 기능 (AOP, 데이터베이스 트랜잭션, 스케줄링 등)을 활용하여 더욱 강력한 애플리케이션을 개발합니다.
'Spring( Framework )' 카테고리의 다른 글
스프링 부트, MyBatis 기반 자동차 관리 예제 프로그램 (0) | 2025.01.22 |
---|---|
이클립스 유용한 단축키 정리 (0) | 2025.01.22 |
MyBatis에서 매퍼 XML과 주석 기반 구성의 차이점 (0) | 2025.01.17 |
스프링부트와 MyBatis를 이용한 CRUD 프로젝트 (0) | 2025.01.17 |
API, JPA, MyBatis: 언제 어떤 것을 사용해야 할까요? (2) | 2025.01.17 |