[생애 최초 JPA 사용하기]로 넘어가기 전 Mybatis 공부..? 관련 질문입니당(3번질문 추가)
안녕하세요 공부하는 개발자 최태현님!
강의가 너무 재밌어서 23강까지 후딱 와버린 지금, 두번째 질문 드리게 되었네요 ㅎㅎ
오늘도 감사한 마음을 가지고 바로 본론으로 넘어가보도록 하겠습니다~
(2월 26일 오전 11시 50분 3번질문 추가)
22강까지 마치고 나서 데이터 접근 기술에 대해 더 알아보았는데요!
크게 아래와 같은 5가지 기술을 사용하고 있다고 하더라구요
SQLMapper
JDBC Template
MyBatis
ORM 기술
JPA, Hibernate
Spring Data JPA
Querydsl
이 중, JDBC Template과 JPA쪽은 본 강의에서 다루고 있고 Querydsl은 [실전!코틀린과 스프링부트로 도서관리 애플리케이션 개발하기(Java프로젝트 리팩토링)]에서 배울 수 있는 것 같은데,, MyBatis 같은 경우는 따로 다루고 계신 것 같지 않아서 독학으로 해보고자 하고 있는 상태입니다..ㅠ
그래서 문의 드리고자 하는 부분은,
MyBatis를 따로 강의에서 다루지 않으신 이유!
도서관리 애플리케이션에 MyBatis를 적용해보려면?
2-1. 혹시 강의 내용에 업데이트 해주실 수 있으신지...!?(영상이나 문서등의 강의자료)
MyBaits 검색하다보니 DAO & VO 같은 것들을 보게되었는데, 본 강의에서 배운 [외부 API 호출- DTO | Controller - Service - Repository - 데이터베이스]것과 유사해보이는데, 어떤 차이가 있는지 궁금해요!
크게 이렇게 3가지 입니다... 사실 2번(+2-1)은 조금 양심에 찔리는 문의 내용같기도 하네요 ㅠ
2번은 사실 스스로 찾아서 적용해보는 노력으로 얻는 결과가 제일 본인에게 도움이 되는 것을 알고 있으나,, 생각보다 이게 쉽지 않더라구요 ㅠㅠ.. 계속 시도하다가 답답해진 마음을 조금 담아 이렇게 문의 글 드려봅니다..!!
오늘도 질의응답 퀄리티마저도 훌륭한 태현님의 강의를 들으며 공부 이어가고 있겠습니다~
미리 답변 감사드리며, 행복한 하루 보내시길 바랄게요~!
감사합니다 행복하세요~
답변 2
1
안녕하세요!!! jk s님~!!! 😊 항상 좋은 질문 남겨주셔서 감사드립니다!!! 👍
하나씩 답변드려볼게요!!!!
[1. MyBatis를 다루지 않은 이유]
DB접근 기술의 히스토리를 간단히 살펴보면
JdbcTemplate을 이용한 SQL 작성하기
native SQL 사용
JdbcTemplate의 반복되는 코드를 줄이기 위한 MyBatis(iBatis) 사용하기
SQL Mapper 사용 (이 역시 native SQL을 사용)
강의에서 소개드렸던 것과 같은 native SQL의 단점을 해결하기 위한 JPA 사용하기
ORM 등장!
JPA가 가지고 있는 아쉬운 점을 채우기 위한 Querydsl 등장
으로 생각해볼 수 있습니다!!! 👍 물론 어떤 기술이 다른 기술보다 모든 경우에 나은 것은 아닙니다! 각각의 장단점이 있으니까요~~
강의에서 MyBatis를 다루지 않았던 이유는,
1) JdbcTemplate을 사용하는 것과 비슷하게 구성되고
2) native SQL이 가지고 있는 단점을 그대로 갖고 있기 때문이며
3) 대부분의 서비스업계에서는 JPA를 우선적으로 사용하고 있기 때문입니다.
강의를 구성할 때 너무 많은 개념을 한 번에 알려드리게 되면 학습효과가 떨어지다보니, MyBatis에 관한 내용은 우선 제외했던 것 같아요 ㅎㅎㅎㅎ
[2. 도서관리 애플리케이션에 MyBatis를 적용해본다면]
사실 저 역시 서비스업계에서만 경력을 쌓았다보니 MyBatis를 사용해본적은 없습니다! JPA로 개발을 시작했고 지금도 JPA와 Querydsl 조합을 사용하고 있죠!! 그래서 MyBatis 가이드를 말씀드리기에는 다소 부담스럽기는 하지만, 시간이 될 때
MyBatis를 간단히 적용하는 내용
MyBatis의 장단점
등을 잘 정리한 자료를 추가로 만들어보겠습니다 ㅎㅎㅎ 당분간은 시간을 내기 어려울 것 같고 매우 빠르게 추진하면 1개월 이내 이지 않을까 싶습니다 ㅎㅎㅎㅎ
[3. DAO와 VO]
아이고~~ jk s 님께서 말씀해주신것처럼 Repository = DAO / DTO = VO가 맞습니다!!!
제가 알고 있기로는 약간 옛날 용어(?)라고 알고 있습니다. 개념적으로나 역할적으로는 거의 같은데, 시간이 지나면서 Repository, DTO를 더 많이 쓰게 된 것 같더라고요!
확실히 인터넷에 검색하면 옛날 용어들이나 패턴들이 많이 섞여 있어 찾아보기 어려운 것 같습니다! 🥺
감사합니다! jk s님~!!! 또 궁금한 점 생기시면 편하게 질문 주시고, 오늘도 행복한 하루 되세요!!! 🙏
0
아이구 ㅠㅠ DB접근 기술의 히스토리까지 설명해주시구... 이번에도 명쾌하게 원하는 답변주셔서 너무너무 감사드려요!!
JPA와 Querydsl 조합부터 뿌수고 다시 돌아보아야겠네요 ㅎ.ㅎ
넘넘 감사드리고 행복한 하루되세요~
패키지 구분에 대해 궁금한게 있습니다
0
25
2
리액트 관련 질문이 있습니다.
0
65
2
스프링부트 버전
0
76
2
7강 강의를 들으려고 했는데 오류가 나서 서버가 안 켜지는거 같아요.
0
59
2
33강. UserLoanHistory의 관계성에 대한 질문
1
56
2
Java JDK 버전 문의의 건
0
135
2
ec2 에서 Linux버전이 달라져서 설치가 안되는것 같은데 자료 최신화좀 해주세요.
0
90
3
h2 console 접속했을 테이블 질문
1
67
1
ec2 서버에서 스프링 실행도 되고 인바운드 설정까지 했는데 index.html 안됨
0
79
2
15강. updateUser() 질문
0
56
2
깃허브 질
0
84
2
여기까지 다 끝냈다고 하셨는데
0
79
2
왜안될까요
0
72
2
MySQL 창이안ㄴ뜹니다
0
59
2
포스트맨
0
52
1
spring 개념적인 질문
0
72
2
인텔리제이 샘플코드 실행 안됨 오류
0
142
2
aws 배포할때 .env 파일에 저장한 환경변수에 관하여 여쭤볼게 있습니다
0
86
1
마이그레이션 오류입니다.
0
175
3
Whitelabel Error Page 오류가 났습니다.
0
166
2
안녕하십니까! 오류가 났습니다.. 도와주세요 ㅜㅜ
1
94
3
궁금한게 있습니다.
0
60
2
DTO 관련
0
70
2
궁금한게 있습니다!
0
69
2





