인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

jk s님의 프로필 이미지
jk s

작성한 질문수

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

[생애 최초 JPA 사용하기]로 넘어가기 전 Mybatis 공부..? 관련 질문입니당(3번질문 추가)

해결된 질문

작성

·

700

·

수정됨

2

안녕하세요 공부하는 개발자 최태현님!

강의가 너무 재밌어서 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 같은 경우는 따로 다루고 계신 것 같지 않아서 독학으로 해보고자 하고 있는 상태입니다..ㅠ

그래서 문의 드리고자 하는 부분은,

  1. MyBatis를 따로 강의에서 다루지 않으신 이유!

  2. 도서관리 애플리케이션에 MyBatis를 적용해보려면?

    2-1. 혹시 강의 내용에 업데이트 해주실 수 있으신지...!?(영상이나 문서등의 강의자료)

  3. MyBaits 검색하다보니 DAO & VO 같은 것들을 보게되었는데, 본 강의에서 배운 [외부 API 호출- DTO | Controller - Service - Repository - 데이터베이스]것과 유사해보이는데, 어떤 차이가 있는지 궁금해요!

크게 이렇게 3가지 입니다... 사실 2번(+2-1)은 조금 양심에 찔리는 문의 내용같기도 하네요 ㅠ

2번은 사실 스스로 찾아서 적용해보는 노력으로 얻는 결과가 제일 본인에게 도움이 되는 것을 알고 있으나,, 생각보다 이게 쉽지 않더라구요 ㅠㅠ.. 계속 시도하다가 답답해진 마음을 조금 담아 이렇게 문의 글 드려봅니다..!!

오늘도 질의응답 퀄리티마저도 훌륭한 태현님의 강의를 들으며 공부 이어가고 있겠습니다~

미리 답변 감사드리며, 행복한 하루 보내시길 바랄게요~!

감사합니다 행복하세요~

 

답변 2

1

최태현님의 프로필 이미지
최태현
지식공유자

안녕하세요!!! jk s님~!!! 😊 항상 좋은 질문 남겨주셔서 감사드립니다!!! 👍

하나씩 답변드려볼게요!!!!

 

[1. MyBatis를 다루지 않은 이유]

DB접근 기술의 히스토리를 간단히 살펴보면

  1. JdbcTemplate을 이용한 SQL 작성하기

    1. native SQL 사용

  2. JdbcTemplate의 반복되는 코드를 줄이기 위한 MyBatis(iBatis) 사용하기

    1. SQL Mapper 사용 (이 역시 native SQL을 사용)

  3. 강의에서 소개드렸던 것과 같은 native SQL의 단점을 해결하기 위한 JPA 사용하기

    1. ORM 등장!

  4. 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님~!!! 또 궁금한 점 생기시면 편하게 질문 주시고, 오늘도 행복한 하루 되세요!!! 🙏

jk s님의 프로필 이미지
jk s
질문자

아이구 ㅠㅠ DB접근 기술의 히스토리까지 설명해주시구... 이번에도 명쾌하게 원하는 답변주셔서 너무너무 감사드려요!!

JPA와 Querydsl 조합부터 뿌수고 다시 돌아보아야겠네요 ㅎ.ㅎ

넘넘 감사드리고 행복한 하루되세요~

1

jk s님의 프로필 이미지
jk s
질문자

Repository = DAO , DTO = VO 라고 보면 되려나요 ㅎㅎ

jk s님의 프로필 이미지
jk s

작성한 질문수

질문하기