Skip to content

3주차 금요일 그룹 2

lass9436 edited this page Jul 12, 2024 · 9 revisions

고동훤

[배운점]

  • Snippet을 이용한 간이 template 엔진을 구현하는 방안
  • css의 background-img를 이용한 image 변경

[느낀점]

  • 간편한 설정을 위해 chain-pattern으로 설정할 수 있는 Configuration class를 만들어두면 좋을 것 같다.
  • 횡단관심사를 처리할 Filter, (유연한 RequestHandlerMethod 구현을 위한) Adapter 필요

이호석

고민한 부분

  • 발표하면서 도메인이 있으면 안되는 영역에 도메인이 침투해 있는 코드가 맘에 들지 않았습니다
  • 의존성의 방향을 확실하게 단방향으로 끊어보는 시도도 재미있지 않을까 생각됩니다.
  • 다음주가 걱정됩니다.. ㅠㅠ

배운점

  • E2E 테스트를 고민하고 있었는데 별도의 서버로 분리해서 만들어볼 수 있다는 점이 인상 깊었습니다!
  • CSS 자체에 백그라운드 이미지를 적용할 수 있다는게 신기했습니다!
  • 모듈을 분리해 의존성의 방향 자체를 강제하는 시도가 재밌었습니다!

이영민

메인 서버와 스레드 풀

  • 메인 서버가 스레드 풀 안에서 작동하는 구조가 신기했습니다.
  • 템플릿 엔진이 순서대로 파싱하여 동적으로 HTML을 생성하는 부분이 인상깊었습니다.
  • Private static method로 thread-safe한 구현한 부분이 인상깊었습니다.
  • 정적 로딩(초기 로딩)과 동적 로딩(필요 시 로딩)을 활용하여 메모리 효율성을 높인 점이 인상깊었습니다.
  • 서버에서 accept가 터지더라도 메인 서버 유지와 다음 accept 가능성을 고려하는 것이 좋다는 의견이 있었습니다.

필터 리스트와 템플릿 엔진

  • 필터 리스트가 재귀 필터 체인은 아니지만, 리스트가 하나씩 돌면서 스택이 쌓이는 구조였습니다.
  • String.format()을 이용하여 템플릿 엔진을 간소화한 부분이 인상깊었습니다.
  • Thread Local에 httpRequest와 httpResponse를 저장하는 구조가 좋았습니다.
  • synchronized를 config factory에서 사용하여 오버헤드를 피한 부분이 인상깊었습니다.
  • Lazy initialization을 통해 자식 클래스의 final 초기화 문제를 해결한 부분이 인상깊었습니다.
  • 서버 소켓을 0으로 설정하여 빈 포트를 자동으로 찾아 테스트 실행한 점이 좋았습니다.
  • 서버를 띄운 후 약간의 시간을 쉬어 서버가 안정적으로 뜰 수 있도록 한 부분이 인상깊었습니다.

기타

  • sendRedirect를 구현하여 HttpResponse 객체가 스스로 헤더를 다루게 한 점이 인상깊었습니다.
  • 동적 메서드 리턴 타입을 고려한 부분이 인상깊었습니다.
  • 어댑터를 구현하여 핸들러 지원 여부를 체크한 점이 좋았습니다.
  • HttpRequest 생성을 인터페이스 템플릿으로 만들어 테스트를 편하게 한 점이 인상적이었습니다.
  • 서브 모듈과 Mock 객체를 사용하여 테스트를 효율적으로 진행한 부분이 인상깊었습니다.

김현준

배운점

  • 싱글톤 컨테이너 구성을 static 클래스로 만들 수 있다는 아이디어를 알게 되었어요.
  • Map.computeifabsent → 재귀 쌓이면 자바 버전에 따라 죽어버릴 수 있다는 사실을 알게 되었어요.
  • 테스트를 어떻게 하면 좋을지에 대해 배웠어요.

느낀점

  • 정말 다양하게 구현을 했어서 다양한 아이디어를 얻을 수 있는 시간이였어요.
  • css로 백그라운드 이미지를 구성할 수 있다.

박정제

  • 컨테이너를 구현하는 방법으로 Static class Holder를 만들어서 할 수 있을것 같다
  • 인터페이스로 Fixture를 만들어서 테스트를 건편하게 해볼 수 있음을 알게 되었다
  • 테스트의 when절은 한줄인게 보기 좋다

Template 만들기

  • String.format()을 사용하여 간단한 템플릿 엔진을 만들었습니다.
  • /template 디렉터리 아래에 html 파일을 만들어 놓고, 해당 파일을 읽어와서 String.format()을 사용하여 동적으로 html을 생성합니다.

nameBtn.html

<li class="header__menu__item">
    <a class="btn btn_contained btn_size_s" href="/login">%s 님</a>
</li>

필요한 값을 동적으로 채우기

String.format(nameBtn.html, user.name);

최세민

인상 깊었던 점

  • 동적 html에 String.format을 사용한 부분이 창의적이라고 생각했습니다. 동적인 HTML을 템플릿을 사용할 때 injection을 주의해야 할 것 같다고 생각 했습니다.
  • Configuration 클래스를 만들어서 테스트할 때 Configuration 클래스를 상속받아 테스트를 유동적으로 한 부분이 좋다고 생각했습니다.
  • ConcurrentHashMap을 쓸 때 재귀적으로 put을 하게 되면 recursive update 오류가 발생할 수 있으니 조심해야한다는 것을 새로 알았습니다.
  • Adapter를 이용해서 ModelView를 HttpResponse로 만들어 준 것이 좋았습니다.
  • 동적인 html이 외부로 안 나가면 좋겠다고 생각해서 template 폴더에 배치한 부분이 좋았습니다.

느낀점

  • 코드리뷰를 많이하다보니 전체적인 흐름이 비슷해져서 다른 분들의 코드를 이해하기가 수월해졌습니다!
  • 코드리뷰할 때 궁금했던 주제, 토론해볼 주제를 생각해놓으면 좋을 것 같습니다.

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

개인 활동 페이지

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

그룹 활동 페이지

🎤 미니 세미나

미니 세미나

🤔 기술 블로그 활동

기술 블로그 활동

📚 도서를 추천해주세요

추천 도서 목록

🎸 기타

기타 유용한 학습 링크

Clone this wiki locally