묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결제미니의 개발실무 - 커머스 백엔드 기본편
SettlementTargetRepository Jquery 질문
@Query( """ SELECT new io.dodn.commerce.storage.db.core.SettlementTargetSummary( settlement.merchantId, settlement.settlementDate, SUM(settlement.targetAmount), COUNT(settlement.id), COUNT(DISTINCT settlement.orderId) ) FROM SettlementTargetEntity settlement WHERE settlement.settlementDate = :settlementDate GROUP BY settlement.merchantId, settlement.settlementDate """, ) fun findSummary(settlementDate: LocalDate): List<SettlementTargetSummary>이부분에서 where절에서 이미 settlementDate를 필터링하고 있는데 group by에서 settlementDate가 필요한 이유가 따로 있을까요? 어차피 parameter로 넘어온 settlementDate만 조회가 되는 로직이라 Group By에서는 필요가 없어보여 질문 남깁니다.
-
미해결제미니의 개발실무 - 커머스 백엔드 기본편
부가 기능을 이벤트 핸들러로 분리하는 기준이 있을까요?
addReview()를 보면 리뷰 저장 이후에 포인트를 지급하는 로직이 함께 들어가 있는데, 제 기준에서는 포인트 지급이 리뷰 작성의 핵심 기능이라기보다 부가 기능처럼 느껴졌습니다.그래서 이런 부분은 서비스 내부에서 직접 호출하기보다 이벤트를 발행하고, 별도의 핸들러에서 처리하는 방식으로 분리해도 괜찮지 않을까 궁금했습니다.(다만 제가 이걸 정말 "부가적인 책임"으로 봐도 되는지 조금 헷갈리기도 합니다.)만약 실무에서는 이런 부가적인 로직을 서비스 메서드 안에 함께 둘지, 아니면 이벤트/이벤트 핸들러 형태로 분리할지를 어떤 기준으로 판단하시는지 궁금합니다.또는 이런 경우 이벤트 외에 다른 방식으로 설계하시는 경우도 있는지 궁금합니다.
-
해결됨제미니의 개발실무 - 커머스 백엔드 레거시와 AI 활용편
null 을 많이 허용하지 않는 이유
안녕하세요~ 강의 중 강사님께서 null을 되도록 허용하지 않는 것으로 보였습니다.공감이 되었는데, CancelEntity.orderItemId 와 같은 곳에 -1 을 설정한 다거나 QnA.answer 에 Answer.EMPTY 를 설정하는 것은 어떤 장점이 있을지 궁금합니다.저는 위와 같은 경우는 해당 필드를 nullable 로 하는 것이 이 필드는 없을 수 있다는 것을 더 명확하게 나타낼 수 있다고 생각했습니다. 좋은 강의 감사합니다!
-
해결됨제미니의 개발실무 - 커머스 백엔드 기본편
엔티티의 pk 를 0으로 초기화하시는 이유가 있을까요??
자바에서 클래스 필드 타입을 참조타입과 원시타입의 차이를 공부하던 중에둘의 차이가 null 값이 필요하냐 필요하지 않냐로 배웠습니다..그런데 엔티티 pk의 경우에는jpa에서 새 객체와 저장된객체를 구분할 때 null 을 본다고 들었습니다.그래서 참조형 Long을 쓰는 구나 라고 생각을 정리했어요!! 헌데 코틀린으로 쓰신 코드에서는 Long타입을 선언하시고 0으로 초기화해주시는 이유가 궁금합니다!코틀린에서는 nullable하게 할순있지만 기본적으로 null이 불가능하다고 들었긴한데.. 조금 헷갈립니다!언어적인 부분에서 jpa가 다르게 동작하는것인지 아니면 제가 좀 미숙하게 이해한건지 궁금합니다!
-
해결됨제미니의 개발실무 - 커머스 백엔드 기본편
제미니님 안녕하세요!
제미니님 이커머스 강의와 프로젝트 코드들을 참고하면서 게시판을 만들어보고 있는 중입니다!현재는 게시물 정보만 페이징 방식으로 구현해놓았습니다.근데 게시글 목록을 보여줄 때 한 게시글 당조회수, 좋아요수, 댓글 수, 유저닉네임 등.. 표시가 되야해서 좀 헷갈립니다. 한 API에서 전부 조합해서 내려준다고하면페이징된 게시글 10개를 먼저 조회하고조회한 게시글의 ID를 기반으로 조회수와 좋아요를 따로 조회한 뒤에 같이 내려주는 방식이 좋을까요?
-
해결됨제미니의 개발실무 - 커머스 백엔드 레거시와 AI 활용편
JetBrains All Products Pack 3개월 이용권 신청 관련 문의
안녕하세요. 이틀 전에 "[인프런] 제미니 개발실무 수강생 전용 Junie 이용권 증정"라는 제목으로 메일이 왔는데요.JetBrains의 후원으로, 강의에서 활용하는 AI 개발도구 Junie를 체험해 볼 수 있는 All Products Pack 3개월 이용권을 제공받기 위해 구글폼을 통해 신청하면 확인 후 쿠폰 코드를 발급해 주신다는 메일을 받았습니다.마감이 오늘까지라서 오늘 구글폼으로 들어가 봤더니 선착순 신청이 마감되어 조기 종료되었다고 뜨고 있습니다. 메일 내용으로 봤을 땐 선착순이라는 내용은 없었는데, 혹시 신청할 수 없는 걸까요?
-
해결됨제미니의 개발실무 - 커머스 백엔드 기본편
개념 간 격벽 분리와 목록 조회 시 발생하는 참조 구조
제미니님 안녕하세요. 강의를 통해 각 개념 간의 응집성을 높이고, 불필요한 의존성을 줄여 격벽을 세우는 설계를 깊이 있게 연습하고 있습니다.강의에서 배운 원칙을 적용하여 '리뷰'나 '찜' 같은 개념들이 '상품' 개념을 단방향으로 참조하도록 구조를 잡고 있습니다. 하지만 실제 상품 목록 조회 기능을 구현하다 보니, 설계의 일관성을 유지하기 어려운 상황을 마주하게 되어 조언을 구하고자 합니다.개념 간 의존성의 역전: 목록 화면에서 '리뷰 수'나 '찜 수'를 함께 보여주거나, 이를 기준으로 상품을 정렬해야 하는 요구사항이 생겼습니다. 이 경우 상품 개념이 본래 몰라야 할 하위 개념(리뷰, 찜 등)의 상태를 알아야만 하는 상황이 발생합니다.API 구성의 어려움: 상세 페이지는 API를 잘게 나누어 클라이언트에서 합성함으로써 개념 간의 독립성을 지킬 수 있지만, 목록의 경우 수십 개의 상품에 대해 매번 각각의 리뷰 수 API를 호출하여 클라이언트가 매핑하는 방식은 어딘가 어색하고 성능과 구현 효율 면에서 의문이 듭니다.결국 조회를 위해 상품이 다시 리뷰나 찜을 알게 되면, 처음 설계한 개념 간의 단방향 참조 구조가 깨지거나 서로를 참조하는 순환 참조가 발생할 것 같아 우려됩니다.이처럼 개념 간의 격벽을 유지하려는 설계 원칙과, 여러 개념의 데이터가 한꺼번에 필요한 조회 요구사항이 충돌할 때 어떤 식으로 접근하는 것이 현명할까요? 원칙을 고수하며 우회할 방법이 있을지, 혹은 이런 조회 상황에서는 설계적 타협이 필요한 것인지 견해를 듣고 싶습니다.
-
해결됨제미니의 개발실무 - 커머스 백엔드 기본편
프로덕트와 프로덕트카테고리 사이의 삭제 정책
안녕하세요, 선생님!좋은 강의 제공해주셔서 감사합니다. 덕분에 단순히 구현에만 집중하기보다, 설계와 개념에 대해 더 고민하면서 코드를 작성하게 되었습니다.섹션 2의 ‘개념 느끼기’ 부분에서 Product가 Product Category보다 더 상위의 개념이라고 말씀해주셨던 것으로 기억합니다. 저도 그렇게 이해했습니다.그런데 코드 구현 파트에서 Product와 Product Category 사이의 삭제 정책을 두 가지 예시로 설명해주셨는데, 그 부분에서 한 가지 궁금증이 생겼습니다.제 생각에는 개념적으로 Product가 더 상위 개념이라면, Product가 삭제될 때 Product Category도 함께 삭제되는 정책이 조금 더 자연스러운 흐름처럼 느껴졌습니다.이 부분에 대해 제가 개념을 잘못 이해한 것인지, 아니면 실무적인 관점에서 추가로 고려해야 할 부분이 있는지 궁금합니다.혹시 제가 놓치고 있는 관점이 있다면 조언 부탁드립니다!
-
해결됨제미니의 개발실무 - 커머스 백엔드 레거시와 AI 활용편
소스코드 보안
안녕하세요 재미니님 유튜브로 접하게 되어 인프런 강의까지 듣게된 백엔드 개발자(5년) 입니다.현재 팀의 레거시 시스템을 고도화하는 레거시 시스템을 개편하는데 주력하고 있는 업무를 맡고 있습니다. 저희 회사는 규모가 적지 않고, 팀내에서 담당하는 시스템도 많은데 제 기준으로는 꽤나 보수적인 조직이라 ai 활용하는데 제약이 많은 편이라고 생각합니다. 금융권처럼 로컬 PC에서 외부망을 아예 차단하고 있지는 않지만, chat gpt, gemini 등 각종 llm을 제공하는 웹사이트는 차단이 되어있고 사내 자체 llm 만 사용할수 있는 환경입니다. 운이 좋게도(??) junie 는 아직 차단되어 있지 않아 많이 활용하고 있는데, 신규 구축이 아닌 기존 레거시 시스템을 분석하여 컨버전을 하는 과정에서 사용하기에 보안적으로 이슈가 될 부분이 있을까 싶어서 걱정이 많이 되는데, ai를 활용하면 생산성이 넘사벽으로 높아지는 환경에서 보수적으로는 보안 이슈를 걱정하는 팀원들이 있을경우, 재미니님은 어떤식으로 팀원들을 설득하실지, 보안 이슈가 없도록 방안은 어떻게 마련하고 계신지 궁금합니다.추가로 극단적인 예시긴 하지만, 비지니스 로직이 프로시저에 녹아져 있는경우, db 에 의존적으로 운영되고 있는 시스템(ex. 트리거, 서버 크론잡 스케줄링 등) 의 경우 ai를 활용하여 레거시를 최대한 개선하고 싶다면 어떤 전략을 활용할 수 있을지도 의견 주시면 감사하겠습니다.소중한 강의 제공해주셔서 감사합니다.
-
해결됨제미니의 개발실무 - 커머스 백엔드 레거시와 AI 활용편
AI 사용 방법에 대하여...
강의 잘 듣고 있는데요.같은 프로젝트에 대해 다수의 팀원이 개발한다고 가정 할 때현재의 AI를 사용하는 방식이 어디까지 유효할 지 재미니님의 생각이 궁금하여 의견 여쭙습니다.예를 들어 저는 AI를 적극 사용하고 싶을 때, 하지만 팀의 문화가 AI를 위와 같이 그닥 사용하지 않을 때, 강의 속에서 AI를 활용하는 방안을 어디까지 얘기하는게 좋을 지 등이 궁금합니다.제가 느낄 때, 위 강의 과정에서는 md 파일을 꾸준히 업데이트 하며, 히스토리를 쌓아가는 것 같아 의견을 여쭤봅니다.
-
해결됨제미니의 개발실무 - 커머스 백엔드 레거시와 AI 활용편
PaymentValidator와 PaymentProcessor에서 주문과 결제를 중복 조회하는 구조에 대한 질문이 있습니다 !
제미니님 안녕하세요!30강 5분쯤에서 나온 결제 구조 관련해서 질문이 있습니다. 검증과 처리 책임을 모두 가지고 있던 PaymentManager를 Validator와 Processor로 분리한 의도는 이해했습니다.그리고 Validator와 Processor 각각에서 주문과 결제를 다시 조회하도록 구현하신 이유가 컴포넌트를 명확하게 분리하고 재사용성을 높이기 위함이라고 이해했습니다. 여기서 말씀해주신 “명확하다”는 표현이 PaymentService에서 비즈니스 흐름을 더 명확하게 드러내기 위한 설계 의도라고 이해해도 괜찮을까요? 한편으로는 다른 방식도 떠올랐는데, Validator에서 검증하면서 조회한 주문/결제 정보를 PaymentContext 같은 객체에 담아서 Processor.success로 전달하는 구조는 어떻게 생각하시는지 궁금합니다. 이런 방식이 책임 분리나 구조적인 측면에서 문제가 생길 여지가 있는지, 혹은 실제로는 어떤 트레이드오프가 있는지도 함께 알고 싶습니다!
-
해결됨제미니의 개발실무 - 커머스 백엔드 레거시와 AI 활용편
결제 개념 컴포넌트 분리 기준과 네이밍 전략에 대한 질문있습니다 !
안녕하세요 ! 결제 개념 쪽 강의 내용 중 궁금한 부분이 있어 질문 드립니다 ! 1. PaymentCreator를 별도 컴포넌트로 분리한 이유결제 개념에서 PaymentCreator를 별도의 컴포넌트로 추출하신 이유가 궁금합니다.결제 생성 또한 결제 개념을 처리하는 기능의 일부라고 생각해서, PaymentProcessor 내부에서 함께 처리할 수도 있지 않을까 생각했는데 Creator를 분리하신 설계 의도가 무엇인지 알고 궁금합니다!2. Manager vs Processor 네이밍 전략 기준다른 개념 영역에서는 Manager라는 네이밍을 사용하시다가결제 영역에서는 Processor라는 네이밍을 채택하신 이유가 궁금합니다.두 네이밍 사이에 역할적/의미적 차이를 두고 설계하신 것인지, 혹은 도메인 특성에 따른 네이밍 전략인지 궁금합니다 !
-
해결됨제미니의 개발실무 - 커머스 백엔드 레거시와 AI 활용편
AI 를 적용시 브랜치를 다루는 팁 같은게 있을까요?
AI로 코드를 분석해보거나레거시의 수정 포인트를 느껴보거나 하는 부분은많이 와닿았는데요.AI 가 코드를 수정한 이후에코드를 비교해보는 영역에서 브랜치를 어떻게 관리하는게 좋을 지 의문이 들었습니다.AI 가 다수의 코드를 변경하고 있는데, 실제 실무에서는 한 꺼번 에 코드를 바꿔버리면 diff가 너무 많아서 개발시 우려되는 부분이 많이 생깁니다.gpt에 물어보면 ai/product-draft 와 같이 실험용 브랜치에서 작업 이후에 선별하여 수정하라는 답변을 받았는데요.아직 섹션3을 수강하고 있어서, 이른 질문일지 모르지만 해당 사항 관련하여 실무적인 관점에서 실제로 어떻게 하는게 좋은 방법일 지 조언 한 번 부탁드립니다.
-
해결됨제미니의 개발실무 - 커머스 백엔드 레거시와 AI 활용편
사용자가 상품을 선택하고 쿠폰을 고를 때 가장 혜택이 큰 쿠폰을 고르는 상황
강사님 안녕하세요. 쿠폰 조회 로직 구조 관련해서 의견 여쭤봅니다.현재 제 구현은 findBestBenefitCoupons에서 DB(Querydsl) 쿼리 하나로- 대상 필터링(INCLUDE/EXCLUDE, 기간, 상태),- 할인금액 계산,- 적용가능 여부 정렬,- 페이지네이션(Slice)까지 전부 처리하고 있습니다.그런데 쿼리가 너무 복잡해져서,“DB에서는 가능한 필터링/후보 추출만 하고, 복잡한 적용 규칙/최종 정렬은 애플리케이션 레이어에서 처리”하는 방식으로 바꿔도 괜찮을지 고민 중입니다.제 가정은 사용자별 쿠폰 수가 많아도 수천 장 수준이라 앱 처리도 감당 가능하다는 점입니다.강사님 코틀린 예제CouponTargetReader)는 DB는 타겟 조회 중심이고 조합은 앱에서 하는 패턴으로 보였는데,제 케이스(최적 쿠폰 + 페이징)에도 이 방향이 실무적으로 타당할까요?아니면 정렬/페이징 일관성 때문에 핵심 랭킹 로직은 DB에 유지하는 게 더 맞을까요?추가로 궁금한 점이 있습니다.대규모 커머스 회사에서는 이런 “최적 쿠폰 목록” 문제를 보통 어떻게 처리하나요?쿠폰 목록은 조건(회원/주문금액/대상/기간)이 많아서 캐싱도 쉽지 않아 보이는데,실무에서는 어떤 식으로 분리(DB/애플리케이션/배치/사전계산)하고 어떤 기준으로 설계 결정을 내리는지 궁금합니다.저는 지금 소규모 서비스에서 개발 중이라,대규모 트래픽/대량 데이터 환경에서의 실무 관점 인사이트를 얻고 싶습니다.판단 기준(데이터 건수, 성능 임계치, 페이지 정합성, 운영 복잡도)도 함께 조언 부탁드립니다.
-
해결됨제미니의 개발실무 - 커머스 백엔드 기본편
새로 개발한다면 구현 순서
안녕하세요!강의를 다 보고 이 프로젝트를 제 손으로 다시 작성해보려고 합니다.코드를 눈으로 쭉 봤지만 SQL, 데이터베이스 구조 등은 정확히 들여다보지는 않았기 때문에...무엇보다도 코드를 느끼려면 다시 작성해보고 테스트도 보고 그러는게 좋을 것 같아서요. 완전 같게 작성하기 보다는 강의에서 해주셨던 부분들 개선해보거나 바꿔보거나 하려고요 저는 python 개발자이기 때문에 Spring 대신 FastAPI, JPA 대신 sqlalchemy 를 사용하려 합니다.작성하려고 보니 어떤 순서로 작성하는 것이 좋을까 질문 드려도 되나 싶어서 질문 올려봅니다. 일단 제 생각에는 v1/products 부터 시작 하려고 하는데우선은 프로젝트 구조부터 간단히 잡고 그 다음은도메인 클래스, 엔티티, productService, controller 순서로 구현/테스트 코드 작성v1/products 가 완성되면 서버 실행해서 동작 확인그 다음은 뭐 v1/products/{productId} 이런 순서로 작성해보려고 하는데요 재민님은 혹시 이 프로젝트 만들때 어떤 순서로 구현하셨는지?혹시 테스트부터 시작 하시는지? 처음 시작할 때 의 팁 있으시면 공유 부탁 드립니다 좋은 강의 감사합니다!
-
해결됨제미니의 개발실무 - 커머스 백엔드 레거시와 AI 활용편
장바구니 아이템 가격 기준?
강의 잘 듣고 있습니다! 수강중 궁금한 내용이 있어서 남겨요. CartItem 개념객체가 ProductOption을 알고 있지만 CartItemResponse를 보니 장바구니에 노출 시켜줄 때는 오직 Product의 가격으로만 노출 켜주고 있더라고요. 장바구니에 담기는 단위, 기준이 ProductOption이지만 CartItemResponse에서는 product의 가격으로 노출 시키고 있는 이유가 궁금합니다!또한 ProductOption의 Price는 Product의 Price와 별개로 봐야 하는건가요?그리고 ProductOption 단위 하나로 옵션개념이 잡혀있는 것 같은데 (ex: 색상:REDㅣ사이즈:M), 만약 이 옵션들이 하나의 단위가 아닌 개별로 데이터를 가지게 된다면 어떻게 해야할까요?(ex: 색상:RED +3000원 - 사이즈:M +500원)(ex: 색상:BULE +3000원 - 사이즈:M +1000원)
-
해결됨제미니의 개발실무 - 커머스 백엔드 레거시와 AI 활용편
인텔리제이에서 legacy 프로젝트 그레이들 인식 불가
안녕하세요..열심히 강의를 듣고 싶지만 프로젝트가 그레이들 인식을 하지 못해서 코드조차 제대로 못보고 있습니다ㅠ 지금까지 해본 것intellij cache invalidate.idea 파일 삭제 후 그레이들 재빌드gradle.properties jdk 21 버전으로 되어 있어서 프로젝트 구조 및 세팅 모두 jdk 21로 동일하게 맞춤세팅에서 gradle default로 되어 있는거 intellij로 옵션도 변경 시도인텔리제이 업그레이드 (2023년 버전 -> 2025년)./gradlew build clean 명령어는 정상적으로 되는 것을 확인마음 잡고 오랜만에 공부하려 했는데 시작조차 안돼서 답답하네요 흑흑 ,,,어떻게 하면 좋을까요?
-
해결됨제미니의 개발실무 - 커머스 백엔드 기본편
의존 방향에 대한 고민
안녕하세요. 최근 객체 간 의존 방향 고민에 많은 시간을 쏟고 있어 질문드립니다.핵심 질문도메인/서비스 간 의존 방향을 결정할 때 어떤 기준을 적용하면 좋을까요? "누가 누구를 알아야 하는가"에 대한 판단 기준이나 원칙이 있을까요? 저는 덜 중요한 개념의 변경이 중요한 개념에 영향을 주면 안된다고 생각하고 있었습니다. 그래서 중요한 개념이 덜 중요한 개념을 모르도록 코드를 짜려고 노력하는데요. 막상 개발할 때는 이게 잘 안되어서 고민에 시간을 많이 사용하거나, 타협하곤 합니다. 이런 상황이 이번 강의를 보면서도 나타나 질문글을 작성하게 되었습니다. 구체적인 상황그런데 강의에서 download 메서드를 CouponService로 이동하는 과정을 보고 다음과 같은 의문이 들었습니다:변경 후 구조:CouponService → OwnedCoupon, OwnedCouponRepository 의존OwnedCoupon → Coupon, CouponRepository 의존우려 사항:Coupon과 OwnedCoupon이 서로를 알게 되는 것이 순환 참조나 강결합을 유발하지 않을까? OwnedCoupon에 필드 추가 시, 기존에는 OwnedCouponService만 수정하면 됐지만 이제는 CouponService도 함께 수정해야 함논리적으로는 CouponService에 download 기능이 있는 것이 맞아 보이지만, Coupon과 OwnedCoupon이 서로 알게 되는 것이 괜찮은 설계인가? 이런 고민에 시간을 많이 쓰다 보니 개발 시간이 부족하다고 느껴집니다. 마감을 위해 구현 후 리팩토링하는 방식으로 진행하고 있지만, 리팩토링을 못할 때도 많고 마음의 짐으로 남는 것 같습니다.조언 부탁드립니다. 감사합니다.
-
해결됨제미니의 개발실무 - 커머스 백엔드 레거시와 AI 활용편
예약 변경 시 '과거 정책 기준 재계산' 요구사항에 따른 스냅샷 데이터 구조 설계 고민
안녕하세요 강사님. 지난번 '어드민 예약 변경 시 쿠폰 회수' 관련 질문을 드렸던 수강생입니다. 답변 주신 내용을 바탕으로 설계를 보완하던 중, 스냅샷 데이터의 범위와 확장성에 대해 추가적인 고민이 생겨 조언을 구합니다.[현재 아키텍처 상황] 현재 예약 테이블에는 예약 시점의 가격 정보를 JSON 형태의 스냅샷으로 저장하고 있습니다.이유: 가격 결정 요소(할인, 이벤트, 기업 지원 등)가 빈번하게 변경/추가되어 RDB 컬럼으로 대응하기 어렵기 때문입니다.저장 데이터: 현재는 '결과값' 위주로 저장합니다. (예: 적용된 할인 명, 타입(정액/정률), 최종 할인 금액)[직면한 문제: 변경 시점의 기준 모호성] 예약 시점(T1)과 변경 시점(T2) 사이에 정책이 변경되었을 때, 어드민에서 예약을 수정하면 어떤 정책을 따라야 하는가에 대한 딜레마입니다.만약 기획 요구사항이 "변경 시점(T2)의 정책이 아니라, 최초 예약 시점(T1)의 정책 조건을 유지한 채 금액만 다시 계산해 주세요"라고 한다면 문제가 복잡해집니다.현 구조의 한계: 현재 JSON에는 '결과(할인액)'만 있고 '조건(최소 결제 금액, 당시 허용된 옵션 목록 등)'은 없습니다.예상되는 부작용: 이를 해결하려면 예약 시점의 모든 검증 조건(Condition)을 JSON에 다 때려 넣어야 합니다.이렇게 되면 도메인 로직이 바뀔 때마다 JSON 스키마도 계속 비대해지고,과거 JSON 데이터와 현재 로직 간의 정합성을 맞추기 매우 까다로워질 것 같습니다.[질문] 이처럼 "빈번하게 변하는 가격 정책"과 "과거 기준 수정"을 동시에 만족해야 할 때, 실무에서는 보통 어떤 접근 방식을 취하나요?JSON 스냅샷 확장: 다소 복잡해지더라도 예약 시점의 검증 조건(Parameter)들까지 모두 JSON에 스냅샷으로 남기는 게 맞나요? (JSON 컬럼 사용이 잘못된 선택이었을까요?)Policy Versioning (정책 버전 관리): 아니면 가격/할인 정책 테이블 자체를 버전 관리(Effective Date 등)하여, 예약 시점의 policy_version_id를 매핑해두고 로직을 태우는 방식을 써야 할까요?현실적인 타협: 아니면 보통 어드민 변경 건은 "재계산 불가(단순 금액 입력)"로 처리하거나, "무조건 현재(T2) 정책"을 따르게 하는 등 복잡도를 낮추는 타협점을 찾나요?확장성 있는 가격 스냅샷 설계에 대한 강사님의 경험과 조언을 부탁드립니다..!
-
미해결제미니의 개발실무 - 커머스 백엔드 레거시와 AI 활용편
선생님
이전강의에 이어 이번강의도 또 듣게되네요선생님께서 늘 강의에서 느낀다 라는 표현을 많이 하시는데 이게 되게 중요한건가 보네요잘 듣겟습니다