본문 바로가기

분류 전체보기187

03. 타입과 추상화 타입과 추상화 추상화를 통한 복잡성 극복 추상화의 목적은 불필요한 부분을 무시함으로써 현실에 존재하는 복잡성을 극복하는 것이다. 이 책에서는 추상화를 다음과 같이 정의한다. 추상화 어떤 양상, 세부 사항, 구조를 좀 더 명확하게 이해하기 위해 특정 절차나 물체를 의도적으로 생략하거나 감춤으로써 복잡도를 극복하는 방법이다. 복잡성을 다루기 위해 추상화는 두 차원에서 이뤄진다. 첫 번째 차원은 구체적인 사물들 간의 공통점은 취하고 차이점은 버리는 일반화를 통해 단순하게 만드는 것이다. 두 번째 차원은 중요한 부분을 강조하기 위해 불필요한 세부 사항을 제거함으로써 단순하게 만드는 것이다. 모든 경우에 추상화의 목적은 복잡성을 이해하기 쉬운 수준으로 단순호하는 것이라는 점을 기억하라. 타입 1. 타입은 개념이다.. 2020. 10. 7.
02. 이상한 나라의 객체 이상한 나라의 객체 객체지향과 인지 능력 객체지향 패러다임의 목적은 현실 세계를 모방하는 것이 아니라 현실 세계를 기반으로 새로운 세계를 창조하는 것이다. 객체, 그리고 소프트웨어 나라 객체의 다양한 특성을 효과적으로 설명하기 위해서는 객체를 상태(state), 행동(behavior), 식별자(identity)를 지닌 실체로 보는 것이 가장 효과적이다 상태 왜 상태가 필요한가? 상태를 이용하면 과거의 모든 행동 이력을 설명하지 않고도 행동의 결과를 쉽게 예측하고 설명할 수 있다. 상태를 이용하면 과거에 얽매이지 않고 현재를 기반으로 객체의 행동 방식을 이해할 수 있다. 상태는 근본적으로 세상의 복잡성을 완화하고 인지 과부하를 줄일 수 있는 중요한 개념이다. 상태와 프로퍼티 모든 객체의 상태는 단순한 값과.. 2020. 10. 7.
01. 회원 등록 API API 개발 기본 회원 등록 package me.weekbelt.jpashop.api; @RestController @RequiredArgsConstructor public class MemberApiController { private final MemberService memberService; @PostMapping("/api/v1/members") public CreateMemberResponse saveMemberV1(@RequestBody @Valid Member member) { Long id = memberService.join(member); return new CreateMemberResponse(id); } @PostMapping("/api/v2/members") public Crea.. 2020. 7. 20.
세션 만료시 로그인 유지 방법 세션이 만료되더라도 로그인을 유지하는 방법 로그인 과정 사용자가 로그인 폼에서 로그인 유지 체크박스를 체크한 후 성공적으로 로그인을 하였을 경우 기본적으로 해당 로그인한 유저의 정보에 해당하는 세션 아이디뿐만 아니라 로그인 정보가 담긴 쿠키가 발행됩니다. 로그인 정보가 담긴 쿠키에는 사용자의 이름과 랜덤으로 생성한 토큰이 포함되어 있다. 사용자 이름과 토큰은 DB 테이블에 저장됩니다. 로그인하지 않은 사용자가 사이트를 방문하여 로그인 정보가 담긴 쿠키를 제시하면, DB에서 사용자 이름과 토큰이 조회됩니다. 조회한 사용자 이름과 토큰이 접속한 사용자의 쿠키와 일치하면 인증된 것으로 간주합니다. 그리고 사용된 토큰은 DB에서 제거되고 새로운 토큰이 생성되어 DB에 사용자 이름과 같이 저장됩니다. 그리고 다시.. 2020. 7. 2.