Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[HTTP 서버 구현하기 - 2, 3단계] 에어(김준서) 미션 제출합니다. #65

Merged
merged 14 commits into from
Sep 3, 2021

Conversation

KJunseo
Copy link

@KJunseo KJunseo commented Sep 1, 2021

안녕하세요 바다!
리팩토링과 쿠키, 세션 적용해봤습니다!

필터를 쓰듯이 요청에 맞는 컨트롤러를 찾기 전에 session을 할당해주고, 모든 로직이 끝나고 session 저장 & 쿠키에 담겨있지 않은경우 담아주는 식으로 구현해봤습니다. 실제 내부에서 세션을 호출할 때만 JSESSIONID를 생성하는식으로 하고 싶었는데 argumentResolver나 DI를 구현하지 못하여 현재는 모든 요청에서 request 헤더에 JSESSIONID가 없는 경우라면 생성해주는 식으로 하고 있습니다.
실제 세션 사용시에 세션을 생성하는 형식으로 변경하였습니다.

피드백 잘 부탁드려요~~ 감사합니다! 🙏🙏

@xrabcde xrabcde self-requested a review September 1, 2021 10:59
@sonarqubecloud
Copy link

sonarqubecloud bot commented Sep 3, 2021

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 8 Code Smells

92.5% 92.5% Coverage
0.0% 0.0% Duplication

Copy link
Member

@xrabcde xrabcde left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

안녕하세요 에어! 바다입니다 🌊
2, 3단계도 깔끔하게 잘 구현해주셨네요!! 커버리지 92% 👏👏

코드에 대해서는 크게 피드백 드릴 부분이 없지만 로컬에서 실행해보니
새로 회원가입 후 로그인 시 500으로 리다이렉트 되는 버그가 있는 것 같아요!
실행 화면 아래 첨부했으니 확인 한 번 부탁드립니다 ㅎㅎ

녹화_2021_09_03_15_51_34_452

다음 미션이 쫓아와서.. ^^;; 얼른 머지해드리겠습니다
리뷰가 많이 늦어 죄송합니다ㅠㅜ
다음 미션도 화이팅 !!!!~~~!! 💪💪💪💪💪

Comment on lines +30 to +32
} catch (GlobalException e) {
response.redirect("/" + e.getStatusCode().getCode() + ".html");
} catch (Exception e) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

오 statusCode로 redirect 시키는 방법 좋네요 👍

Comment on lines +3 to +6
public class Cookie {
private String name;
private String value;

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

오 Cookie를 Map<>이 아니라 객체로 만드셨군요 👀

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Map으로 파싱해서 저장해보라는 힌트를 보지 못했었네요ㅎㅎ..

Comment on lines +6 to +12
public static boolean isGet(HttpMethod httpMethod) {
return GET == httpMethod;
}

public static boolean isPost(HttpMethod httpMethod) {
return POST == httpMethod;
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

private final static String SEPARATOR = " ";

private final HttpMethod httpMethod;
private final String requestTarget;
private final HttpVersion httpVersion;

public StartLine(HttpMethod httpMethod, String requestTarget, HttpVersion httpVersion) {
public RequestLine(HttpMethod httpMethod, String requestTarget, HttpVersion httpVersion) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

코드를 보니 이 생성자를 쓰는 곳이 정적팩토리 메서드와 테스트코드 뿐이던데
테스트코드에서도 from을 사용하도록 수정하면 이 생성자를 private으로 가져갈 수 있겠네요!

@xrabcde xrabcde merged commit 18c7a45 into woowacourse:kjunseo Sep 3, 2021
@KJunseo
Copy link
Author

KJunseo commented Sep 3, 2021

회원가입 시 id를 저장해주지 않아 발생하는 문제였네요 ㅎㅎ
에러있는지 몰랐는데 로컬에서 해결했습니다!
이번 미션 리뷰해주셔서 감사합니다! 다음 미션도 화이팅!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants