티스토리 뷰

Language/JAVA

myBaits에 대하여

KyeongRok Kim 2014. 1. 2. 10:57

※ 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 디자인 패턴에 대해서도 개념정도는 알 필요가 있다.


혹 다음에 포스트를 쓰게 되면 관련 내용을 이어서 쓰도록 하겠다.


어깨가 아파서 이만... 줄인다.


그럼 안녕~~~

















공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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
글 보관함