묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복
order_item 테이블 (order_id, product_id) 유니크 제약조건 누락
안녕하세요. 항상 좋은 강의 잘 듣고 있습니다. 다름이 아니라, 강의 및 강의 자료에 누락된 부분이 있는 것 같아 글 남깁니다.[물리적 모델링 - 실습] 파트에서 테이블 정의서 및 DDL 스크립트를 작성하는 부분에 order_item 테이블이 order_id와 product_id를 각각 외래키로 들고 있는데, 앞선 강의에서 설명해주신 바에 따르면, 주문 항목 데이터 저장 시, 특정 주문에 대한 특정 상품 하나가 여러 번 중복으로 저장되는 걸 방지하기 위해, (order_id, product_id)에 UNIQUE 제약조건을 만들어야 된다라고 하셨는데, 그 부분이 빠진 것 같습니다.감사합니다.
-
해결됨카카오 면접관이 알려주는 MSA 관점에서의 분산 트랜잭션 패턴
사가 패턴 질문
안녕하세요. 현재 사가패턴을 공부하고 있는 개발자입니다. 제가 알고 있는 내용과 조금 다른 내용이 있어서 궁금증에 물어봅니다. 오케스트레이션 사가를 원래 rest api로 구현하나요? 이것도 카프카 같은 브로커 사용해서 만든다고 알고 있어서요.
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
커서 기반 페이지네이션 과 무한 스크롤링
안녕하세요 강사님강의를 수강하는 학생입니다. 무한 스크롤링은 두 번째부터 보통 끝쪽 id 에 데이터를 기반으로 데이터를 불러오는 방식이보통 커서 기반 페이지네이션과 큰 차이가 없는 건가요? (claude 나 ) 블로그 보면서 이것도 비슷한 개념인 거 같아서 질문 드립니다. @Entity@Table(name = "post",indexes = {@Index(name = "idx_post_board_created_id",columnList = "board_id, created_at DESC, post_id DESC"),@Index(name = "idx_post_created_id",columnList = "created_at DESC, post_id DESC")})@Getter@NoArgsConstructorpublic class Post {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)@Column(name = "post_id")private Long id;@ManyToOne(fetch = FetchType.LAZY)}이렇게 엔티티에 인덱스를 만들어서 사용하는지 궁금합니다. 강의에서 처럼 SnowFlake도 보통 저렇게 인덱스를 만들어서 활용하는지도 궁금합니다.
-
해결됨은행 서버 프로젝트 실습을 통해 배우는 코틀린 마스터 클래스
강의_34] 공통 모듈 관련 질문입니다.
아직 MSA 경험이 없다보니 질문을 드려봅니다.메시지에 관련된 Entity를 공통 모듈로 뺀다고 하셨는데용Lecture_1 라는 프로젝트, Lecture_2 라는 프로젝트가 있다고 가정을 했을 때'공통 모듈' 이라는걸 별도의 프로젝트로 구성한다는 말씀이실까요?아니면 아래와 같이 프로젝트 root외에 모듈을 별도로 잡아서 한다는 말씀이실까영?rootProject.name = 'Lecture_2' include 'common' <-- 공통 모듈?rootProject.name = 'Lecture_2' include 'common' <-- 공통 모듈?아, 그리고 최근에는 MSA에 대한 단점이 명확해지고 있어서 Modular Monolithic 아키텍처도 생겨나고 있는데 강사님께서는 이 부분에 대해서 어떻게 생각하시는지도 궁금합니다!
-
해결됨6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법
클라우드 환경 배포시 부하 테스트 방식에 대하여
안녕하세요 딩코님, 클라우드 환경에서 비용이 발생하지 않는 올바른 테스트 방법에 대해 여쭙고자 질문 남깁니다. 제 스스로 느끼기에, 제가 프리티어로 사용하고 있는 EC2 인스턴스 내부에서 k6 스크립트를 실행하게 되면 EC2 과부화는 물론 RDS 에도 몇백만건의 데이터가 삽입이 되니 비용적, 컴퓨팅 자원적 문제가 발생할 것 으로 생각이 됩니다. 그래서 혹시 다음과 같은 방법으로 클라우드 환경 테스트를 진행하면 될지 여쭤보고 싶습니다.테라포밍을 통해 AWS EC2 + RDS 조합으로 서버 배포배포된 해당 주소로 제가 가지고 있는 노트북(EC2 아니고 제 로컬 PC) 터미널에서 k6 스크립트 실행이때도 비용문제가 발생하는지? -> 아니라면 저비용으로 테스트하는 국룰 방법을 좀 소개해 주시면 감사드리겠습니다 ! 강의 너무 재밌습니다 ㅋㅋㅋ 감사합니다 !
-
미해결성공적인 SQL 인젝션 공격을 위한, SQL 기본 문법
화면 크기에 대하여
강의 영상을 보면서 따라하기에는 터미널 화면이 너무 작네요. 그냥 눈으로만 볼 수 있을 뿐...따라하면서 배우기는 어려운 강의라고 생각됩니다.
-
해결됨백엔드 6주 실전 미션과 1:1 피드백으로 완성하는 합격 포트폴리오 - 2기
이력서 관련 궁금한 사항이 있습니다.
안녕하세요 딩코딩코 선생님. 다름이 아니라 궁금한 점이 있어 Q&A에다가 글을 올립니다.6주차 까지 진행을 하며 현재 실제 업무를 하며 해결한 내역들에 대해 다시 한번 정리 해 보는 시간을 가지려고 합니다. 이러한 과정을 수행했을 때 혹시 피드백을 해 주실 수 있는지 궁금합니다.
-
미해결React & FastAPI로 만드는 투표 커뮤니티 플랫폼: 결제 시스템으로 수익화까지!
추가 강의 업로드 계획은 어떻게 되시나요?
안녕하세요!현재 강의의 80%를 수강했습니다.노션강의자료를 보니 기능 추가예정이 적혀있어서 혹시 언제쯤 강의를 추가하실건지 아니면 추가된 부분의 코드만이라도 노션 혹은 깃허브에 업데이트가 가능한지 궁금합니다.답변 부탁드립니다.감사합니다.
-
미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
깃헙 질문
깃헙에 강의 들으면서 매일 코드를 올리려고 하는데 어쨋든 강사님의 코드와 동일하게 올라가는 부분도 있고 저만의 프로젝트를 만들어서 올리는 부분도 있는데 올려도 되나요 ?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
게시글 생성 로직에서 오류 발생시 redis 게시글 수 되돌리기
게시글 생성 로직에서 만약 오류 발생시에 db는 롤백이 되는데 만약 redis에 저장된 게시글수가 이미 증가됐다면 감소를 시켜야 하는데 어떻게 처리하는게 좋을까요
-
미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
강의 1-1 수업노트의 로드맵 링크가 작동하지 않습니다.
강의 1-1 수업노트에 공유된 로드맵 중 '프론트 로드맵 링크'가 정상적으로 작동하지 않습니다. 요청한 파일이 없다고 나오는데 확인 부탁드립니다!
-
해결됨김영한의 실전 데이터베이스 - 기본편
오타
문제 3번 pdf 오타 있습니다!서브쿼리에서 orders에 알리아스가 빠져있습니다!
-
해결됨카카오 면접관이 알려주는 MSA 관점에서의 분산 트랜잭션 패턴
입금 성공 후 계좌 잔고 증가 로직 구현 방법 문의
강의를 보고 궁금한 점이 생겨서 질문드립니다.강의에서 구현된 송금 프로세스를 분석해보니,출금은 정상적으로 잔고가 차감되지만 입금 시 받는 계좌의 잔고를 증가시키는 로직이 없는 것 같습니다.예를 들어:- Choreography 방식: handleDepositSuccess() 메서드에서 SagaState만 COMPLETED로 업데이트- Orchestration 방식: Transaction Service에서 deposit 기록만 생성현재와 같이 데이터베이스가 서비스별로 분리된 상황에서,입금 성공 후 받는 계좌의 잔고를 증가시키는 로직을 어떻게 구현해야 하는지 궁금합니다.제가 생각한 방법은:1. Orchestration 방식: Transaction Service의 REST 응답이 성공하면,Account Service에서 받는 계좌의 잔고를 증가시킴2. Choreography 방식: Transaction Service에서 deposit.success 이벤트를 발행하면,Account Service에서 이벤트를 consume하여 받는 계좌의 잔고를 증가시킴이 두 가지 방식으로 접근하는 것이 맞는지,아니면 다른 권장 방법이 있는지 알려주시면 감사하겠습니다.
-
해결됨카카오 면접관이 알려주는 MSA 관점에서의 분산 트랜잭션 패턴
코레오그래피 방식으로 SAGA 패턴을 구성할때 메시지 설계는 어떤식으로 해야하는지 궁금합니다
안녕하세요 강의를 보면서 SAGA 패턴에 대해 공부하면서 궁금한 부분이 생겼습니다코레오그래피 방식으로 주문 비지니스를 구성한다고 할때 메시지 브로커를 통해서 자신의 역할만 수행한다고 하셨는데 그러면 각 서비스가 어떻게 메시지를 설계해야하는지 궁금합니다주문서비스가 주문 요청을 받으면 재고 서비스에 주문한 상품에 대한 재고 감소를 진행하고 마지막으로 결제서비스가 결제를 진행할때 결제에 대한 금액을 결제서비스가 재고 서비스의 API를 통해 상품의 가격을 조회후 결제를 진행하는것인지 아니면 재고 서비스가 재고 감소를 실행하면서 상품의 가격 정보도 같이 재고 감소 성공 메시지에 추가하여 결제서비스가 이 메시지 정보를 통해 결제를 진행하는것인지 궁금합니다
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
멀티 모듈이 아닌 MSA 환경에서 common
지금은 멀티 모듈로 프로젝트를 설정해서 common이라는 공통 모듈로 분리해도 문제가 없을 것 같은데, 정말 개발 환경이 달라지면 어떻게 진행이 되나요?예를 들어, board는 java, comment는 python으로 개발이 된다고 하면, board와 comment에 사용될 common을 팀끼리 약속을 해두고 각각 서버에 구현을 해서 사용하게 되나요?
-
해결됨비전공자도 이해할 수 있는 DB 설계 입문/실전
7-42. 역정규화 섹션에 나온 참고글 링크
강사님! When and How You Should Denormalize.... 라고 되어 있는 부분의 링크가 잘못 된거 같습니다!
-
미해결[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
선 이동과 히트 판정에 대해 질문 드립니다.
안녕하세요. 루키스님!M2 코드를 분석하면서, 약간 다른 게임을 (브롤스타즈같은 모바일 탑뷰 슈팅게임) 만들고 있습니다.선 이동으로 구현하고 있는데, 서버 판정 이후 해결되지 않는 부분이 있어 질문 드립니다. 현재까지 구현한건 키보드 기반 간단한 이동 동기화 입니다. 이동 방법은 키보드나 조이스틱 기반의 선 이동으로 구현하려 합니다.지금 이동 코드는 루키스님 질의응답과 해외 커뮤 글을 토대로 아래 방식으로 구현 했습니다.0.1초마다 동기화를 시도함키보드 입력이 있으면 desirePos를 그 방향으로 0.1초동안 갈 수 있는 pos 를 찍음클라 판단으로 갈 수 있는 곳(벽X, 장애물 X) 이면 destPos를 갱신서버로 전송서버에서 정당한 이동 요청인지 판정맞으면 브로드캐스트각 클라에서 이동 패킷 수신 후 캐릭터 갱신 여기까지 하면 어느정도 자연스럽게 작동은 합니다.하지만 이동을 보낸 클라 입장에서 서버로 부터 받은 판정을 적용하는 부분에 어려운 부분이 있습니다.아무래도 선 이동이 예측 이동 후 보정이라 네트워크 지연으로 예측과 판정이 너무 많이 틀어지는 경우가 있을 것 같습니다.예를들어, 클라에서 단순 우측으로만 움직인다고 가정하고, x 축으로 10 -> 11 -> 12 -> 13 선 이동을 했다는 가정으로 시작하겠습니다.네트워크 지연으로 13에 도달했을 때 서버에서 10 이동 동기화가 왔다면, 선 이동 클라는 10으로 튕겨 버립니다. 그 후 방향을 바꿔 왼쪽으로 움직이면 10 -> 9 -> 8 -> 7 로 먼저 움직이겠지만, 이미 서버로 보낸 이동 좌표로 인해 11, 12, 13이 또 오기 때문에 캐릭터는 퉁퉁 튀면서 움직이지 못하는 상태가 될 것 같습니다.또한, 다른 클라에서 공격을 해도 히트 판정이 다 꼬여 게임이 이상해질 것 같습니다. 이 문제를 해결하기 위해 고민해보니, 클라에서 선 이동 버퍼(기록)을 둔다고 합니다.이 버퍼는 아래 문제가 생겼을 때 서버 판정을 다시 replay 하고, 서버 판정을 완료하면 다시 저장된 선 이동 버퍼를 replay 해 클라에서 너무 앞서나가지 않도록 하더라구요.선이동 버퍼의 index와 서버 판정의 index가 n 이상 벌어지면, 서버 판정 index의 pos 로 플레이어 위치를 되돌리고 클라 선 이동 판정을 다시 실행시킴. 서버 판정으로 이동할 수 없는 pos 라면, 해당 pos 로 되돌리고 그 그 이후 선 이동 버퍼를 replay 여기서부터 질문입니다만,이런 방법이 쓰이는 이유는 게임 전체의 공정성 때문 일까요?네트워크 문제가 있는 일부 클라는 계속 롤백되는 경험을 하지만, 다른 유저들은 서버에서 허가한 상태만 보니까요.보통 선 이동 버퍼와 서버 판정은 어느정도로 갭을 두나요?0.1초마다 동기화 한다고 가정 하고 이동 패킷은 ++1 인 정수형 인덱스로 구분한다고 했을 때, 저는 한 4 정도로 생각했습니다.선 이동과 서버 판정이 약 0.4초이상 벌어지면 롤백하고 다시 동기화 한다 입니다.히트 판정의 경우 클라들, 서버가 같은 ticktime을 공유하고 있고 서버에서 내려준 히트 시작 시간을 보내주면, 클라에서 timejob queue에 넣어두었다가 해당 시간이 되면 애니메이션을 시작하면 되지 않을까? 라는 생각 입니다.고민을 많이 해보았는데, 이 이상 생각이 안되어 질문 드립니다.바쁘시겠지만 답변 주시면 감사히 학습에 사용하겠습니다.
-
미해결비전공자도 이해할 수 있는 DB 설계 입문/실전
[JSCODE 쇼핑몰 (2)] 상품 테이블의 등록한 사람 질문 입니다.
[실습] 요구사항을 보고 DB 설계해보기 - 쇼핑몰 프로젝트에서 '상품' 테이블 질문입니다! 상품을 등록한 사람이 관리자가 아닌 일반회원인건가요?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
2Depth 강의 도중 궁금한 점 있어요!!
CommonService 클래스 부분에서이 코드 테스트를 하며 생각을 해봤는데요EX)루트 댓글 A(논리삭제) ㄴ 댓글 B ㄴ 대댓글 C상황인 경우에서 B를 삭제했을 경우에 논리 삭제 되어있던 루트 댓글A도 삭제가 되면서루트 댓글 A(물리삭제) ㄴ 댓글 B(물리삭제) ㄴ 대댓글 C이런 상황으로 된다면 대댓글 C는 물리삭제 된 루트 댓글A를 parent로 가지는 고아 댓글이 되어버리는 것은 아닌가 궁금해서요!! 깔끔하게 딥한 강의 너무 잘 듣고 있어요!! 감사합니다 :)
-
미해결김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복
BCNF 정규화에 대한 질문
professor_bcnf, enrollment_bcnf로 테이블을 분리하는 과정에서 질문이 있습니다. 이전에 이름과 같은 자연키는 기본키로 두면 안된다고 들었는데 현재는 professor_bcnf에서 professor_name이 기본키로 있습니다. 이런 경우에는 문제가 딱히 생기지 않나요?