-
Notifications
You must be signed in to change notification settings - Fork 0
1조 그룹 리뷰
HyeonSik Choi edited this page Jul 17, 2024
·
2 revisions
- JDBC 내부적으로 ConnectionPool을 지원해주고 있으며, H2 의존성을 추가한 경우 이를 쉽게 이용할 수 있음
- 예외처리를 최상단에서 한번에 해주는 것이 깔끔해 보임
- 파일 저장시 UUID를 사용하거나 Prefix로 게시글ID를 활용하여 고유성을 보장하는 방식이 좋아보임
- InnerHTML 취약점에 대해 주의해야함
- interface와 abstract 중 무엇을 어떤 상황에 사용할지에 대한 토의가 있었는데, 각자 취향에 따라 다른 것 같았음 (저는 가능한 interface를 사용하지만, 코드 재활용에 초점이 맞춰지는 경우 abstract 사용!)
- 인페이스인데 공통 구현이 많을 경우 추상 class로 바꾸는것도 고려해볼 만 하다
- Jdbc Connection pool을 사용할 수 있다
- StatusCode를 담은 에러처리 방식가 좋아 보인다
- Docker를 사용해서 h2를 사용하는게 참신했다
- 인터페이스의 default로 구현했을 때 코드가 깔끔해진다
배운점
DAO구현 시
- Dao 공통 인터페이스와, 쿼리 실행하는 부분과, 이후 처리하는 부분을 Functon 함수형 인터페이스와, 람다를 통해 공통 부분을 줄였던 부분이 인상깊었습니다.
사진 저장할 때 이름 쓸 방식
- 게시글 이름 정할 때, 게시글 ID 정하는 방식
Connection pool 구현
- JdbcConnectionPool이걸로 하면 connection 풀을 그대로 쓸 수 있음 (H2 의존성)
- Handler 인터페이스 내부에 handler 추상 메서드만 남기고 나머지는 감추고 싶다면 추상 클래스로 변경하여 기본 구현하는 방법도 있음
- JDBC 드라이버 내부에서 커넥션 Pool을 만들어서 반환하는 방법이 있다는 것을 배웠습니다.
- 도커를 이용해서 h2 서버 가동할 수 있다는 것이 신기했다.
- Jdbc 라이브러리에 기본적으로 제공하는 ConnectionPool을 사용하자
- 인터페이스 vs abstract 본인의 취향
- script 공격에 주의하자 !
[배운점]
TemplateLoader: 강제 캐스팅이 아니라, 렌더링에 필요한, 맞는 파라미터를 받을 수 있게
innerHTML: XSS 위험성
[느낀점]
interface의 default vs abstract class의 abstract 메서드: 모든 메서드가 추상이면 어떤 걸 써야 하는가?
- 취향이 반영될 수 있겠다.