-
Notifications
You must be signed in to change notification settings - Fork 0
최현식 3주차 WAS 학습 일지
HyeonSik Choi edited this page Jul 15, 2024
·
1 revision
이번주는 세션을 통한 로그인을 구현하면서 관련 HTTP 헤더와 쿠키에 대한 규격 그리고 세션까지를 학습하고 적용해보는 시간이였습니다. 기존에 알고있던 내용들만으로는 실제 구현 상황에서 마주하는 문제들을 해결하는데 어려움이 있다는 걸 깨달았습니다.
- Domain 속성은 쿠키를 활용할 수 있는 서버를 지정하는 속성입니다. 별도로 명시하지 않는 경우 서버측의 도메인이 자동으로 설정되므로 우선은 빈칸으로 두어 이를 자동으로 작성되게 하였습니다.
- 쿠키관련 내용을 찾던 중에 Set-Cookie2라는 표준도 있다는 것을 알게되었습니다. 하지만 해당 표준은 사실상 사장되었기 때문에 지원하지 않아도 괜찮았습니다.
- 프로젝트 규모가 커지면서 각 클래스가 가지는 책임에 대해 고민이 많아졌습니다. 여전히 이를 고민하는 것은 쉬운 일이 아니지만 개인적인 기준은 잡혀가고 있는 것 같습니다. 1) 코드 라인이 50줄을 넘는 순간, 2) 수정이 필요할 때 여러 파일을 수정해야할 때, 3) 테스트하기 어렵다고 느낄 때 정도가 책임이 여러개라고 느끼는 순간입니다. 이 순간에 잠시 고민을 하고 클래스 분리를 고려합니다.
- 이번 주 내내 고민하던 내용인데, 결론은 Session 자체는 WebServer 자체에서 존재하는게 맞지만 그 활용을 하는 곳은 Application인 것 같다. 라는 것이였습니다. 따라서 Session 내부에서 활용할 데이터타입 등을 Application에서 지정하고 그에 따른 처리는 WebServer 내부적으로 진행되는게 맞다고 생각합니다. 시간이 된다면 이러한 구조로 수정을 진행하고 싶습니다.
synchorized 키워드를 붙이면 객체에 락이 걸리는 것이기 때문에 실제로 완벽히 동기화를 완벽히 보장하지 않는 다는 것을 배웠습니다. 자세한 내용은 실제로 실험해보면서 확인해봐야 할 듯 합니다.
- 관련해서 찾아보기!
- 평소에 저는 테스트를 거의 안짜는 편이지만 이곳에서는 정말 많은 단위 테스트를 작성했습니다. 하지만 통합테스트를 작성하지 않다보니 결과가 어떻게 나올지 불안해서 실제로 Main을 실행하고 QA를 하는 일이 매 변경사항마다 이뤄지고 있습니다. 이는 개발시간을 빼앗는 아주 좋지 않은 상황으로, 제가 생각하는 시나리오대로 동작하는 통합테스트가 절실히 필요한 것 같습니다. 다음주 미션을 확인하고 이러한 테스트를 추가해야겠습니다.