묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨멀티 모듈 아키텍처로 구현하는 은행 서버 핵심 기능 [ Kotlin & Spring ]
프로젝트 의존 관계
안녕하세요. 강의 잘 듣고 있습니다.다름이 아니라 프로젝트 의존성 관계를 그래프로 그려주셨는데요. 그려주신 그래프가 맞는걸까요..?bank-mornitoring은 아무런 모듈을 의존하지 않고, 반대로 bank-monitoring을 의존하는 모듈은 bank-api, bank-event인데 그려주신 그래프와 관계가 좀 다른거 아닌가 싶어 여쭤봅니다!
-
미해결김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복
1:N 관계에서 중간테이블 (연관엔티티)
안녕하세요 우선 값진 강의 만들어주셔서 감사드립니다. 취준을 하며 개인 프로젝트를 진행 중인데, 고민 해오던 부분들에 많은 도움이 되었습니다. 강의를 완강하고, 학습한 내용들을 바탕으로 이전에 진행했던 프로젝트의 DB를 재검토하고 재설계 해보고 있습니다.구글링, 해당 게시판에 올라온 이전 질문들 참고하고 ai와 대화를 하고도 완전하게 확신이 서지 않는 부분이 있어서 질문드립니다.우선 제가 만들고 있는 서비스는 "좌석이 있는 공연 예매 시스템" 입니다.공연 데이터 생성시 해당 공연의 좌석들이 함께 생성됩니다. 즉 특정 공연의 특정 좌석들이 고유하게 생성됩니다.그리고 사용자는 좌석을 다중 선택하여 선점하고 예매할 수 있습니다.(예매 - 좌석) 관계는 (1:N) 입니다.그래서 기존 DB 에서는 N 쪽인 좌석이 예매 id 를 fk 로 들고 있는 간단한 형태로 진행하였습니다. 그런데 강의 중 다대다(M:N) 관계 부분에서 연결 테이블의 본질이 관계 자체를 하나의 독립된 데이터로 보고, 그것을 테이블로 모델링 하는 것 이라는 내용을 접하고,비록 1:N 관계이지만, 예매 - 좌석 관계가 엔티티로 승격될만 한가에 대한 고민을 했습니다. (강의에서 예시로 사용된 주문 - 주문상품 - 상품 을 보며, 좌석을 수량이 단 하나뿐인 상품이라고 생각한다면 예매 - 예매좌석 - 좌석 형태가 비슷하다고 생각했습니다.) 이유가 충분하다면 실무에서도 N:M 관계에서 뿐만 아니라 1:N 관계에서도 중간테이블 (연관엔티티)를 두는 설계를 실제로 하는지, 현재 상황에서도 (질문이 너무 길어지고 복잡해질까봐 제가 판단한 이유들을 설명드리진 않았지만) 연관관계 엔티티를 두는 것이 타당한 판단일지 고견 여쭈어봅니다. 긴 질문 읽어주셔서 감사합니다!
-
미해결김영한의 실전 데이터베이스 - 설계 2편, 실무에서 반드시 마주치는 9가지 설계 패턴
공통코드 관련한 질문 드립니다.
안녕하세요, 공통코드 관련하여 코드그룹, 코드상세 테이블 설계 강의 잘 들었습니다.관련하여 2가지 질문이 있습니다!1. 혹시 사내에 dataware라는 메타시스템을 사용할 경우에는 어떤 식으로 운영을 하는지 궁금합니다. 전 회사에서는 메타시스템은 단순 정의 용도로 사용하고, 모든 코드값은 enum으로 사용을 했었는데요~강의 내용에 있는 것처럼 값이 바뀔 때마다 계속 재배포 작업을 해야 하긴 했지만, 그 외에 특별한 이슈는 없었던 것 같습니다. (배치성 프로젝트라 빠른 대응이 필요하지 않았음) 현 회사에서는 아직 정해진 정책은 없지만, 메타DB를 어플리케이션에서 접근할 수 있도록 하는 방법은 어떨지도 고민하고 있습니다.그래서 일반적으로는 메타시스템, 공통코드 테이블, enum을 어떤 식으로 mix하여 사용하는지 궁금합니다. 추가로 고유한 컬럼 인식을 위해 최대한 유니크한 컬럼명을 사용하고 있는데요~예를 들어, 사용자로그인상태코드라는 컬럼이 있더라도 사이트에 따라 아래처럼 분리하는 경우가 존재합니다.A사이트사용자로그인상태코드B사이트사용자로그인상태코드이 경우 같은 아래처럼 코드값을 다르게 정의할 경우 현실적으로 체크하는 것이 좀 어려운 것 같습니다. A사이트의 경우 0:정상, 1:잠금, 2:정지, 3:휴면, 4:탈퇴 B사이트의 경우 0:정상, 1:잠금, 2:탈퇴, 3:휴면 (B사이트는 정지 상태가 없음)같은 의미의 코드일 경우 같은 코드값을 가지게 하고 싶은데 영한님께서도 이러한 고민을 하신적이 있으신지 궁금하고 어떻게 해결하셨을지도 궁금합니다~ 감사합니다.
-
해결됨2,000++억건 데이터를 다루는 실리콘 밸리 AI 개발자의 PostgreSQL
실습용 테이블, 데이터 생성 파일 있을까요?
강사님 강의에 나오는 테이블, 데이터 생성하는 스크립팅 파일이 어디 있을까요?실습해보려고 하는데 제가 못찾고 있어서 한번 질의드립니다.
-
미해결스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
@Version 어노테이션이 붙은 필드는 낙관적 락이든 비관적 락이든 업데이트가 됩니다.
설명중에 @Version 필드를 낙관적 락에서 이용할 수 있어가지고~ 라고 하셧는데 실제 돌려보니 비관적락 2에도 DB 업데이트가 되었습니다. AI 에게 물어보니 @Version 어노테이션이 붙은 필드는 JPA 사용시 @Lock 어노테이션 사용여부 상관없이 업데이트가 된다고 합니다. 혹 다른 qna 에도 같은 내용이 있는지 확인은 모두 안해 보았습니다. ========================응, 같은 엔터티 row에 실제 UPDATE가 나가면 @Version 필드는 증가한다고 보면 돼.락 방식이 낙관적이든 비관적이든 핵심은 이거야.@Version private Long version;이 필드가 있는 엔터티가 dirty checking으로 변경 감지되고, flush/commit 때 UPDATE 대상이 되면 JPA/Hibernate가 version 값을 같이 갱신해.========================
-
해결됨[백문이불여일타] 데이터 분석을 위한 기초 SQL
IN 사용방법 문의
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. IN 연산자를 사용할때 LIKE나 NOT LIKE와 함께 사용할 수 없나요? 예를 들어, A로 시작하거나 E로 시작하는 영화 제목을 찾고싶을때 TITLE LIKE 'A%' OR TITLE LIKE 'E%' 로 쓰지 않고,TITLE LIKE IN ('A%', 'E%') 로 사용할 수는 없는건가요?오류가 나서 여쭤봅니다!
-
미해결SQL 코딩테스트를 위한 마지막 걸음
리뷰를 가장 많이 작성한 회원들 조회
안녕하세요 최근에 코테를 봤었는데,비슷한 문제가 프로그래머스에 있어서 어떤 로직이 맞는지 궁금해서 질문을 남깁니다 프로그래머스의 문제는 SQL 고득점 kit에 있는 "그룹별 조건에 맞는 식당 목록 출력하기" 입니다. MySQL로 진행했고, 리뷰를 가장 많이 작성한 멤버id를 구하기위해 서브쿼리를 작성후 rnk=1을 사용했습니다. 이후, 리뷰 가장 많이 작성한 멤버가 여러명일 수 있으므로 바깥에서 in을 사용하여 최종적으로 order by로 정렬했습니다.SELECT MEMBER_NAME, REVIEW_TEXT, DATE_FORMAT(REVIEW_DATE, '%Y-%m-%d') AS REVIEW_DATE FROM REST_REVIEW r INNER JOIN MEMBER_PROFILE m ON r.MEMBER_ID = m.MEMBER_ID WHERE r.MEMBER_ID IN ( SELECT MEMBER_ID FROM( SELECT MEMBER_ID, COUNT(MEMBER_ID), RANK() OVER(ORDER BY COUNT(MEMBER_ID) DESC) AS RNK FROM REST_REVIEW GROUP BY MEMBER_ID ) AS A WHERE RNK = 1 ) ORDER BY REVIEW_DATE, REVIEW_TEXT 최근 코테에서는 가장 높은 점수를 가진 회원의 부서ID를 구해야 하는 문제였고, 가장 높은 점수를 가진 회원이 여러명 일 경우 모두 출력하라고 명시되어있었습니다.해당 코테에서도 rank() over (order by score desc)를 쓰고 바깥에서 rnk=1인 회원id를 구해 본 테이블과 join을 하는 로직으로 풀었는데 이렇게 접근하는게 맞는지 궁금합니다.
-
미해결김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복
일대일 fk 위치
안녕하세요.JPA 강의를 듣다가 궁금한 점이 생겨 질문드립니다.JPA 강의에서는 일대일 관계를 설명하면서 Member가 FK를 가지고 있는 방식이 더 좋다고 설명하셨고 김영한님께서도 주 테이블에 FK를 두는 방식을 더 선호한다고 말씀하신 것으로 해했습니다.그래서 저는 일반적으로 주 테이블이 FK를 가지고 있는 방식이 더 편리하다고 생각하고 있었습니다.JPA 강의에서 해당 이미지로 설명하셨어요. 그런데 이번 강의에서는 보조 테이블이 FK를 가지고 있는 방식이 더 좋다고 설명되어서 조금 헷갈립니다.저는 화면의 예시에서 Member가 주테이블,Locker를 보조 테이블이라고 이해했는데 강의마다 설명이 반대되는 것처럼 느껴졌습니다.혹시 제가 잘못 이해한 부분이 있을까요?
-
해결됨2,000++억건 데이터를 다루는 실리콘 밸리 AI 개발자의 PostgreSQL
수업에서 사용하는 툴 질문드려요
음 바로 전 강의에 docker compose 명령어를 사용하시는데 도커 설치 안내도 없었고, 지금 강의도 사용하는 툴이 뭔지 안나와 있어서 뭔가 중간중간 수업이 연결이 잘 안되는 느낌인데요.. 편집하다가 잘린 건가요 아니면 원래 이렇게 녹화가 된 건가요?
-
미해결SQL 코딩테스트를 위한 첫 걸음
2강에 파일 어디있을까여,,
안녕하세요 젬마 님!위 글자들 어디서 copy & paste 하는지 질문 드려요. 첨부 pdf 찾아봐도 위 table : weather 가 보이지 않아서요.. 흑흑
-
미해결김영한의 실전 데이터베이스 - 설계 2편, 실무에서 반드시 마주치는 9가지 설계 패턴
다음 강의는 언제쯤 나올까요?
다음 강의는 언제쯤 나오나요? 성능 최적화 배우고 싶습니다 😄
-
미해결김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복
제 3 정규형 vs BCNF 정규형 차이점?
강의들을 때는 어렴풋이 알거 같고 근데 강의듣는거 끝내고 실제로 구별해보라고 하면 잘 못하는거 같아서요. 혹시 차이점을 예를들어서 좀 쉽게 설명해주실수 있을까요?저는 제 3 형 정규형 한거 같은데 또 보면 bcnf인거 같기도 하고 엄청 헷갈리고 있습니다. 도와주세요!제가 찾은 건 bcnf 가 후보키가 아니라 슈퍼키라고 나와서 더 헷갈리는 거 같아요.감사합니다. => 오랫동안 들여다 보고 이렇게 이해를 했는데 맞는지 모르겠습니다.기본적으로 슈퍼키가 아닌 일반키가 함수결정자가 되면 bcnf 위반이 되는거고 제 3 정규형은 슈퍼키가 함수결정자이거나 일반키가 함수결정자라도 결론쪽이 후보키 중에 일부이면 (prime attribute)이면 위반이안되는거 같습니다.
-
해결됨[말 한마디로 뚝딱!] AI와 함께 나만의 수익화 웹사이트를 만드는 법
XAMPP에서 Apache, DB 재기동 시 접속안되는 문제
안녕하세요.XAMPP에서 처음 세팅할 때는 잘 되었는데 다시 Apache랑 MySQL을 재기동하니 이렇게 나오네요ㅠdata/dbconfig.php 를 봐도 DB 접속정보가 틀린것도 아닌데 왜 이런 오류가 나는지도 모르겠고 방법을 구글링 및 AI 통해서 찾아봐도 해결이 안되네요ㅠ 도움부탁드리겠습니다.
-
해결됨2,000++억건 데이터를 다루는 실리콘 밸리 AI 개발자의 PostgreSQL
DESC, ASC
desc가 내림차순 asc가 오름차순인데 반대로 설명된거 같습니다.
-
미해결[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]
FOREIGN KEY 정리하기, 영상대로 SQL코드 복붙해도 안되요.
안녕하세요.SQL 강의 중 FOREIGN KEY 정리하기 (업데이트) 파트를 듣고 있습니다.문제는 영상시연과 달리, PDF파일의 외래키 코드를 복붙하고 번개모양 실행을 누르면 빨간 X표시가 나와요. 그 때문인지 sqlDB의 테이블스에 buyTbl ,usertbl 두개다 안떠요. 도와주시면 감사하겠습니다.
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
패키지 구분에 대해 궁금한게 있습니다
요즘은 domain별로 패키지를 나눈다고 들었는데 강의에서는 역할별로 패키지를 나누고 있어서요.어떻게 나누는게 좋은건가요?!\
-
미해결Spring Boot와 React로 배우는 초간단 REST API 게시판 만들기
스프링부트 서버 에러나요
Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.2026-04-28T17:27:55.938+09:00 ERROR 27483 --- [prac] [ main] o.s.b.d.LoggingFailureAnalysisReporter :
-
미해결데이터분석가 서류탈락? 알려드릴게요, 되는 포트폴리오
코드를 첨부해야하는 이유가 있나요?
안녕하세요 멘토님~ 강의 잘 들었습니다 . 다름이 아니라 코드를 첨부해야하는 이유가 뭔가요?예를 들어서 df.shape결과를 코드로 캡쳐해서 첨부하는 것보다, 직접 글씨로 적는게 보기에 더 낫지 않나 해서욤그 외 roc값이나, 컬럼명이나,,, 등등
-
미해결김영한의 실전 데이터베이스 - 기본편
간단한 오타 제보입니다.
UNION 문제 4번 부분에 간단한 오타 있습니다.정확한 부분은 아래 사진 참조부탁해용
-
해결됨비전공자도 이해할 수 있는 MySQL 성능 최적화 입문/실전 (SQL 튜닝편)
큰 범위 조회 시 EXPLAIN의 rows 값이 정확하지 않은 이유가 궁금합니다.
안녕하세요 강사님.[실행 계획에서 type 의미 분석하기 (const, range, ref)] 강의에서 "Index Range Scan할 때 조회 범위가 크면 성능 저하의 원인이 되기도 한다."라는 내용을 듣고 정말인지 궁금해져서 EXPLAIN을 한번 돌려봤습니다.CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), age INT ); -- 높은 재귀(반복) 횟수를 허용하도록 설정 -- (아래에서 생성할 더미 데이터의 개수와 맞춰서 작성하면 된다.) SET SESSION cte_max_recursion_depth = 1000000; -- 더미 데이터 삽입 쿼리 INSERT INTO users (name, age) WITH RECURSIVE cte (n) AS ( SELECT 1 UNION ALL SELECT n + 1 FROM cte WHERE n < 1000000 -- 생성하고 싶은 더미 데이터의 개수 ) SELECT CONCAT('User', LPAD(n, 7, '0')), -- 'User' 다음에 7자리 숫자로 구성된 이름 생성 FLOOR(1 + RAND() * 1000) AS age -- 1부터 1000 사이의 난수로 나이 생성 FROM cte; CREATE INDEX idx_age ON users (age); EXPLAIN SELECT id FROM users WHERE id BETWEEN 1 AND 100000; -- type : range결과 창에서 rows가 100,000이 아니라 110,836으로 나오더라고요. 옵티마이저가 id는 PK이라서 중복이 없을 거라는 것을 알고 Auto Increment가 적용되어 있어서 순차적으로 데이터가 들어갔음도 알텐데 왜 10만 개로 딱 떨어지게 예측하지 못하는지 직관적으로 잘 이해가 가지 않습니다.감사합니다.