SI에서는 mybatis이고자체 서비스/스타트업은 JPA 쓸 것 같아요SI에서는 JPA를 쓰기가 어려울 것 같아요.1.JPA를 아는 사람이 적음2.많은 SI가 레거시 코드를 바꾸는 것인데, 이미 만들어진 수많은 SQL들을 JPA로 바꾸기가 쉽지 않음.
https://ict-nroo.tistory.com/117이 글의 '실무 경험 공유' 보시면, 배민에서는 JPA, Hibernate, QueryDSL을 잘 사용한다고 하네요.SI에서는 ORM 자체를 잘 안 쓰죠.제 경험상으로도 주변에 아는 개발자가 없어서 못 쓰는데, 왜 안 쓰는지 물어보면 필요성을 못 느끼는 것 같았습니다.실제로도 JPA는 MyBatis보다 설정, 사용법이 어렵기 때문에 제대로 알지 못하면 도입하기가 힘들겠더라고요.
일반 서비스업체는 많이 쓰는 추세인 것 같은데 일반 SI에서는 힘들 것 같네요JPA를 잘 활용하기 위해서는 도메인 knowledge 와 해당 도메인을 코드로 풀어내는객체지향적 설계 능력이 필요한데 SI 특성상 원청의 발주를 수주 받아서 진행하고 늘 프리랜서(개발만 하고 빠지는)를 포함하는 인력 구성으로는오히려 JPA의 상대적(mybatis대비) 복잡성이 독이 될 수도 있을 것 같습니다.
JPA와 같은 ORM은 조금 단순화해서 표현하자면, 객체지향이 너무 익숙한 개발자가 DB 같은 걸 신경쓰지 않고 모든 걸 객체 설계로만 할 수 있으면 좋겠다는 생각에서 만든 도구입니다.그래서 아예 객체지향 설계 자체를 생략하고 디비 스키마와 화면 기획으로 시스템 설계를 때우는 방식의 우리나라 SI 환경에선 적합하지 않는 방법이라고 생각합니다.그런 환경에 도입할 경우 아마 'SQL을 자동으로 만들어 주는 도구' 정도로 오해해서 장점을 살리지 못할 가능성이 높습니다.