[능력 단위 평가]
이번 능력단위평가에서는 Spring Boot 기반 게시판 프로젝트를 구현하면서 MyBatis와 JPA를 함께 사용하는 방식을 적용하였다.
평가 요구사항에 맞추어
까지 모두 구현하였다.
게시판 프로젝트에서는 복잡한 SQL이나 직접 SQL을 제어해야 하는 기능은 MyBatis Mapper를 이용하여 구현하였다.
Mapper XML을 활용하여 SQL을 분리함으로써
등을 MyBatis에서 처리하도록 구현하였다.
단순 CRUD 기능은 Spring Data JPA Repository를 활용하였다.
JPA Repository를 이용하면 별도의 SQL을 작성하지 않아도 기본적인 CRUD 기능을 사용할 수 있다.
Repository 인터페이스를 생성하여
등의 기본 기능을 활용하였다.
평가 요구사항에 따라 테이블 생성 및 수정, 삭제를 위한 DDL도 함께 작성하였다.
프로젝트에서 사용하는 테이블을 생성하였다.
등의 테이블을 생성하였다.
등을 적용하였다.
테이블 생성 이후
필드 추가 및 수정,
제약조건 변경 등을 수행할 수 있도록 ALTER 명령문을 작성하였다.
프로젝트 초기화 및 테스트를 위해
테이블 삭제 명령문도 작성하였다.
DROP TABLE board;
DROP TABLE member;
DROP TABLE comment;
테이블 생성 이후 데이터사전을 조회하여
프로젝트에 생성된
정보를 확인하였다.
MySQL에서는 INFORMATION_SCHEMA를 활용하여 조회하였다.
SELECT *
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = DATABASE();
또는
SHOW INDEX FROM board;
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.VIEWS
WHERE TABLE_SCHEMA = DATABASE();
또는
SHOW FULL TABLES
WHERE TABLE_TYPE = 'VIEW';
Controller
↓
Service
↓
Repository (JPA)
↓
Mapper (MyBatis)
↓
Database
JPA는 기본 CRUD를 담당하고,
MyBatis는 SQL 제어가 필요한 기능을 담당하도록 역할을 분리하였다.
이번 평가를 통해
✔ MyBatis Mapper 작성 방법
✔ Spring Data JPA Repository 활용
✔ SQL과 ORM의 차이점
✔ DDL(Create, Alter, Drop) 작성 방법
✔ 데이터사전(Data Dictionary) 조회 방법
✔ Spring Boot에서 MyBatis와 JPA를 함께 사용하는 구조
를 직접 실습하며 이해할 수 있었다.
특히 JPA는 단순 CRUD를 빠르게 구현할 수 있었고, MyBatis는 SQL을 세밀하게 제어할 수 있어 두 기술을 상황에 맞게 함께 사용하는 방법을 익힐 수 있었다.
이번 능력단위평가는 단순한 게시판 구현을 넘어 MyBatis와 JPA를 함께 활용하는 실무적인 개발 방식을 경험할 수 있었던 평가였다.
또한 데이터베이스의 생성(Create), 수정(Alter), 삭제(Drop)뿐 아니라 데이터사전(Data Dictionary)를 활용한 인덱스 및 View 조회까지 수행하면서 데이터베이스 구조를 관리하는 방법도 함께 학습할 수 있었다.
이번 프로젝트를 통해 Spring Boot 기반의 게시판 구조와 ORM(JPA), SQL Mapper(MyBatis)의 역할을 이해할 수 있었으며, 앞으로 보다 복잡한 프로젝트에서도 상황에 맞는 데이터 접근 방식을 선택하여 활용할 수 있는 기반을 마련할 수 있었다.