중간 점검
책의 절반 이상을 끝내가는 시점에서 9장은 중간점검을 하는 파트이다
학습한 부분을 복기하면서 리팩토링을 진행하자
1. 로컬 개발 환경에서 톰캣 서버를 시작하면 서블릿 컨테이너의 초기화 과정이 진행되는데 소스코드에서 초기화되는 과정에 대해 설명하라
- Servlet Container는 웹 애플리케이션의 상태를 관리하는 ServletContext를 생성한다.
- Servlet Container와 ServletContext의 차이점
- 서블릿 컨테이너는 서블릿이 실행될 런타임 환경을 제공
- 서블릿 컨텍스트는 웹 응용프로그램을 나타내는 개체이며, 웹 응용프로그램이 배포될 때 서블릿 컨테이너에 의해 생성
서블릿 컨테이너는 서블릿의 실행을 관리하는 전체적인 환경
서블릿 컨텍스트는 특정 웹 애플리케이션을 나타내는 서블릿 컨테이너 내의 개체이며 구성 요소가 정보와 리소스를 공유할 수 있는 방법을 제공
localhost8080으로 접근해서 질문 목록이 보이기까지 소스코드의 호출 순서 및 흐름을 설명하라
질문하기 기능의 구현
로그인한 유저만 질문이 가능하도록 수정, 질문할 때 로그인한 유저 정보를 가져와 글쓴이 이름으로 사용하도록 구현하라
답변 목록을 정적인 HTML이 아니라 데이터베이스에 저장되어 있는 답변을 출력하도록 구현하라
자바 기반으로 웹 프로그래밍을 할 경우 한글이 깨진다. ServletFilter를 통해 해결하라
@WebFilter("/*")를 사용하면 해결가능
@WEBFILTER 어노테이션으로 필터 설정하기
멀티스레드 상황에서 문제가 발생하지 않도록 ShowController를 수정하라
답변을 추가할 경우 댓글의 수를 증가시켜라
특정 URL로 접근하면 질문 목록을 Json 데이터로 조회할 수 있도록 구현하라
답변 삭제 시에 화면을 깜빡이지 않고 구현이 가능하도록 AJAX로 구현하라
권한을 가진 사람이 질문 수정이 가능하도록 수정하라
DAO에서 데이터베이스 접근 로직을 구현할 때 사용하는 JdbcTemplate은 인스턴스를 여러 개 생성할 필요없다. 인스턴스를 하나만 생성하도록 구현하라
조건에 부합하게 질문 삭제 기능을 구현하라