왜 공공 프로젝트 URL은 .do로 끝날까공공기관 프로젝트나 오래된 Spring 코드에 투입되면 URL이 죄다 /member/list.do, /board/view.do처럼 .do로 끝나는 걸 보게 된다. 처음 보면 "do라는 파일이 실제로 있나?" 싶지만 그렇지 않다. Spring *.do URL 패턴에서 .do는 실제 파일이 아니라, 이 요청을 컨트롤러가 처리하라는 표시일 뿐이다.동작 원리는 간단하다. web.xml에서 ".do로 끝나는 요청은 DispatcherServlet(스프링 컨트롤러)이 받아라"고 매핑해 둔 것이다. 그래서 list.do라는 파일이 없어도 컨트롤러가 요청을 처리하고 화면을 돌려준다. 이 방식은 Struts 같은 과거 프레임워크 시절부터 이어진 관례이고, 전자정부 표준프레임워크(..
Categories
eGovFramework 3
Spring Framework와 Spring Boot는 어떤 관계인가먼저 오해부터 정리하면, Spring Boot는 Spring Framework를 대체하는 별개 기술이 아니다. Spring Framework 위에 올라간, 설정을 자동화해 주는 도구에 가깝다. Spring Framework가 엔진이라면 Spring Boot는 그 엔진을 쉽게 시동 걸 수 있게 묶어 놓은 패키지다. 그래서 Spring Framework Spring Boot 차이를 "둘 중 무엇이 더 좋은가"로 보면 어긋난다. "설정을 직접 하느냐, 자동에 맡기느냐"의 차이로 보는 게 맞다.전통 Spring(여기서는 Boot 없이 XML/Java Config로 직접 설정하는 방식)은 web.xml, root-context.xml, servl..
MyBatis란 무엇인가MyBatis는 SQL을 직접 작성하고, 그 SQL과 자바 객체를 연결해 주는 SQL 매퍼 프레임워크다. 쿼리는 개발자가 XML이나 어노테이션에 직접 쓰고, MyBatis는 그 쿼리에 파라미터를 넣고 결과를 객체로 매핑하는 역할을 맡는다. JDBC를 직접 다룰 때 반복되는 지저분한 코드(Connection, PreparedStatement, ResultSet 처리)를 걷어내 주면서도, SQL 자체는 개발자가 100% 통제한다는 점이 특징이다.여기서 자연스럽게 나오는 질문이 MyBatis JDBC JPA 차이다. 셋 다 자바에서 DB를 다루지만 접근 방식이 다르다. JDBC는 가장 낮은 수준의 표준 API, MyBatis는 SQL을 직접 쓰되 반복 코드를 줄여 주는 매퍼, JPA는 ..