Skip to content

최현식 3주차 WAS 학습 일지

HyeonSik Choi edited this page Jul 15, 2024 · 1 revision

이번주는 세션을 통한 로그인을 구현하면서 관련 HTTP 헤더와 쿠키에 대한 규격 그리고 세션까지를 학습하고 적용해보는 시간이였습니다. 기존에 알고있던 내용들만으로는 실제 구현 상황에서 마주하는 문제들을 해결하는데 어려움이 있다는 걸 깨달았습니다.

Set-Cookie에서 Domain?

  • Domain 속성은 쿠키를 활용할 수 있는 서버를 지정하는 속성입니다. 별도로 명시하지 않는 경우 서버측의 도메인이 자동으로 설정되므로 우선은 빈칸으로 두어 이를 자동으로 작성되게 하였습니다.

Set-Cookie2

  • 쿠키관련 내용을 찾던 중에 Set-Cookie2라는 표준도 있다는 것을 알게되었습니다. 하지만 해당 표준은 사실상 사장되었기 때문에 지원하지 않아도 괜찮았습니다.

객체와 책임에 대한 고민

  • 프로젝트 규모가 커지면서 각 클래스가 가지는 책임에 대해 고민이 많아졌습니다. 여전히 이를 고민하는 것은 쉬운 일이 아니지만 개인적인 기준은 잡혀가고 있는 것 같습니다. 1) 코드 라인이 50줄을 넘는 순간, 2) 수정이 필요할 때 여러 파일을 수정해야할 때, 3) 테스트하기 어렵다고 느낄 때 정도가 책임이 여러개라고 느끼는 순간입니다. 이 순간에 잠시 고민을 하고 클래스 분리를 고려합니다.

Session은 WebServer에 있는것이 좋을까? WebApplicationServer에 있는 것이 좋을까?

  • 이번 주 내내 고민하던 내용인데, 결론은 Session 자체는 WebServer 자체에서 존재하는게 맞지만 그 활용을 하는 곳은 Application인 것 같다. 라는 것이였습니다. 따라서 Session 내부에서 활용할 데이터타입 등을 Application에서 지정하고 그에 따른 처리는 WebServer 내부적으로 진행되는게 맞다고 생각합니다. 시간이 된다면 이러한 구조로 수정을 진행하고 싶습니다.

Synchorized 키워드가 동시성 제어를 100% 보장하지 않는다.

synchorized 키워드를 붙이면 객체에 락이 걸리는 것이기 때문에 실제로 완벽히 동기화를 완벽히 보장하지 않는 다는 것을 배웠습니다. 자세한 내용은 실제로 실험해보면서 확인해봐야 할 듯 합니다.

Spring SseEmitter API와 OSIV 설정

  • 관련해서 찾아보기!

아무래도 통합테스트가 없으니 불안하다.

  • 평소에 저는 테스트를 거의 안짜는 편이지만 이곳에서는 정말 많은 단위 테스트를 작성했습니다. 하지만 통합테스트를 작성하지 않다보니 결과가 어떻게 나올지 불안해서 실제로 Main을 실행하고 QA를 하는 일이 매 변경사항마다 이뤄지고 있습니다. 이는 개발시간을 빼앗는 아주 좋지 않은 상황으로, 제가 생각하는 시나리오대로 동작하는 통합테스트가 절실히 필요한 것 같습니다. 다음주 미션을 확인하고 이러한 테스트를 추가해야겠습니다.

👼 개인 활동을 기록합시다.

개인 활동 페이지

🧑‍🧑‍🧒‍🧒 그룹 활동을 기록합시다.

그룹 활동 페이지

🎤 미니 세미나

미니 세미나

🤔 기술 블로그 활동

기술 블로그 활동

📚 도서를 추천해주세요

추천 도서 목록

🎸 기타

기타 유용한 학습 링크

Clone this wiki locally