벌써 7월을 맞이했다.
오늘은 집안사정으로 인해 결석하였다.
수업 진도는 수업파일과 다른 학우들의 내용정리를 확인했을 때 JPA를 나간듯 하다.
그래서 일단 집에서 이전에 공부했던 hibernate와 mybatis의 차이와 어느 상황에서 사용하면 좋을지 정리했다.
1. Hibernate
Hibernate는 ORM 프레임워크로, 객체 지향 프로그래밍 언어의 객체를 관계형 데이터베이스의 테이블과 매핑한다. 즉, Java 객체와 데이터베이스 테이블 간의 변환을 자동으로 처리하여 개발자가 SQL을 직접 작성하지 않아도 되도록 해준다. 그리고 Hibernate는 JPA의 구현체 중 하나이다. java ee의 표준 스펙인 jpa의 표준에 맞춰져있다.
장점 :
db의 테이블을 자바 객체로 매핑하기 때문에 객체 지향적 접근에 용이하다.
반복적인 CRUD작업을 자동으로 처리한다.
DB의 종속에서 벗어난 코드를 작성 가능하다.
Hibernate를 사용하면 좋은 상황 :
객체 지향 설계를 중요시 하는 경우.
빠른 개발과 유지보수가 중요한 경우
DB변경 가능성이 있는 경우
2. Mybatis
MyBatis는 SQL 매퍼 프레임워크로 MyBatis는 SQL 쿼리를 직접 작성하고 XML 파일이나 어노테이션을 통해 쿼리와 Java 메서드를 매핑한다. 개발자는 SQL을 직접 작성하여 데이터베이스와 상호 작용한다.
장점 :
개발자가 직접 SQL을 작성하므로 복잡한 쿼리 최적화가능
XML 또는 어노테이션을 통해 SQL 매핑을 쉽게 설정
직접 작성한 SQL을 사용하므로 특정 상황에서 더 나은 성능을 발휘
Mybatis를 사용하면 좋은 상황 :
복잡한 SQL 쿼리문나 저장 프로시저를 많이 사용하는 프로젝트
데이터베이스 성능 최적화가 중요한 프로젝트
SQL에 대한 직접적인 제어가 필요한 프로젝트
그러므로 프로젝트의 규모나 복잡도, 성능 요구상황, 유지보수, db등을 고려해서 결정한다.
그러므로 두 방식을 모두 다룰 수 있는 개발자가 되어야 할 것 같다. 내가 생각하는 프로그래밍에서 가장 중요한것은 여러 기술을 상황에 맞게 사용하는 것이다. 그러기 위해 하는것을 늘리고 안다고 생각하는 것들을 제대로 알아야 하고 새로운 기술에 대한 관심도 지속적으로 가져야 한다고 생각한다.
'KOSTA교육 > 수업' 카테고리의 다른 글
[56/100] 240703 (0) | 2024.07.03 |
---|---|
[55/100] 240702 (0) | 2024.07.02 |
[53/100] 240628 (0) | 2024.06.28 |
[52/100] 240627 (0) | 2024.06.27 |
[51/100] 240626 (0) | 2024.06.26 |