노승현
MyBatis (1) 본문
MVC 파트 분배해서 팀 작업.
“회원가입” 기능
M DB
-
V 사용자 입력 UI / UX
C M-V 이어주는 역할
- “제 자리에서 유효성을 검사하는 것” 이 중요한 이유는?
- Controller까지 거쳐가지 않기 때문에 서버 비용을 줄일 수 있기 때문에 중요하다!!
✅ MVC 별로 나누기 보다는 기능별로 나눠서 역할을 부여하는 곳이 만다.
본인 스스로가 MVC 파트 별로 구분지어 일하지 못 하면 살아남기 힘들어진다.
📌 데이터베이스 접근 관리의 진화 과정 (model 파트)
✅ 버전 1 : JDBCUtil 클래스를 생성
초기에는 JDBC를 사용하여 데이터베이스에 접근했다.
이때 JDBCUtil 클래스를 생성하여 JDBC 관련 기능알 한 곳에 모아 응집도를 높였다.
► JDBC 응집도를 높이기 위해 JDBCUtil 클래스를 생성
✅ 버전 2 : 오라클에서 MySQL로 이관 작업
오라클에서 MySQL로 DMBS를 변경하는 작업(이관 작업)을 진행했다.
이러한 작업은데이터베이스 시스템 전환 또는 업그레이드를 수행할 때 진행한다.
► DBMS를 변경하는 작업
✅ 버전 3 : JDBCTemplat 템플릿 패턴 도입
복잡하거나 반복되는 작업을 템플릿화 해둔 객체를 사용하는 ‘템플릿 패턴’을 추가(도입)했다
JDBC 코드에서 발생하는 반복적입 작업들을 템플릿화하여 개발자가 더 간편하게 데이터베이스에 접근할 수 있도록 한다.
► JDBCTemplate 템플릿 패턴
✅ 버전 4 : MyBatis 프레임 워크 도입
MyBatis 프레임워크는 JDBC 코드에서 발생하는 번거로움을 해소하기 위해 도입되었다.
: JDBC 코드에서 발생하는 번거로움
► SQL문이 JAVA 코드에 작성되어 있다. SQL문이 변경될 경우 재 컴파일을 해야한다.
A를 바꿀 경우 B도 같이 바꿔줘야 하는 상황일 때…
>> 결합도가 높다! 응집도가 낮다!라고 한다.
► 이를 위해 응집도를 높여야 한다! == 파일을 분리해야 한다.
MyBatis는 SQL문을 .xml 파일에 작성하고, 이를 설정으로 불러와 사용한다.
이렇게 함으로써 SQL과 JAVA 코드를 분리하여 응집도를 높이고,
SQL 변경 시 에도 JABA 코드르르 다시 컴파일할 필요가 없도로고 한다.
► SQL문이 JAVA 코드에 작성되어 있음
► SQL문에 변경이 발생되었을 때, 재 컴파일 해야하만 한다.!
➡︎ A를 바꿀 경우 B도 같이 바꿔줘야 하는 상황일 때
결합도가 높다! 응집도가 낮다!라고 한다
► 응집도를 높여야 한다! == 파일을 분리해라!
► SQL문을 .JAVA 파일 외부에 작성하자!!
== 프레임 워크 설정 파일을 .xml에 작성하자!
MyBatis 프레임 워크의 설정파일
== SQL을 저장하는 파일
== mapper.xml
📌 MyBatis 프레임워크의 설정 방법과 이점
- 응집도 높이기 :
SQL을 별도의 .xml 파일에 작성함으로써 자바 코드와 SQL문을 분리한다.
이는 코드의 응집도를 높여 유지 보수성을 높이고 개발자가 관련 기능에 집중할 수 있도록 한다.
- 결합도 낮추기 :
SQL문이 .xml 파일에 작성되어 있기 때문에 SQL문을 변경할 때
JAVA 코드를 다시 컴파일할 필요가 없다.
이는 시스템의 전반적인 유지 보수를 간편하게 만들어 유지 보수성을 높인다.
- id 개념 도입 :
MyBatis에서는 각 SQL문에 고유한 id를 부여한다.
이를 통해 SearchCondition고 같은 별도의 객체 없잉도 각 SQL문을 유일하게 식별할 수 있다.
이는 코드의 가독성과 유지 보수성을 높인다.
📌 MyBaits의 장점 정리
분리된 SQL :
- SQL문을 .xml 파일에 작성함으로써 JAVA 코드와 분리하여 응집도를 높인다.
유지보수 용이성 :
- SQL문을 변경하할 때 JAVA 코드를 다시 컴파일할 필요가 없어 결합도를 낮춘다.
고유한 식별자(id) :
각 SQL문에 고유한 id가 부여되는 SearchCondition과 같은 별도의 객체 없이도 SQL문을 식별할 수 있다.
Mybatis 프레임 워크를 활용하면
1. 응집도를 높일 수 있음
SQLdms .xml에 JAVA는 .java에 작성할 수 있음
2. 결홥도를 낮출 수 있음
SQL을 변경해도, JAVA 재컴파일이 필요없음
3. id 개념이 생겨서 SearchCondition이 필요없음
✅ 이렇듯 MyBatis 프레임워크를 사용하면 코드의 가독성과 유지 보수성을 향상시킬 수 있으며,
데이터베이스 접글 관련 작업을 효율적으로 관리할 수 있다.
'Spring' 카테고리의 다른 글
myBatis 로 필터검색 이관하기 (0) | 2024.04.10 |
---|---|
Validator (0) | 2024.03.13 |
Spring Controller 변환 과정 (0) | 2024.03.12 |
Spring 통합 질문 (0) | 2024.03.08 |
Spring 이관 및 boot 실행 (0) | 2024.03.08 |