[김현창] #186
Merged
github-actions[bot] merged 38 commits intosofteerbootcamp-7th:codingbaraGofrom Jan 12, 2026
Merged
Conversation
- 렌더링 할 대상의 타입에 따라 Response 구분 - StaticContentResponse와 ViewResponse 병합 => StaticViewResponse
…r -> HttpResponseRenderer) [참고 코드리뷰](#32 (comment))
develop <- refactor/web/renderer/#31
- Socker->HttpRequest.body 변환 converter 개발 - DI 반영 - 테스트 반영
- HttpRequest 객체는 URI와 byte[]로 이루어진 body만 저장 - 필요에 따라 argument resolver에서 변환해서 사용
- web.dispatch 하위를 adapter와 argument로 분리
develop <- feat/http/requestbody/#34
develop <- feat/app/login-post/#37
- 응답 쿠키 인터페이스 정의 - 응답 쿠키 구현체 구현 - 핸들러 응답과 렌더러에 응답 쿠키 관련 기능 추가
- NPE 위험 제거 - 추상화 에러 제거
develop <- feat/http/cookie/#41
- SingletonContainer 추상 클래스 정의 - 제네릭을 사용한 싱글톤 컨테이너 구축
- HttpResponse를 미리 생성한 뒤 흐름에 따라 status를 선택할 수 있도록 변경
- 필터 인터페이스 ServletFilter 정의 - ServletFilter를 chain으로 엮어 사용하는 FilterChain 클래스 개발
- Request에 대한 로그를 남기고 로깅용 request id(rid)를 남기는 AccessLogFilter 구현
- 접근 제한 path에 대한 접근 방어 필터 추가
- 필터 타입 별 필터 구성을 설정하는 FilterConfig 클래스 개발 - Path 별 필터 타입을 지정하는 SecurityConfig 클래스 개발
- FilterConfig 클래스 오타 수정 - SecurityConfig 클래스 중복 호출 방어 로직 수정 - HttpRequest.rid 중복 생성 방지 로직 추가
) develop <- feat/web/filter/#20
- User의 컬럼 목록 변경 - Database의 User 저장 로직 변경(sequential key 추가)
- Redirect Renderer/WebResponse 추가
- 세션 엔티티 정의 - 세션 스토리지 개발
- AuthenticationInfo 인터페이스 정의 - 비로그인 유저용 구현체 UnanimousAuthentication 개발 - 로그인 유저용 구현체 UnanimousAuthentication 개발 - HttpRequest 클래스의 멤버에 AuthenticationInfo 추가
- 세션 정보 로딩 필터 개발 - 권한별 접근 제어 필터 개발
- 로그인 핸들러 개발 - 로그인 뷰 버튼 수정
- 해당 커밋에 포함되지 않은 로그아웃 핸들러의 의존성을 제거
develop <- feat/authentication/#22
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
작업
고민 & 배운점
Supplier
기존의 DI/싱글톤 관련 코드는 각 클래스를 정확히 1번 생성하는 것을 논리적으로 보장하지 못했다.
이를 쉽게 자동화 하기 위해 여러 방법을 고안하다 함수형 인터페이스인 Supplier를 사용해 해결하였다.
Supplier<T>: T 타입 인스턴스 하나를 공급하는 인터페이스위와 같은 형태를 하고 있다.
argument를 받지 않고 T타입 인스턴스를 공급하는(반환하는) get() 메서드를 가지고 있는 인터페이스이다.
Supplier를 사용하면서 얻게 되는 가장 큰 이득은 생성의 지연이다.
생성 방법을 정의하는 시점과 생성하는 시점을 분리해 원할 때 미리 정의된 생성을 실행할 수 있다.
함수형 인터페이스
이와 비슷한 함수형 인터페이스들이 몇개 더 있다.
이것들을 사용한다면 복잡한 로직을 쉽게 풀어낼 수 있을 것이다.
AI 활용