-
Notifications
You must be signed in to change notification settings - Fork 0
3주차 수요일 그룹 2
CodingLuizy edited this page Jul 10, 2024
·
1 revision
- Request 객체에서 쿠키를 사용할 때 Map<name, value>으로 관리할 것인지, Cookie array로 관리할 것인지
- checkedException을 uncheckedException으로 감싸서 예외를 던지는건 어떤지?
- checkedException을 사용해서 throw만 해버리면 메인 함수까지 예외가 던져져서 보기도 안좋음
- 중복 로그인을 체크할 수 있는 로직(Manager, Session 에서)이 있었으면 좋겠다.
- 인터페이스의 default 메서드를 만들면 좋을 것 같다
- router, handler 구조
- 멀티 스레드 환경에서 DB 동시성 문제 고려
- HTML을 불러와서 필요한 부분은 replace를해서 사용자 이름을 추가하는 부분이 인상적이었습니다.
- Jconsole을 이용해 메모리 사용량을 확인하고 CachedThreadPool 을 도입해서 더 효율적으로 메모리를 사용한 부분이 좋았습니다.
- context 라는 클래스를 만드는 부분이 새로웠습니다.
- RuntimeException을 상속받은 custom exception class를 활용하는 부분이 인상적이었습니다.
- 악의적인 요청을 고려하고 처리해 준 부분이 좋았습니다.
- PAYLOAD_TOO_LARGE
- REQUEST_HEADER_FIELDS_TOO_LARGE
- 동기화를 고려해서 ConcurrentHashMap의 메소드를 잘 활용한 부분이 좋았습니다.
- compute 와 lock 중 compute 를 사용하신 이유??
- blocking되면 context switching 오버헤드가 발생하고, compute를 사용하면 synchronized, CAS를 사용하면 CPU 오버헤드가 발생한다.
- 둘다 장단점이 있지만, 여기서는 CPU에 부담을 더 주는 방식으로 사용했다.
-
고정된 개수의 thread를 생성하지 않고 자원 상황에 따라 thread 생성하는 cachedThreadPool()
메서드를 알게 되었습니다. 하지만 사용에 따른 side effect도 고려를 해봐야 할 것 같습니다.
-
context 클래스를 이용하여 request, response를 묶어 관리하는 것 좋은 방법인 것 같습니다.
-
concurrentHashMap의 compute 메서드에 대해 알 수 있었습니다.
-
BufferedInputStream 말고 BufferedReader를 사용한 이유
-
설정 클래스(configure)를 따로 두어 Configurable 한 테스트를 만들 수 있음을 알게 되었습니다.
E2E 테스트를 하기 위해 했던 고민을 공유했습니다.
서로 다른 고민점을 가지고 리뷰에 임할 수 있어서 좋았습니다
- Indexhtmlhandle를 구분하 점이 좋았습니다.
- I/O가 많아서 테스트하기 어려웠는데 E2E 테스트를 한 부분이 인상깊었습니다. x2
- 특히, Server Configuration을 추상화해서 테스트에서 활용하는 부분이 좋았습니다.
- Configuration 클래스를 Server 시작할 때 넘겨주어 설정에 따라 테스트 하기 유용한 구조 좋습니다 !!
- executorService.submit() 을 왜 사용했나요?
-
execute
와submit
의 차이를 모를 때 사용하고 아직 고치지 않았습니다!
-
-
TestSocket
inputStream
과outputStream
만 사용해도 되는 거 아닌가요 ?- Socket 을 인자로 받는 부분을 테스트 하려고!
- 다른 분들이 공유 자원 동기화, 쓰레드 관리를 신경써서 하신 것 같아서 좋았습니다.