묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복
슈퍼/서브 타입 joined 전략
db의 슈퍼/서브 타입으로 설계된 부분을 보면 joined 전략으로 했을 경우 어쩔 수 없이 식별 관계로 해야하는 경우가 있던데 이럴 경우 sigle table 전략으로 푸는 게 나은 것 같으세요? 아니면 어쩔 수 없이 식별 관계로 풀려고 하는 게 나은 것 같으신가요?
-
미해결비전공자도 이해할 수 있는 DB 설계 입문/실전
설문 후속강의 쿠폰 제공 이벤트에 대해서
받고서 새로 강의를 구매할 생각이였는데 지금도 진행되는건가요?만약 안되는거면 다음 강의 구매를 지금이라도 할 생각이라서
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
무한 스크롤 방식에서 페이지 번호 방식 쿼리의 문제점 의문
안녕하세요, 무한 스크롤 방식에서 페이지 번호 방식 쿼리의 문제점을 설명한 부분에 질문이 있습니다. 페이지 방식을 무한 스크롤 방식에 적용 시 문제점으로 아래 2가지를 제시하셨는데요,1) 페이지가 추가된 경우, 데이터 중복 조회 문제2) 페이지가 삭제된 경우, 데이터 누락 문제 궁금한 점은, 이러한 문제는 무한 스크롤에서 사용했을 때 뿐 아니라, 페이지 번호 방식을 사용할 때도 마찬가지로 문제가 있는 것 아닌가 싶다는 것입니다.페이지 번호 방식 자체의 한계라고 생각하는데, 페이지 번호 방식에서는 발생하지 않는 문제인가요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
15강. updateUser() 질문
@PutMapping("/user") public void updateUser(@RequestBody UserUpdateRequest request){ String readSql = "select * from user where id=?"; String sql = "update user set name=? where id=?"; jdbcTemplate.update(sql, request.getName(), request.getId()); }웹페이지에서 update를 발생시켜서 put 요청이 올라 왔을때 UserUpdateRequest dto에 id와 name이 들어 간다는건 웹에서 요청이 올라왔을때 json에 이미 해당 name에 대한 id 정보가 있다는 거죠?id는 db에서 자동적으로 생성해 준다고 했었는데, 이 id를 웹에서는 어떻게 알고 있나요?
-
해결됨6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법
이벤트 참가자 수 증가 후, save 메서드 호출 코드 질문
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요? 4-8강 2. 어려움을 겪는 부분어느 부분에서 막히셨나요?chapter4/_2_event_with_participant 폴더의 EventJoinService 객체의 메서드 코드에 대한 질문입니다.코드의 어떤 로직이 이해가 안 되시나요?@Transactional public void joinEvent(Long eventId, Long memberId) { Event event = eventRepository.findById(eventId) .orElseThrow(() -> new EntityNotFoundException("이벤트를 찾을 수 없습니다.")); Member member = memberRepository.findById(memberId) .orElseThrow(() -> new EntityNotFoundException("회원을 찾을 수 없습니다.")); // save()를 호출하지 않아도 Dirty Checking에 의해 Update 쿼리가 나가지 않나요? event.increaseParticipants(); eventRepository.save(event); EventParticipant participant = EventParticipant.builder() .event(event) .member(member) .build(); participantRepository.save(participant); } } 코드 블럭의 주석 란에 질문을 적어놓았습니다. 저 상황에서 save() 를 호출하는 이유가 궁금합니다.JPA 엔티티의 상태 변경분에 대한 쿼리는 트랜잭션 커밋 후, 자동으로 나가는 것으로 알고 있습니다. 혹시, 제가 잘못 알고 있는건지 궁금합니다.
-
미해결비전공자도 이해할 수 있는 DB 설계 입문/실전
FK 값 중복과 규칙 3 질의
안녕하세요, 강사님덕분에 많이 배웁니다.공부하면서 궁금한 내용이 있어 질문드립니다. FK 값 중복은 괜찮은거지? - 예시 규칙 1의 products(판매 상품) 가게 id(FK) 값규칙 3 내용 중, 서비스를 중심으로 동사(팔다)를 골라 엔티티간 관계를 설정할 때예시 2 내용입니다.가게(stores), 판매상품(products)- 하나의 가계는 여러 개의 상품을 판다(팔수있다)여기까지 이해를 했는데, 판매상품과 가게 관계에서 왜 '하나의 상품' 이라는 표현을 하는건가요? 여러개의 상품을 판다. 라고 벌써 정의 했으면서, 왜 하나의 상품이라고 하지? 여러개의 상품은 하나의 가게에 의해 팔린다. 라고 해야 하지 않나? 그래서 1:N 관계가 되는거 아니야? 그런 생각에 질의 드렸습니다.감사합니다ㅡ
-
미해결김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복
created_at 관련 구현과 DB ENUM에 대해
안녕하세요, 강사님. 이번 강의를 듣고 2가지 궁금증이 생겨 질문을 올리게 되었습니다.created_at과 updated_at 구현 DB 레벨에서 ON UPDATE와 DEFAULT CURRENT_TIMESTAMP를 활용할 수 있다고 말씀해 주셨는데요, JPA에서는 @CreatedDate와 @LastModifiedDate로 애플리케이션 단에서 이를 구현할 수도 있습니다. 실무에서는 각각을 언제 사용할까요? 그리고 권장하는 구현이 따로 있으실까요?DB ENUM 타입을 잘 사용하지 않는 이유실무에서 DB ENUM 데이터 타입 사용을 권장하지 않는다는 말씀으로 이해했습니다. 단순히 해당 ENUM 값의 범위가 변경되었을 때 이를 바꿔주는 것 이상으로 성능 이슈가 있어서라고 생각했습니다만, 정확히 알기가 어렵습니다. 자세한 설명을 부탁드려도 될까요? 감사합니다.
-
미해결김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복
M:N 관계의 연관 엔티티 설계 순서
이런 식으로 실무적으로 접근했을 때 이 강의에서 예시를 들어주셨던 것처럼 (학생, 과목, 수강), (사용자, 영화, 평가) 엔티티를 개념적 모델링 단계에서 먼저 설계를 할텐데, 이때 설계 순서가 궁금합니다. (학생, 과목), (사용자, 영화) 와 같은 기본 엔티티를 먼저 만든 다음에 M:N 다대다 관계인 것을 확인하고 이것을 풀어내면서 동시에 비즈니스적 의미를 넣기 위해 중심(연관) 엔티티를 만드는 게 일반적인가요? 아니면 처음부터 학생 -> 수강 -> 과목 or 사용자 -> 평가 -> 영화 로 이어지도록 설계하는 게 일반적인가요?
-
미해결김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복
데이터 역사성 훼손 문제
자연키를 기본키로 설정했을 때 발생할 수 있는 문제점에서 데이터의 역사성 훼손을 예로 들었는데 이 문제는 대리키를 기본키로 등록했어도 발생할 수 있는 문제 아닌가요?이 문제를 해결하기 위해서는 어쩔 수 없이 주문 테이블에도 email 등을 중복으로 저장해야 해결할 수 있는 거 아닌가요?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
path 쿼리 관련 질문드립니다!
학습 관련 질문을 최대한 상세히 남겨주세요!고민 과정도 같이 나열해주셔도 좋습니다.먼저 유사한 질문이 있었는지 검색해보세요.인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요!20:15 경 작성해주신 findByPath 의 함수에서article_id 의 경우 함께 조회할 필요가 없나요?이전에 생성했던 unique index 구조를 생각해보면 article_id 와 path 2개로 복합 인덱스를 생성하였기 때문에 게시글마다 path 에 대한 unique 함을 보장하는 것이기 때문에 조회 시에 findByArticleIdAndPath 과 같은 식으로 해야 할 것 같은데, 제가 잘못 이해한 부분이 있는지 궁금합니다!
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
antigravity 에디터를 쓰신다면 종료해주세요
해당 에디터 사용시, 크롬 브라우저 원격 지원을 위해 9092포트를 점유하고 있어 kafka가 사용하는 9092포트와 충돌이 발생합니다. 만약 이용중인라면 다른 IDE를 사용하시는게 좋을것 같습니다.
-
미해결김영한의 실전 데이터베이스 입문 - 모든 IT인을 위한 SQL 첫걸음(SQL부터 차근차근)
sql서버가 켜지면 다시 꺼짐
mac m3 max 기준에서 8.0.44버전을 다운로드하면 sql서버가 켜지면 다시 꺼지고 켰다가 다시 꺼지고를 반복이 됩니다. 이런경우에는 어떻게 해야하나요?
-
해결됨[백문이불여일타] 데이터 분석을 위한 기초 SQL
WHERE절에 LIKE문법을 IN으로 묶어서 사용
데이터 필터링하기 연습문제 질문입니다.HackerRank - Weather Observation Station 6해당 연습문제에서 아래와 같이 작성했는데 이런경우에는 왜 안 되는 건가요?SELECT DISTINCT CITY FROM STATION WHERE CITY LIKE IN ('a%','e%','i%','o%','u%')WHERE절에 LIKE문법을 IN으로 묶어서 사용이 안 되는 건가요?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
프로젝트 구조
현재 강의에서 예시로 보여주신 프로젝트 구조가 현업에서도 주로 사용하는 구조일까요?? 현재 멀티모듈 구조가 아닌 별도 repository 구조에서 업무를 진행하고 있어서 궁금하네요.현업에선 다른 구조를 사용한다면 예시도 말씀해주시면 감사할것 같습니다.
-
해결됨카카오 면접관이 알려주는 MSA 관점에서의 분산 트랜잭션 패턴
강의 11 질문
강의의 시퀀스 다이어그램을 보았을 때, 2가지 정도 질문 드립니다. 1) stateless 요청에서 상태값의 전달 관련일반적으로 웹과 같이 stateless 한 서비스를 고려했을 때, 비동기 처리로 인해 주문서비스가 고객의 주문요청에 대해 (이후의 수행작업과 상관없이) 즉시 리턴하게 되는 것이 예상되는데요. (위 그림에서는 동기적인 flow 로 주문완료 응답을 end point 유저에게 전달하는 것으로 보이긴 합니다만) 주문 완료 페이지에서 주문한 상품 정보나 결제 수단의 상태값 전/후 를 보여주는건 어떤 식으로 동작하게 될까요? 가령, 실물 상품이 아닌 연속선상의 사이버 재화(ex: 네이버포인트 등)를 지급해야하는 입장에서 주문 이전의 재화 정보와 주문 요청 후(최종적으로 트랜잭션 완료된 후의) 증/감 재화 정보를 유저에게 보여주어야 할 수도 있는데, 뒷단의 비동기 작업(이벤트 subscribe)을 수행하는 스레드랑 최초 주문 요청을 받는 요청스레드가 다른 부분에서 고려해야할 것이 더 있을 것 같은데요. 얼핏 생각했을 때는, 사용자에게 즉시 내려주는 응답 페이지는 PENDING 에 해당하는 페이지 UI 로 (ex: 결제 진행중... 표시) 전달하고, 사용자 PENDING 페이지(클라이언트)에서 몇초 단위의 주기적인 서버 요청 등으로 완료 이벤트를 조회 하도록 처리하여 완료페이지로 리다이렉션 처리되는 방식이 될까요? 이 때, 중간 상태값은 별도 캐시서버등에 저장을 해야 할 것이고요. (리다이렉션 되는 완료페이지와 PENDING 페이지의 state가 또 다르므로)2) 메시지 브로커(카프카) 를 쓸 때 고려사항주제랑 좀 벗어난 걸 수는 있는데요, 보통 메시지 발행의 정확성을 위해 CDC (Change Data Capture) 를 설정하는 것이 일반적인 방식으로 알고 있습니다.다만, 현재 서비스중인 DB 의 설정이나 부하 이슈로 CDC 를 쓰지 못하는 경우에는 어떤 방식으로 처리가능할지가 궁금합니다.
-
해결됨카카오 면접관이 알려주는 MSA 관점에서의 분산 트랜잭션 패턴
강의 첨부파일 문의
11번 강의처럼 첨부파일 내려받았을 때 시퀀스 다이어그램 이미지 등이 없는 경우가 종종 존재합니다.첨부파일이 없는데 아이콘표시가 달린건지 누락된건지 알 수 있을까요?
-
해결됨실전! 데이터베이스 완전정복 [설계편]
인덱스 설계 시 컬럼 선택 기준
안녕하세요. 강사님의 좋은 자료 덕분에 장고 강의에 이어 데이터베이스 설계 강의까지 함께하고 있는 수강생 입니다. 강의를 듣던 중, "22.선택도 / 3:51" 내용을 보고 의문점이 생겨 질문 남깁니다. 배경선택도 값이 낮으면, 조건에 맞는 행이 적다 → 인덱스 효율이 증가한다.선택도 값이 높으면, 조건에 맞는 행이 많다 → 인덱스 효율이 떨어진다.라는 설명을 듣고, "중복이 적을수록 인덱스를 생성하면 더 효율적이겠구나" 라는 정보를 얻었습니다. 그 후, "어떤 컬럼을 선택해야 할까?" 장표에는 그중에서 선택성이 높은 컬럼 위주로 인덱스 생성이 효율적이라고 설명과 더불어 자료를 보여주셔서 의문이 생겼습니다. 질문Q. 선택성이 높으면 조건에 맞는 행이 많아 중복되는 행을 다시 스캔하여 필터링 하기 때문에 인덱스 사용에 비효율적이지 않을까요? 그럼 나머지 강의를 일단 수강하며 배움에 즐거움을 만끽하러 가보겠습니다. 감사합니다.
-
미해결김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복
실무팁 - 등록자,수정자 컬럼 관리 관련 질문입니다.
실무에서 등록일,수정일, 등록자, 수정자 4개 컬럼을 테이블 별로 만들어서 쓰라고 하셨는데1) 모든 테이블에 4개 컬럼은 만든다 생각해도 되는지?2) 유지보수 상 운영 테이블을 직접 수정하는 경우가 있었는데 이때 MySQL 워크벤치 에서 직접 수정하는 경우는 일일히 의식해서 set에 updated_by 를 넣어주는게 최선인지??궁금합니다.
-
해결됨[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
학습 전 커리큘럼 관련 질문 드립니다
안녕하세요강의 커리큘럼에 대해 알고 싶은 게 있어 질문 드립니다 저는 현직 웹개발자인데1인 방치형 rpg 게임을 만들고 싶어서작년에 M1+C1 강의를 구매했다가 다시 듣기 시작했습니다 그런데 학습 전 수강평을 살펴보는데 M1 강의가 무산됐다는 글이 많더라구요그래서 무산된 프로젝트를 참고하는 것보단 완성된 프로젝트를 참고하고 싶어서컨셉이 MMO RPG라서 구매를 하지 않았던 M2 강의를 구매했습니다 그런데 이 프로젝트도 제 기억엔 작년 하반기나 올해 상반기쯤 마감 예정이었던 듯한데마지막 업로드가 얼마 전인 12월 17일이더라구요 그래서 강의 시작 전 조금 더 확신을 갖고 싶어서 질문 드리고 싶습니다바쁘시겠지만 긴 답변을 원하는 게 아닌 만큼퀄리티 떨어지는 AI답변 말고현 시점에서의 강사님의 직접적인 답변을 받아보고 싶습니다 강의 구매목록M1 + C1M2C# 개발시리즈 part1(C# 기초)C# 개발시리즈 part3(유니티 엔진)C# 개발시리즈 part4(게임서버)C# 개발시리즈 part7(Unity + C# 서버 연동 기초) 현재 언어는 다르지만 개념이 겹치는 걸 제외하고 위 강의들을 구매하였고 따로 unity 에셋 정도를 구매한 상태인데강의 금액도 금액이고 제가 이 강의를 수강하려면 적지 않은 시간이 들 거 같아서시작 전 강사님의 시선에서 제 학습 방향이 가능한 것인지 답변을 들어보고 싶습니다 질문 1위 강의들을 완강하고 기획과 아트 리소스를 변경할 수 있게 되면게임을 출시할 수 있을 정도의 완성 구조 소스코드를 제공받을 수 있는 것 맞을까요? 질문 2unity 에셋스토어에서 캐릭터 등의 리소스를 구매하여 사용하려는데가능할지 여부와 만약 그렇게 할 경우 주의 또는 참고해야 될 사항이 있을지 궁금합니다
-
미해결김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복
구글이 이메일 변경을 허용하는 이유
이번에 설계 1편에서 자연 키와 대리 키 부분을 학습하면서,최근 구글이 이메일 변경을 부분적으로 검토하고 있다는 뉴스가 떠올랐습니다.예전에는 이메일 변경이 거의 불가능했던 이유가이메일을 자연 키처럼 사용해왔기 때문이라고 이해해도 될까요?그리고 지금에 와서는 어떤 구조적 변화나 트레이드오프를 통해이메일 변경이 가능해졌는지도 궁금합니다.