민주야앙
12
2018-11-27 21:03:28
18
1108

JPA 가 좋나요 mybatis 가 좋나용 !?!?


오늘 회사에서 나온 주제인데 JPA 가 좋나요 mybatis 가 좋나용 !?!?

서로 좋다고 의견을 내시는분들이 많아서 여기분들은 어떻게 생각하시나해서용  

0
0
  • 댓글 18

  • joy
    587
    2018-11-27 21:24:28

    뒷일은 난 몰라 써보고 싶다는 내 욕심만 채울래 NO

    JPA를 책임질 리더가 있고 러닝커브를 기다려 줄 수 있다면 OK

    0
  • 즈루시
    10k
    2018-11-27 21:43:58

    지옥의 외인구단식 SI 에선 mybatis~

    팀단위 플젝이라면 JPA 쪽에 한표요


    결론은 둘 다 좋아요 기술이 발전할수록 JPA 형태로 가야 한다고는 보고 있는데 현실은 mybatis 인거쥬~*

    0
  • 더미
    10k
    2018-11-27 21:44:00

    그건 그냥 다른겁니다

    0
  • March
    1k
    2018-11-27 21:49:10
    변덕이 죽 꿇는듯한 변화무쌍 요구사항과 시시각각 변하는 화면설계서를 감당하기엔 JPA는 무리인듯 합니다
    0
  • zepinos
    16k
    2018-11-27 22:15:12

    그래서 전 중도인 척 하면서 jooq 를...

    1
  • 잠만보 닮은 개발자
    4k
    2018-11-28 00:11:44

    저희는 jdbc.... 맘같아선 jpa하고 싶지만 말단이라

    짬있으신분들이 굳이 도입할 필요성을 못느낀다고 하셨어요

    0
  • 앙앙이
    3k
    2018-11-28 01:14:55

    공개용 커뮤니티 버전으로는 mysql 고정이고

    오라클등등 특정 db 버전 유료 그리고

    공개용 커뮤니티 버전으로

    db 의존적 기능 사용에 제약있지만

    jooq 짱입니다.


    순수 jdbc 프로그래밍  장점은 로직 파악이 쉽다는것인데 jooq 는 이런 장점을 그대로 상속합니다.

    하여 몆달후 봐도 로직 파악하기가 mybatis 보다

    훨씬 쉽습니다.

    jpa 는 제가 경험이  없어 생략하겠습니다.

    한번 써 볼까 하다

    jpa 러닝커브 높다는 말이 허튼 말이 아닌구나 깨달아 포기하게 되네요.

    남들한테 말하기 싫은 

    하지만 정말로 jpa 가 싫은 이유를 구체적으로  말하면

    Jpa 갇혀 왜 이런 뻘짓을 해야 하나 자괴감이 듭니다. 솔직히 jpa하면 ejb 생각납니다.

    0
  • 돈까스
    1k
    2018-11-28 02:19:08

    학교에서 jdbc로 생코딩 프로젝트 하다가

    취업해서 1년차때 배운 spring+ibatis가 신세계라고 생각해서 얼마전까지 mybatis를 써왔습니다.

    그런데 몇달전에 맛본 jpa는 더 신세계였습니다.

    쿼리를 직접 작성하지 않아도 된다는 것이 얼마나 편리한지 알게 되었고요.

    dbms 의 종류에 따른 의존성을 제거할 수도 있고요.

    jpa 엔티티로 구현하기 어려운 것들은 그냥 애써서 jpa 방식으로 구현하려고 하지 말고,

    native query에 vo 매핑해서 처리하면 mybatis에 비해 그다지 어려울 건 없는 것 같습니다.


    일단 배워는 보세요. jpa가 java 표준이기도 하고,

    난 jpa도 알고 mybatis도 아는데, 여기서는 mybatis가 좋을 것 같아서 mybatis를 쓰는거랑

    난 mybatis 밖에 모르니까 여기서도 mybatis를 쓰는 거랑은 다르니까요.

    0
  • 도각도각
    3k
    2018-11-28 08:07:17
    우열을 가르기는 좀 그렇지만, JPA, JOOQ, MyBatis 셋중 하나만 쓸 수 있다면.. JOOQ를 선택하겠습니다..

    프로젝트 성격에 따라 다르겠지만..

    일단 사용을 해봐야 어떤 프로젝트에 어떤 기술이 유리할지 감이 옵니다.
    0
  • zepinos
    16k
    2018-11-28 08:22:54

    돈까스 님 // JPA 는 Java 표준이 아니라 Java ORM 표준입니다.

    0
  • 현파랑
    178
    2018-11-28 08:37:14

    JPA 는 join이 들어가는 등 복잡한 코드를 짤 때 너무 오랜 고민을 해야합니다. 그만큼 어려워요.

    대신 간단한 쿼리문은 별도의 설정 없이 한 줄만으로도 쉽게 구현되죠.


    mybatis는 하드코딩이지만 그만큼 복잡한 코드를 쉽게 구현할 수 있죠.

    쉬운 코드라도 하드코딩하고 이것저것 설정을 만져줘야 하구요.


    개발자, 회사마다 성격이 다르겠지만 뭐가 좋다, 별로다를 구분하면 안되겠죠?

    0
  • 배고파서서러워요
    1k
    2018-11-28 10:36:25

    JPA는 쿼리 난이도에 비례해서 난이도가 올라갑니다...

    솔직히 무작정 추천드리기는 좀-_-;;;

    익숙해지면 매우 좋은 방식이긴 합니다.

    JOOQ는 안써봤으니 패스....


    그러고보니 자바 자체를 요새 안했군요.... 

    다시하려면 일일이 다 찾아봐야할 판... 

    0
  • 봄이슬
    190
    2018-11-28 11:14:05

    개인적으로 하이버네이트 사용중인데 일단 객체지향적이며 따로 쿼리를 생각할 필요없이 로직에만 집중할수있어서 좋은거같아요 이외에도 장점 여러개가 있지만  ..

    0
  • 돈까스
    1k
    2018-11-28 11:23:24 작성 2018-11-28 11:30:09 수정됨
     
    zepinos 
     16k

    돈까스 님 // JPA 는 Java 표준이 아니라 Java ORM 표준입니다.

    제가 잘 몰라서 잘못된 표현을 사용했나보네요.

    그래서 소문자로 썼나봅니다.

    보통 명확하게 아는 내용을 쓸 때에는 대문자로 쓰거든요.


    근데, 명칭이 Java Persistence API 이고,  패키지명은 javax.persistence로 되어 있고,

    JSR에 들어있어서 Java 표준이라고 말한건데 Java 표준이라고 말하면 틀린 표현인가요?

    https://docs.oracle.com/javaee/6/tutorial/doc/bnbpz.html

    공식 문서에도 나와 있어서 표준이라고 한 건데요.

    물론 Java ORM 표준이라고 하는 것이 정확한 표현이라고 생각합니다만,

    Java 표준이라고 말한게 틀린건지 궁금합니다.


    실제로 'JPA 표준' 으로 구글 검색을 해보면 전부 'Java ORM 표준'이라는 표현을 사용하고 있는데,
    이와 비슷하게 Java XXX 표준이라고 사용하는 다른 예가 있는지도 궁금하네요.


    0
  • Joehispania
    12
    2018-11-28 14:37:09

    저는 개인적으로 JPA 보다 MyBatis 기반으로 해놓는것이 좋더군요.

    일다 MyBatis를 쓰면 내가 모든 쿼리를 다 짜야 하니까 적어도 쿼리 흐름은 모두 보이는데

    JPA는 흐음...select쿼리가 실행될 때 대체 무슨 구문이 실행되는거야;; 이런 느낌이라 좀 꺼려졌어요.

    그리고 결정적인건 JOIN문을 도데체 JPA로 어떻게 처리해야 하는지를 몰라서 포기했어요 ㅎㅎ

    0
  • D3Master
    655
    2018-11-28 15:18:39

    JPA를 한번 쯤 해보는게 나쁘지 않습니다.

    개발 생산성이 굉장히 좋아집니다.

    특히나 메시브한 환경이 아닌 이상은 말이죠..

    JPA를 공부하고 접한 뒤로 mybatis는 쳐다도 안보게 되었습니다...

    0
  • 잠만보 닮은 개발자
    4k
    2018-11-28 17:16:50

    JPA 쿼리 로그 보는 옵션 있을텐데..

    0
  • 김룰룰룰
    383
    2018-11-29 07:05:47 작성 2018-11-29 07:06:49 수정됨

    저도 돈까스님 의견에 동의하는게,

    JCP는 자바 플랫폼의 향후 버전 및 기능에 대한 정의에 관여하는 표준화 과정이고, JCP 과정에는 자바 스펙 요구서(Java Specification Request, 약자 JSR)을 이용하는데 JSR은 자바 플랫폼에 추가된 사양 및 기술을 기술하는 공식 문서이다. 

    라고 위키피디아에 정의돼있고 JPA 2.0이 JSR 317인 것으로 보아 JPA는 자바 언어에 들어가있다고 볼 수 있지 않을까요?

    javax 부분을 찾아보니 javax에서 x는 extensions를 의미하는 것 같아요. 그래서 library(jar)를 추가해야 하는 것 같고요 :) 비슷한 예로는 서블릿, ejb, jsp, jstl 등이 있는 것 같아요. 

    틀린 부분은 지적해주시면 감사하겠습니다 :)
    0
  • 로그인을 하시면 댓글을 등록할 수 있습니다.