안녕하세요. 이전에 성남시 멘토링 진행할 때 업무에 치여 제대로 진행하지 못했었는데, 그 때도 느꼈지만 확실히 설명이 깔끔하고 좋으십니다. 이 강의 이후 다른 강의도 마저 들어보려고 합니다. 질문 드릴 내용은, UGS 기능 자체는 좋으나 요금제 기준이 어느정도인지 아직 감이 제대로 오지 않습니다. 실제 요금제 표 봤을때 읽기,쓰기 월 100만회까지 무료 -> 그 뒤 추가 요금 발생 등 내용은 확인했는데. 1. industry 라이센스가 있는 회사에서 unity cloud/ugs를 도입했을때 요금적으로 부담이 없을지 (콘텐츠로 요금제를 충당할 수 있을만큼 돈 벌었을 때부터 요금이 발생할거다. 등) 주관적인 내용. 2. 개인으로 1인~소규모 인디 개발을 할 때 UGS를 도입한다면 이 경우에도 게임으로 돈을 벌었다. 싶을 때부터 요금이 발생할 것인지 혹여 요금제에서는 확인하지 못하였으나, 1번 경우에 런타임 요금제가 있는지. 요금에 관련된 주관적인 + 아시는 내용이 있다면 듣고 싶습니다. 감사합니다.
안녕하세요! PG 결제 승인 API 구현 중 고민이 되는 부분이 있어서 질문드립니다! PG사로 부터 /callback/success 등과 같이 콜백 url로 요청을 받았을때 결제 승인을 서버에서 진행하는 플로우인데 결제 승인 요청 전 결제 검증 PG 결제 승인 API 호출 정상 승인 or 승인 실패 시 transaction_history 저장 의 흐름인 것 같은데 추가적으로 3번에서 정상 승인 시에 PG사로 부터 응답받은 paymentKey, amount 등을 요청한 paymentKet, amount와 동일한지 검증이 필요할까? 라는 생각이 들었습니다. 궁금한 점은 실무에서 PG사 연동 시에는 결제 승인 응답 후 검증 로직을 다루는지? 다룬다면 실제 승인 요청 내역과 응답 내역이 다르다면 어떻게 처리하는지? (클라이언트로 응답, 불일치 시 보정 전략 등..) 외부 API 호출 시 서킷 브레이커를 사용하는 걸 선호하는지? 정도가 있습니다! 제미니님 덕분에 항상 많이 배워갑니다 감사합니다~!
강사님의 코드를 보니 Question 클래스 등에 id, userId, title, content 등만 넣어두신 것 같은데 일반적으로 자주 표현되는 다른 필드를 표현하려면 어떻게 하는 것이 좋을까요? 예를 들어 QnA 조회시 질문 목록에서 질문 작성자의 이름이 표시되는 형태가 많습니다. 이때 그렇다면 QnAResponse 에 questionAuthor 필드가 있어야 할 것 같은데 해당 필드가 추가된다면 어떻게 username 정보를 넣어주어야 할지 궁금합니다. 1안. Question 클래스가 userId 대신 User 클래스를 가지고 있는다... 2안. Controller에서 user 목록을 조회해서 response 팩토리 메서드에서 매핑한다. 2안이 더 나을 것 같긴 합니다만, 리스트이다 보니 매핑로직이 복잡해 질 것 같기도 하고... qnsList->question->userId 모아서 userList조회... map생성 후 매핑 등등 이런 과정이 괜찮은건지 궁금합니다. 또 2안이 더 나은 방법이라면 response에 노출해야하는 join 필드 5-6개 처럼 많을때는 어떻게 처리하시는 편인지도 궁금합니다
@McpPrompt 를 이용해서 prompt를 제공하도록 mcp server 단에서 만들었으므로, mcp client 에서 mcp server 의 prompt 를 사용하는게 적절할듯 한데 , client 에서 다시 프롬프트를 재작성하는 예제코드를 소개해주시고 계십니다. client 에서 server 의 prompt, resource 들을 검색하고 그중 적절한 것을 골라서 사용하는 방법이 있을까요?
안녕하세요 결제 코드느끼기 강의를 보며 궁금한점이 있어서 질문을 남깁니다. 여러 주문들을 동시에 넣었고 createPayment가 되고 PG사로부터 success가 콜백 호출 된다 했을때, 동시성 문제가 우려되는데요 각 주문마다 point 혹은 coupon을 쓴다고 했을때, 고객이 가진 point 이상으로 point가 차감된다든지, 쿠폰 재사용 문제를 직면했을때 예외처리가 없어보이며, 이 때문에 이를 복구하는 방안같은건 없어보입니다. (괜히 예외처리를 했다가 고객의 돈이 빠져나가고 결제상태가 안바뀔 염려때문) 그럼에도 각 Value Object에서 valid및 예외처리하는 로직이 success api에 추가할 수 있을까요? 아니면 주문 결제 전 단계에서 막으면 좋을까요? 아니면 그럴 가능성이 자주는 없으니, 결제 상태는 Ready인 부분을 찾아서 수동 수정하는것도 방법이라고 보시나요?
[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
Postman 테스트 중 데이터를 받아오지 못하는 문제가 생겨 원인을 찾아보았습니다. 같은 문제를 겪는 분이 계시면 참고하세요. 이하 AI로 작성되었습니다. 현상: /posts?order__createdAt=ASC 처럼 where 파라미터 없이 호출했는데, findOptions.where.id 가 MoreThan(undefined) 로 만들어져 repository.find() 결과가 0건으로 나옵니다. 원인: ValidationPipe({ transform: true }) 로 DTO가 “클래스 인스턴스”가 되고 main.ts ), TS target 이 ES2022+ (예: ES2023 , tsconfig.json )이면 초기값 없는 DTO 필드도 JS에 field; 로 emit되어 인스턴스에 undefined 프로퍼티가 “존재”합니다 base-pagination.dto.js ). 이 상태에서 Object.entries(dto) 로 필터를 만들면 undefined 도 같이 파싱되어 MoreThan(undefined) 가 됩니다. 참고: 이 동작은 TS 3.7 의 useDefineForClassFields 도입 이후(4.3에서 esnext 기본 true, 4.6에서 es2022 타겟 추가) 현대 타겟에서 흔히 발생할 수 있습니다. NestJS/class-validator 변경이라기보다 TS 타겟/클래스 필드 emit 차이입니다. 해결: 필터 조합 시 undefined/null 은 스킵하도록 방어코드 추가(예: if (value === undefined || value === null) continue; ) — common.service.ts . 이 케이스를 막는 옵션은 필터 조합 로직에서 undefined/null 을 스킵(가장 단순/안전) (파이프 레벨로 하고 싶으면) 커스텀 파이프로 undefined 키 삭제/또는 class-transformer 의 instanceToPlain(dto, { exposeUnsetFields: false }) 같은 방식으로 “undefined 없는 plain”으로 만든 뒤 사용 등이 있습니다.
안녕하세요. 좋은 강의 감사합니다. 강의와 직접적으로 관련 있는 내용은 아니지만 궁금한 점이 있어 질문드립니다. 클라이언트에서 MySQL 서버로 아래와 같이 요청할 텐데 BEGIN 쿼리 COMMIT 3번에서 MySQL 서버가 클라이언트의 Commit 요청을 받고 처리 완료 후, 클라이언트에게 응답하려는 순간 네트워크가 단절되면 Commit은 되었지만 클라이언트는 실패로 인지할 텐데 이런 경우 어떻게 대응해야 하는지 궁금합니다. 아니면 MySQL 서버에 네트워크 전송 실패를 감지하고 해당 트랜잭션을 보정하는 동작이 있을까요? 감사합니다.
안녕하세요, 강의랑 유튜브 너무 잘 보고있습니다. 강의를 보면서 여러 인사이트를 얻었습니다! 궁금한 점은 코틀린이 아닌 자바를 사용할 경우엔 엔티티 객체를 도메인 객체로 변환해서 return 해줄 때 코드가 다소 지저분해지는데요 ㅠㅠ 어떤 방식이 가장 유효할지 의견 부탁드립니다! 엔티티 객체에 toDomain() 과 같은 도메인 객체 변환 메서드 생성 Mapper 클래스 생성 (ex. ProductMapper.toDomain(entity)) (생성 한다면 어느 모듈, 위치에..?) 추가적으로 도메인 객체를 사용한다면, 엔티티 -> 도메인 -> 클라이언트 응답 DTO 와 같은 변환 과정을 거의 필수적으로 거쳐가야하는데, 이 부분에 대해서 도메인 객체와 엔티티 객체의 분리 시점이 재미니님은 있으신건가요? 아니면 프로젝트 시작부터 도메인과 엔티티는 구분해서 사용할 것이다! 라고 정하고 시작하시는 편이신가요? 물론 프로젝트의 규모와 도메인의 복잡도 등에 따라 유연하게 변해야 한다고 생각하지만, 해당 경험이 없다시피 하다보니 현재 프로젝트 구조에서 구현 레이어 밖으로 나갈때 도메인 객체로 변환의 이점과 트레이드 오프에 대해 어떻게 생각하시는지 궁금합니다!
킬구형, 히사시 부리데쓰요야 JPA ItemReader와 ItemWriter를 배워보니 생각보다 복잡하고 여러 고려사항들이 많이 보이는 것 같아, 물론 JPA와 통합이 되서 좋지만 JPA를 쓰고 있어도 Jdbc ItemReader/ItemWriter가 훨씬 더 간단해보이고 별다른 추상화도 많이 없어서 성능도 괜찮아 보이는데, 실무에서는 어때? JPA ItemReader / ItemWriter를 더 많이 써 Jdbc ItemReader/ItemWriter를 더 많이써? PS: 킬구형 어떻게 이렇게 자세한 내용들을 알 수 있는거야? spring batch 공식 docs를 봐도 내용이 없던데 ㅋㅋㅋ 킬구형 없었으면 큰일 날뻔했자너~
상품 목록 조회가 복잡해질 때의 상황을 생각해보고 있는데요. 감이 오지 않는 부분들이 몇가지 있어 질문드립니다. 상품 목록 조회 시 옵션 개념이 있다면 재고는 어떻게 처리해야 할까요? 재고는 상품옵션들의 조합이 가지고 있는 것이 이상적일 것 같은데, 상품 목록 조회던, 상세 조회던 품절 여부와 최대 구매가능 수량을 나타내기 위해서는 재고 정보도 필요해보입니다. 따라서 Product 필드에 해당 상품의 전체재고수량(모든 조합의 실재고 합)을 필드로 가지고 있는게 맞나? 라는 생각이 들고... 필드로 가지고 있다면 상품 조회 시 조합을 전부 조회하고 매번 합해 주어야 하나? 그럼 Product 테이블 컬럼단에 미리 합한 값을 넣어두어야 하나? 여러 생각이 듭니다. 다음으로는 프로모션(타임세일) 적용가, 쿠폰적용가 등으로 보여줘야 한다면 이게 실질적으로 Product 도메인 객체의 가격을 변경해도 되는 건가? 라는 생각도 했습니다.프로모션(타임세일) 적용가, 쿠폰적용가 등으로 보여줘야 한다면 쿠폰적용가, 타임세일 적용가 등이 처음에는 보여주기만을 위한 정보이지 않을까 생각했는데, 실제 주문할 때 반영될 금액이기도 하고, 타임세일 같은 경우는 대부분 모두에게 적용되어 보이는 형태이기에... 뷰의 목적이 아니라 개념적으로 봐도 되는걸까? 라는 생각이 듭니다. 조금 고도화 하여 생각해보니 감이 잡히지 않는 부분들이 너무 많네요,,, 실무에서는 주로 어떤 구조를 추구하는지 제미니님은 어떻게 생각하시는지 궁금합니다. 긴 글 읽어주셔셔 감사드려요!
안녕하세요 제미니님, 유튜브부터 계속 꾸준히 보다가 강의 릴리즈 하신 후 바로 구매하여 듣고 있는 사람입니다. 먼저, 생각할 거리를 많이 주는 좋은 강의 감사드립니다. 다름이 아니라, 일단은 ProductSerivce 안에서 Product라는 개념만을 명확히 다루고자 하였기에 Controller에 타 개념의 Service들도 혼재되는? 그런 상황이라고 이해했습니다. 물론 다 선택의 영역이겠지만, 개발자분들 중에선 Presentation 영역(Controller)을 최대한 가볍게 가지고 가시려는 분들도 많은것 같습니다. 그래서 대신에 여러 서비스들이 혼재되는 상황을 Facade 등을 도입해서 여러 개념의 서비스들에 대한 presentation 계층에서의 접근을 일원화하고 각 서비스단에서의 복잡성은 해결하고자 하는 케이스도 실무에서 종종 접했는데요. 이에 대해서는 제미니님께서 어떻게 생각하시는지 궁금합니다.
안녕하세요 제미니님 유투브때부터 잘 보고 있습니다! 그 25분쯤에 controller에 여러 service들을 주입받아서 사용하시는 부분에 대한 질문이 있습니다. 1. 그럼 격벽으로 넘어도 되는 개념 사이에서는 a service에서 b finder or b appender 를 호출해도 괜찮은건지..? 2. 격벽으로 넘어서 안돼는 개념 사이에서는 강의에 나온것처럼 여러 service를 controller에서 받아서 response를 만들어야 하는건지.....?또 그렇게 되면 controller에서 여러 service를 알아야하니까 그건 또 문제가 없는지.. 궁금합니다!! 제미니님은 주로 어떻게 하시나요!? 감사합니다