Chapter07. 은나현 #36
nan0silver
started this conversation in
리뷰
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
🆕 새롭게 알게 된 점
📖 핵심 내용 요약
객체지향 설계 안의 3가지 관점
손님,바리스타,주문서,커피같은 단어는 도메인 개념에 해당.Barista는makeCoffee(Order)라는 기능을 제공한다는 명세는 있지만, 어떻게 만드는지는 아직 모른다.makeCoffee()내부에서 어떤 레시피로 커피를 만들고, 어떤 방식으로 완료 여부를 체크하는지 구현.👁️🗨️ 소셜 로그인 기능을 객체지향 3가지 관점으로 보기
✅ 1. 개념 관점 (Conceptual Perspective)
등장하는 주요 개념
사용자(User)소셜 로그인 제공자(OAuthProvider)인가 코드(Authorization Code)액세스 토큰(AccessToken)세션(Session)또는JWT개념 간 관계
👉 이 단계에서는 "GoogleLogin", "KakaoLogin" 같은 구체 이름은 등장하지 않음.
대신 "소셜 제공자", "인증 토큰", "사용자 프로필" 등의 역할 중심 개념을 설정
✅ 2. 명세 관점 (Specification Perspective)
예:
OAuthLoginService인터페이스역할 분리 예시
-> 이것이 바로 역할 중심의 명세 설계
클라이언트 코드 (예: Controller)
OAuthLoginService의login(code)메서드에만 의존한다.login(code)메서드가 code를 주면 사용자 정보를 준다는 "기능 약속"을 믿고 호출하고 있다.login(code)라는 메시지를 보냈을 때, 그 책임을 수행할 것이라는 계약만 알고 있다.👉 이 단계에서는 "무엇을 할 수 있는가"를 정의.
"어떻게" 토큰 요청하는지는 중요하지 않음.
✅ 3. 구현 관점 (Implementation Perspective)
👉 이 단계에서는 명세 관점에서 정의한 기능을 실제 HTTP 요청/응답, 파싱 등의 코드로 실현함.
❓ 어려웠거나 이해가 부족했던 부분
🌟 인상 깊었던 책의 내용
📌 기억에 남는 문장
📚 관련 아티클 & 추가 자료
🔗 추천 자료
All reactions