-
Notifications
You must be signed in to change notification settings - Fork 0
7월 26일 랜덤 그룹 5조
HyeonSik Choi edited this page Jul 26, 2024
·
3 revisions
- 에러 핸들링을 forward하여 ControllerAdvice처럼 동작하게 만든 점이 인상깊었다.
- WebServlet 어노테이션을 만들지 않고 클래스를 구현하여 요청을 핸들링한 점이 인상깊었다.
- jstl 커스텀 태그 사용
- 다들 전부 다르게 구현한 점이 신기했습니다.
자주 보는 게시글이 보이게 POST cache를 만들 수 있다는점이 신기했다
init 할때 서블릿 config를 받아올 수 있어 테스트하기에 용이해줄 수 있다
web.xml 으로 에러 페이지를 지정해 줄 수 있어서 advice 처럼 할 수 있다
https://tomcat.apache.org/download-10.cgi
[고민한 것 들]
- error handling
- tomcat 설정 잡는 방법
[참고할 것 들]
- 오프라인 선점 잠금
- 회원정보 수정 시 SELECT → 검증 → UPDATE ? 한 트랜잭션 안에서 해야함?
- LRU 기반 캐시를 게시글에 적용한 모습이 인상깊었습니다.
- MySQL에서만 동작하는 쿼리가 있어 H2를 사용할 때 주의해야 할 필요가 있습니다.
- content를 출력할 때, jstl을 통한 출력인 c:out을 사용하면 스크립트 공격이 불가능하여 적용하면 좋을 것 같습니다.
- WEB-INF로 정적 파일을 감추는 것이 좋을 것 같습니다. 사용자가 직접 요청하는 js, css, img 등만 노출하면 될 것 같습니다.
- jstl 커스텀 태그를 등록하여 사용할 수 있는 것을 알았습니다. 후에 활용할 일이 생기면 참고하면 좋을 것 같습니다.
[구현 내용]
- 데이터 관리 객체에 DIP 적용
- 환경에 따라 설정값을 다르게 설정할 수 있도록, ENV 등 환경 변수 기반 설정 로직 구현
- 일괄 Exception 처리를 위해 HttpServlet을 상속한 abstract class를 정의하여 service를 오버라이딩할 예정
[배운 점]
- 성능 향상을 위해 게시글 조회 시 LRU 캐시 사용
- Servlet에 생성자 주입하기 위해 직접 Servlet을 등록
- XSS 방지를 위해 JSTL 대신 c:out 사용
- init(ServletConfig servletConfig)을 사용하면 의존 객체를 넣기가 용이
- 일관 예외 처리를 위해 servlet 내부에서 발생한 오류는 error-page 태그를 사용
- 디폴트 익셉션들은 직접 설정해야
- ubuntu에서는 mysql 테이블 대소문자 구분이 디폴트
- 이미 만들어졌으면 상태가 꼬이므로 삭제하고 다시 만들어야
[느낀 점]
- 다들 포인트가 다르셔서 듣는 재미가 있었습니다.
- 성능 관점에서 생각해보는 시야를 배웠습니다.