MyBatis를 처음 배울 때 #{}와 ${} 중 뭘 써야 하냐는 질문에 "#{} 쓰세요, ${}는 위험해요"라고 배웠다. > 맞는 말인데, 왜 위험한지는 몰랐다. > JSP/서블릿 프로젝트를 다시 보고서야 알았다. 이건 MyBatis 문법 이야기가 아니라 JDBC 이
Spring Boot로 웹사이트를 두 번 정도 만들어보면서 Controller, Service, Repository, HTTP 요청/응답 등의 구조에는 어느 정도 익숙해졌다.그런데 JSP/Servlet 방식의 프로젝트를 다시 보니 비슷한 역할을 하는 코드가 훨씬 직접적
page, request, session, application. 네 개를 외우긴 했는데 "변수가 얼마나 오래 사느냐"로만 이해하고 있었다.그러다 "그럼 application에 로그인 정보를 넣으면 안 되는 이유가 뭐냐"는 질문에 답을 못 했다.수명만 보면 안 될 이유
JSP/Servlet을 공부하면서 가장 자주 만나게 되는 클래스가 HttpServletRequest와 HttpServletResponse이다.Spring을 먼저 공부했던 입장에서는 처음에는 두 클래스가 낯설었지만, 생각보다 단순하다.즉,라고 생각하면 된다.Spring에

Spring + MyBatis에 익숙한 상태에서 JSP/Servlet 프로젝트를 보면 DAO와 XML 파일의 역할이 헷갈릴 수 있다.특히 MemoProject의 sql.xml은 SQL이 들어 있기 때문에 MyBatis의 Mapper XML과 비슷해 보인다.평소 익숙했던
Spring Boot를 사용해서 웹 프로젝트를 만들어본 뒤 JSP/Servlet 프로젝트를 보면 처음에는 이런 생각이 들었다."Controller → Service → DAO → DB라는 구조는 비슷한데,Spring에서 보던 DispatcherServlet, Handl
지금 글들은 전부 "이 클래스가 뭐냐"는 사전(dictionary) 방식이다. 이걸 "요청 하나가 태어나서 죽을 때까지" 라는 서사로 바꾸면 흐름이 생긴다. 축을 정하면 새 글을 쓸 때마다 "이건 요청 생애의 몇 번째 구간이지?"로 자리를 찾을 수 있다.구간을 이렇게