티스토리 뷰

전에 다니던 회사에서 Spring boot와 jsp를 사용하는 API 유지보수를 했다. 

Spring boot와 Hibernate만 다루던 내가 Mybatis를 배울 좋은 기회였고, 

Query를 직접 짜며 DB에 관한 관심도 더욱 깊어질 수 있었다. 



직접 체험해보고 느낀 점을 적기 전에 간략하게 API에 관해 설명하자면 

Spring boot 1.5 이하 버전과 jsp, Maria DB 기반이며 N개의 모듈은 Util 모듈과 연결<Dependency>되어 있다. 

 

 Spring boot와 jsp의 문제점 - Tomcat

유지보수를 시작한 뒤 제일 먼저 난관에 부딪히게 된 것은 Tomcat의 설정 문제였다. 

Spring boot은 자체적으로 Tomcat 설정을 제공하는데 JSP만은 제공을 하지 않는다. 

이게 무슨 문제가 되는가? 하는 분들이 계실 텐데 이로 인해 xml 파일이 수정되고 maven이 import가 될 때마다 

Tomcat 설정이 날아가는 불상사가 생기게 되었다. 



한마디로 모듈마다 Tomcat Setting이 초기화된다고 볼 수 있다. 



아마 내 예상에는 Spring boot-stater-web 안에는 이미 Tomcat을 포함하여 제공하고 있지만 

jsp는 제공하지 않기 때문에 Tomcat을 사용하기 위해 Dependency로 등록한 tomcat-embed-jasper가 

충돌하는 걸로 추측하고 있다. 



참고로 말하자면 Spring boot은 jsp 템플릿 엔진 사용을 피하라고 권장되어 있다. 

 

 Mybatis와 Hibernate

Mybatis를 처음 접했을 때 무척 신선했다. 

Hibernate를 사용할 때 한 번도 작성해본 적 없는 Query 문을 써야 했고, 

객체가 아닌 HashMap에 데이터를 담아 보내는 식이었다. 

<물론 혼자 삽질하며 찾아본 결과 객체를 넘겨 사용하는 방법이 있었다.> 



Query를 직접 짜니 좋은 점은 Foreign Key를 굳이 설정하지 않아도 연관 관계 매핑이 가능하니 

DB 호출할 때 속도가 좀 더 빠르다는 점이다. 



또 Hibernate로 테이블의 특정 데이터를 호출할 경우 객체에 담아 가져와야 하지만 

Mybatis는 Query를 통해 Java 코드로 넘기기 전에 원하는 데이터만을 가져올 수도 있다. 


물론 Spring에서도 방법이 있지만 일단 내가 지금까지 썼던 방식은 어노테이션을 사용한 방법이었기 때문에 

차이점으로 와 닿았다. 

 

 결론

개인적으로는 Spring boot와 jsp를 같이 사용하는 건 좋은 방법은 아니라고 생각한다. 

API의 코드는 계속 변경될 것이고 그럴 때마다 Tomcat 설정이 항상 날아간다면 어떨까? 

정확한 건 실제로 체험한 나는 불편했다는 것이다. 



Mybatis와 Hibernate는 각각 장단점이 있었고, 어떤 기술이든 나쁜 것은 없다. 라는 점을 가장 많이 느꼈던 것 같다. 



특정 기술을 사용할 때 잘 맞지 않는 기술이 있는데,  

프로젝트에 가장 알맞은 기술을 찾아 적용하는 것이 중요하다고 생각한다. 

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