FREE SHIPING FOR OVER $100 - MOSTLY SHIP VIA USPS GROUND ADVANTAGE %D days %H:%M:%S
김재민
저자:김재민 임베디드,SI,솔루션등다양한분야의개발을경험한뒤여러스타트업을거쳐레진엔터테인먼트와우아한형제들에서서버개발자로근무했다.이후토스서버개발자로합류해토스페이먼츠기술이사까지역임했다.현재유튜브채널'제미니의개발실무'를운영하며개발현장에서쌓은경험과실무지식을공유하고있다.
·01장:시작하기1.1상황정의__1.1.1서비스규모와제약__1.1.2인프라구성__1.1.3이책에서의학습관점1.2프로젝트구조__1.2.1core-enum모듈·02장:상품목록2.1상품목록-요구사항느끼기__2.1.1요구사항분석__2.1.2기술방식결정__2.1.3협업과소통2.2상품목록-코드느끼기__2.2.1컨트롤러와페이징방식__2.2.2서비스코드와Finder설계__2.2.3엔티티설계__2.2.4매핑테이블과조회전략__2.2.5상품삭제전략2.3상품목록-개념정리__2.3.1격벽이란?__2.3.2개념도작성원칙__2.3.3개념의중요도구분__2.3.4참조관계와격벽의목적·03장:상품상세3.1상품상세-요구사항느끼기__3.1.1상품상세페이지구성__3.1.2검토해야할요구사항__3.1.3API설계전략__3.1.4조직상황별판단기준__3.1.5기술적요구사항검토3.2상품상세-코드느끼기__3.2.1쿠폰조회시점과API분리__3.2.2ProductFinder재사용과Price설계__3.2.3ProductSectionService분리__3.2.4RateSummary와rateVisible설계__3.2.5쿠폰타깃조회로직__3.2.6갓오브젝트안티패턴3.3상품상세-개념정리__3.3.1Product와격벽구조__3.3.2Price의개념적위치__3.3.3개념중요도와계층구분·04장:리뷰4.1리뷰-요구사항느끼기__4.1.1리뷰수정·삭제정책__4.1.2리뷰작성정책과고아리뷰__4.1.3별점산정기준__4.1.4리뷰보상정책__4.1.5정책변경에유연한설계4.2리뷰-코드느끼기__4.2.1리뷰조회와ReviewTargetType__4.2.2ReviewFinder와확장구조__4.2.3ReviewService와컴포넌트분리__4.2.4ReviewEntity와ReviewKey설계__4.2.5ReviewPolicyValidator와작성정책__4.2.6리뷰작성·수정·삭제정책과ReviewManager__4.2.7컴포넌트분리의장단점4.3리뷰-개념정리__4.3.1Order의존구조__4.3.2포인트참조와격벽__4.3.3리뷰기능의핵심흐름·05장:QnA5.1QnA-요구사항느끼기__5.1.1질문작성권한과정책__5.1.2대댓글구조와운영방식__5.1.3비공개기능설계__5.1.4API설계와데이터효율__5.1.5답변주체와운영방식5.2QnA-코드느끼기__5.2.1QnA컨트롤러구조와Answer분리__5.2.2QnA개념설계-Question과Answer의분리__5.2.3QnA서비스와findQnA구현__5.2.4CRUD구현과리포지터리직접사용패턴__5.2.5ReviewService와QnAService구조비교__5.2.6QuestionEntity와AnswerEntity설계__5.2.7설계검토와대안적구조5.3QnA-개념정리__5.3.1QnA개념구조__5.3.2Product의존관계__5.3.3개념도작성관점-테이블구조vs.개념적관계·06장:찜하기6.1찜하기-요구사항느끼기__6.1.1상품변경시데이터처리정책__6.1.2기능우선순위와비용효율__6.1.3찜항목유효기간설정__6.1.4더블클릭이슈와API설계__6.1.5찜하기와장바구니의차이6.2찜하기-코드느끼기__6.2.1컨트롤러구조와따닥이슈__6.2.2FavoriteService구현__6.2.3찜목록조회와30일기준__6.2.4addFavorite구현__6.2.5FavoriteEntity와favoritedAt설계__6.2.6소프트딜리트와removeFavorite6.3찜하기-개념정리__6.3.1의존관계단순화와순환의존방지__6.3.2단순성유지의중요성__6.3.3Product중심구조와사용자생략이유·07장:포인트7.1포인트-요구사항느끼기__7.1.1포인트적립정책__7.1.2포인트사용과차감정책7.2포인트-코드느끼기__7.2.1PointController와주요개념__7.2.2PointService조회구현__7.2.3PointHandler-earn과deduct__7.2.4포인트적립과차감호출시점__7.2.5낙관적락과초기잔액전제__7.2.6PointAmount와PaymentService연동7.3포인트-개념정리__7.3.1PointBalance와PointHistory의역할·08장:쿠폰8.1쿠폰-요구사항느끼기__8.1.1쿠폰개념의재정의-쿠폰과소유쿠폰__8.1.2유효기간·발급정책·할인방식__8.1.3쿠폰사용정책과결제연계__8.1.4현재규모에맞는설계수준8.2쿠폰-코드느끼기__8.2.1CouponTargetEntity와타깃조회__8.2.2쿠폰다운로드와OwnedCoupon__8.2.3download의책임소재-CouponServicevs.OwnedCouponService__8.2.4중복다운로드처리와개선방향__8.2.5OwnedCoupon조회와엔티티설계__8.2.6쿠폰정보변경시스냅샷전략8.3쿠폰-개념정리__8.3.1Coupon과OwnedCoupon구분__8.3.2OwnedCoupon의계층적위치·09장:장바구니9.1장바구니-요구사항느끼기__9.1.1유효기간·가격변경·수량관리정책__9.1.2주문연결흐름과다중상품처리__9.1.3가격계산및수량변경API설계__9.1.4재고관리연계여부9.2장바구니-코드느끼기__9.2.1CartController와Cart·CartItem개념__9.2.2CartServicegetCart와논리적카트__9.2.3addCartItem과소프트딜리트재활용__9.2.4수량수정과삭제처리9.3장바구니-개념정리__9.3.1Cart와CartItem의관계__9.3.2현실구조를활용한개념설계__9.3.3다중카트구조의확장가능성·10장:주문10.1주문-요구사항느끼기__10.1.1쿠폰·포인트적용정책__10.1.2다중셀러확장가능성__10.1.3재고확인시점__10.1.4주문데이터저장시점__10.1.5주문생성경로단순화10.2주문-코드느끼기10.3주문-개념정리__10.3.1격벽과의존성최소화__10.3.2반복적개념도접근법__10.3.3CartvsProduct우선순위__10.3.4현실세계를통한설계검증·11장:결제11.1결제-요구사항느끼기__11.1.1결제와PG사연동구조__11.1.2타임아웃과예외처리설계__11.1.3결제실패시나리오와재시도처리11.2결제-코드느끼기__11.2.1PaymentController와API구조__11.2.2결제생성과PaymentDiscount__11.2.3PaymentService의createPayment와중복결제방지__11.2.4paidAmount와0원결제처리__11.2.5콜백성공처리와주문검증__11.2.6PG승인API호출과결제완료처리__11.2.7트랜잭션히스토리와주문중심설계__11.2.8PG승인이후예외처리주의사항__11.2.9결제실패처리와상태전략11.3결제-개념정리__11.3.1주문vs결제중요도__11.3.2트랜잭션히스토리의위치__11.3.3주문·결제모듈분리원칙__11.3.4주문중심설계의확장성·12장:취소12.1취소-요구사항느끼기__12.1.1취소정책확인항목__12.1.2취소처리방식과요구사항다시보기12.2취소-코드느끼기__12.2.1CancelController와CancelRequest__12.2.2CancelService와PG취소흐름__12.2.3Payment상태미변경과Order중심처리__12.2.4CancelEntity분리설계__12.2.5삽입방식vs업데이트방식__12.2.6데이터조회효율과스캔범위__12.2.7쿠폰·포인트복원__12.2.8취소설계의두가지핵심원칙12.3취소-개념정리__12.3.1Payment와Cancel의격벽여부__12.3.2비즈니스상황에따른설계유연성·13장:정산13.1정산-요구사항느끼기__13.1.1정산기준일과송금주기__13.1.2취소건상계처리__13.1.3정산정책서의필요성__13.1.4수수료율과슬라이딩방식__13.1.5정산업무와개발자의역할13.2정산-코드느끼기__13.2.1SettlementBatchController와배치구성__13.2.2loadTargets와테이블분리의이점__13.2.3SettlementTargetLoader와가맹점매핑__13.2.4시간기반배치의한계와전략__13.2.5calculate배치와SettlementCalculator__13.2.6transfer배치와상계처리__13.2.7배치분리의안정성과디버깅이점13.3정산-개념정리__13.3.1SettlementTarget과격벽구조__13.3.2전처리계층으로서의SettlementTarget__13.3.3Transfer(지급)미구현처리·14장:전체개념정리__14.1.1전체개념도분석__14.1.21안:상품기준·주문기준분리__14.1.32안:내부·외부영역분리__14.1.43안:영역과선형전략마무리그리고다음스텝에대하여예비개발자분들에게드리는말
*이책에서다루는내용*·요구사항의맥락을파악하고더나은질문을찾아내는방법·요구사항이코드로구현되는과정과선택의근거를살펴보는방법·요구사항을구현하는여러방법과각선택에따르는트레이드오프·핵심개념을통해지금만들고있는소프트웨어의구조와흐름을느끼는방법·작성된코드를되짚으며설계의도와구현과정을정리하는방법·상품목록과상품상세기능의모델링및구현·리뷰와Q&A,찜하기기능의설계·포인트와쿠폰의정책및데이터처리·장바구니와주문흐름의구현·결제와취소과정에서고려해야할사항·커머스정산의기본구조와설계