티스토리 뷰
※ myBatis에 대하여
myBatis는 Java(및 다른 언어)에서 DataBase(MySql 등)를 조금 더 유연하게 사용할 수 있도록 도와주는 Framework이다. Framework은 그냥 '도구'라고 생각하면 다소 이해하기 쉽다.
처음에는 이게 뭐하는건지 감이 안잡혀서 myBatis를 왜 쓰는가? 라는 의문이 들었다. 나랑 비슷한 고민을 하는 뉴비들을 위해 이 메모를 남긴다.
나는 주로 웹프로그래밍을 하는데 내가 생각했던 방식은 query문을 미리 작성해 놓고 DAO에 query를 보내서 결과값을 받아오고 출력하는 식으로 하면 되겠지 라고 생각을 했다.
그럼 DAO는 또 무엇인가? 라는 질문이 나올 수 있다. DAO는 쉽게 말해서 '게시판'이라고 보면 된다. 글을 쓰고 수정하고 지우고 조회하는 기능을 한데 모아 놓은 '클래스'라고 할 수 있다. DAO는 '게시판'하고 매우 흡사하다.
웹프로그래밍을 입문 아니 프로그래밍을 입문 할 때 주로 만드는 것이 이 '게시판'이다. 게시판이 만들기 쉽기도 하지만 잘 만들기는 어렵고 그 끝은 그누보드 같은 게시판 엔진, 워드프레스 같은 블로그 엔진 XE같은 커뮤니티 엔진 등 한도 끝도 없다.
처음에는 "hello world"만 나오는 게시판에서 블로그 엔진으로 가면 갈수록 프로그램이 하는 일이 많아지고, 하는일이 많아지고 유지보수를 하려면 코드를 유연하게 논리적으로 추상적으로 만들게 된다.
그렇게 하려면 필요한게 myBaits같은 '추상화 도구'라고 할 수 있다. 보통 Framework이라고 부르는데 그냥 도구라고 생각하면 이해하기가 조금 더 수월하지 싶다.
myBatis는 DataBase에 데이터를 쓰고 받아오는 것을 조금 더 추상적으로, 논리적으로 할 수 있게 도와주는 도구이다.
맨 처음 jsp로 게시판을 만들 때 query문을 작성 한다.
String query = "select * from bbs"
이런 식으로 작성을 할 것이다.
그리고 db와 connection을 맺고 Stmt구문을 이용해서 DB로 쿼리를 전송 한 후 ResultSet으로 결과값을 받아와서 Loop문으로 데이터를 출력하는 식으로 작성을 한다.
하지만 작성하다 보면 Query를 작성할 때 query로 parameter를 넘길 때 String형으로 작성하면 불편함이 많다.
따옴표 하나에도 에러가 나고
p_name + "') " +
"value('"+ p_key + "')" ·············
이런식으로 테스트 하는데도 시간이 걸리고 이런 쿼리가 여러번 들어가며 각각 parameter값도 다르기 때문에 app을 작성하는데 시간도 오래걸리고 불편하다.
근데 myBatis는 이러한 불편함을 다소 해결해 준다. 추상적이고 덜 직관적이기 때문에 몇가지 세팅도 해줘야 하고 메뉴얼 읽는데도 시간이 걸리는 myBatis를 굳이 사용하는 것이다.
myBatis를 이해하려면 interface(인터페이스) 개념도 이해를 해야 하고.. Factory 디자인 패턴에 대해서도 개념정도는 알 필요가 있다.
혹 다음에 포스트를 쓰게 되면 관련 내용을 이어서 쓰도록 하겠다.
어깨가 아파서 이만... 줄인다.
그럼 안녕~~~
'Language > JAVA' 카테고리의 다른 글
누구나 할 수 있는 Scala - 제2편 Scala interpreter(인터프리터) 사용하기 (0) | 2015.06.10 |
---|---|
누구나 할 수 있는 Scala - 제1편 Scala로 'Hello, World!' 출력하기 (0) | 2015.06.10 |
OOP에 대해 알아보자 - 제1편 OOP란? (3) | 2014.04.16 |
빌드(Build)란? Ant, Maven의 차이점 등 (9) | 2013.12.30 |
쉽게 쓴 Type Casting 이해하기 - 01 Type에 대해서 (0) | 2013.04.23 |
- Total
- Today
- Yesterday
- docker container whale
- docker container tissue
- 싱가폴
- 2017 티스토리 결산
- 도커티슈케이스
- docker container case
- 개발자
- 이직
- 도커티슈박스
- 도커각티슈케이스
- docker container tissue box
- shellscript
- docker container
- 도커각티슈박스
- Linux
- 도커컨테이너
- vim
- Sh
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |