inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

M:N 관계의 연관 엔티티 설계 순서

미해결

김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복

이런 식으로 실무적으로 접근했을 때 이 강의에서 예시를 들어주셨던 것처럼 (학생, 과목, 수강), (사용자, 영화, 평가) 엔티티를 개념적 모델링 단계에서 먼저 설계를 할텐데, 이때 설계 순서가 궁금합니다. (학생, 과목), (사용자, 영화) 와 같은 기본 엔티티를 먼저 만든 다음에 M:N 다대다 관계인 것을 확인하고 이것을 풀어내면서 동시에 비즈니스적 의미를 넣기 위해 중심(연관) 엔티티를 만드는 게 일반적인가요? 아니면 처음부터 학생 -> 수강 -> 과목 or 사용자 -> 평가 -> 영화 로 이어지도록 설계하는 게 일반적인가요?

  • sql
  • mysql
  • dbms/rdbms
  • 소프트웨어-설계
  • SQLD
박동규 댓글 2 좋아요 0 조회수 101

lag/lead offset 관련 질문

미해결

데이터 분석 SQL Fundamentals

안녕하세요 강의 너무 잘 듣고 있습니다. lag와 lead 함수에서 offset은 row 단위로밖에 설정을 못하는 걸까요? hiredate를 기준으로 order by 했을 때 day를 기준으로 offset을 설정할 수 있는지 궁금합니다. ex) lag를 이용하여 1일전 매출을 가져오는 방법

  • sql
  • postgresql
  • dbms/rdbms
  • 데이터-엔지니어링
자비스 댓글 2 좋아요 0 조회수 92

클로드 대신 제미나이 사용해도

해결됨

AI 다루는 백엔드 설계 기본 - SpringBoot SNS 편

클로드 대신 제미나이 사용해도 수업따라가는데는 문제가 없나요?

  • postgresql
  • spring-boot
  • dbms/rdbms
  • redis
  • s3
sein 댓글 2 좋아요 1 조회수 784

외부 API 통합 시 데이터 제어 범위 설계 질문

해결됨

제미니의 개발실무 - 커머스 백엔드 기본편

상황 정리 저희가 매장 관리자용 통합 예약 관리 시스템 을 개발하고 있습니다. 현재 시스템 구조 [외부 예약 플랫폼 (네이버 같은)] ↓ 자동 연동 [매장 POS 시스템 (티오더 같은)] ↓ API 폴링 [우리 통합 관리 시스템] 고객이 외부 플랫폼에서 예약하면 POS에 자동으로 들어옴 우리는 POS API를 폴링해서 예약 데이터를 가져옴 우리 어드민에서 직접 예약 등록 기능도 곧 추가 예정 문제 상황 POS 업체에 확인해보니: API에서 외부 플랫폼 예약 구분이 안 됨 → 구분값 추가 예정 외부 예약은 원칙적으로 수정 불가 현재는 수정이 되지만 플랫폼 API 키가 연결 안 되어 사실상 불가능 DB만 바꿔서는 의미 없고, 외부 플랫폼 API 재호출이 필요 POS와 외부 플랫폼 간 연동이 아직 불완전한 상태 논의된 두 가지 방향 A안 (readonly 방식) - 우리 어드민 생성 예약 → POS 직접 등록 (수정 가능) - 외부 플랫폼 예약 → POS에서 폴링해서 조회만 (수정 불가) - UI에서 "외부 예약" 표시하고 수정 버튼 비활성화 - 수정 필요시 원본 플랫폼 바로가기 링크 제공 B안 (통합 수정 방식) - 모든 예약을 우리 시스템에서 직접 수정 가능하게 - 외부 예약 수정 시 POS API → 외부 플랫폼 API 호출까지 처리 장단점 분석 A안 장점 각 시스템의 책임 범위가 명확함 동기화 정합성 이슈 없음 외부 플랫폼 정책 변경에 영향 안 받음 여러 플랫폼을 한 곳에서 조회만 해도 관리자 리소스 절감 효과 A안 단점 수정은 여전히 각 플랫폼에서 해야 함 "진정한 통합 관리"는 아님 B안 장점 완전한 통합 관리 경험 관리자가 한 곳에서 모든 예약 제어 B안 단점 외부 플랫폼 API 직접 연동 불가 (계약 주체가 매장) POS가 외부 플랫폼 제어 API를 제공해야 하는데 현재 없음 POS-외부 플랫폼 양쪽 동기화 복잡도 높음 외부 플랫폼 정책(취소규칙 등) 변경 시 계속 대응 필요 문제 발생 시 책임 소재 애매 질문 이런 다중 오리진 데이터를 통합하는 시스템 에서: readonly로 가는 게 맞을까요, 아니면 수정까지 구현해야 할까요? 단계적으로 접근한다면 어떤 순서가 좋을까요? 1단계: 통합 조회만 2단계: POS가 API 제공하면 그때 수정 추가 비슷한 사례에서 일반적으로 어떻게 접근하나요? 현재 상황에서는 A안(readonly)이 합리적이라고 판단됩니다. 하지만 시간이 지나서 다음 조건들이 충족된다면: POS에서 외부 예약 플랫폼 식별값을 제공 외부 예약 플랫폼 API를 저희가 제공받을 수 있음 그때는 어떤 아키텍처로 가야 할까요? 옵션 1: 직접 호출 방식 [우리 시스템] → [외부 플랫폼 API] (직접 호출) → [POS API] (동기화용) 우리가 외부 플랫폼 API를 직접 호출 POS는 조회 + 동기화 확인용으로만 사용 옵션 2: POS Proxy 방식 [우리 시스템] → [POS API] → [외부 플랫폼 API] POS가 외부 플랫폼 제어 API를 제공하도록 요청 우리는 POS API만 호출하면 POS가 내부적으로 플랫폼 API 처리 외부 플랫폼 변경사항은 POS가 책임 옵션 3: readonly 유지 [우리 시스템] → [POS API] (조회만) 기술적으로 가능해져도 readonly 유지 각 플랫폼 바로가기만 제공 어떤 방식이 일반적이고, 각 옵션의 trade-off는 무엇인가요? 특히 옵션 1 vs 옵션 2에서: 우리가 직접 여러 외부 API를 관리하는 게 나을까요? 아니면 POS가 Proxy/Gateway 역할을 하게 하는 게 나을까요?

  • kotlin
  • spring-boot
  • 도메인
  • dbms/rdbms
  • backend
우으어으 댓글 1 좋아요 1 조회수 114

claude 동작 결과값이 다를 경우 어떻게 해나가야 될지 모르겠습니다.

해결됨

AI 다루는 백엔드 설계 기본 - SpringBoot SNS 편

git에 있는 .claude를 프로젝트 파일세 추가하고, 'User 도메인을 만들고 회원가입, 조회 등 관련 API를 만들어줘. ' 라고 동일하게 터미널에 입력시 얼추 강의와 비슷하게는 만들어지는데 (여러번 돌려봤는데) 예를들면 dto에 record가 생성은 되는데 네이밍이 아예 다르다거나, 네이밍은 그럴 수 있는데 내용이 아예 달라서(예: Annotation이 전혀 없이 아래와 같이 생성 되거나 다른 파일의 내용이 다르거나 하는 경우, Service에 애노테이션이 아예 없거나, Controller에도 메서드가 반절도 안만들어졌다거나, resources>http>user.sh파일 내용에 내용이 반절이상 없다거나.. 등 package com.apiece.springboot_sns_sample.controller.dto; import com.apiece.springboot_sns_sample.domain.user.User; public record UserRegisterRequest(String email, String password, String username) { public User toEntity(String encodedPassword) { return User.builder().email(email).password(encodedPassword).username(username).build(); } } 이럴 경우 어떻게 강의를 수강해 나가면 좋을지 궁금합니다.

  • postgresql
  • spring-boot
  • dbms/rdbms
  • redis
  • s3
쿠드비 댓글 2 좋아요 2 조회수 180

"주문별 고객별 연관 상품 추출 SQL로 구하기-02" 수업 질문

미해결

다양한 사례로 익히는 SQL 데이터 분석

강사님 안녕하세요 WITH절로 조인하셨을때 아래와 같이 WHERE절에서 product_id를 비교했을때와 조인조건으로 넣었을때 같은 실행계획과 성능이 나오는것 같은데 둘다 맞다고 봐도 되나요? 조인조건에 있는 것과 where조건에 있는 것이 어떤 차이가 있는지 잘 모르겠어서요! [궁금한 사항] join temp_00 b on a . user_id = b . user_id and a . product_id != b . product_id --where a.product_id != b.product_id [전체쿼리] with temp_00 as ( select b . user_id , a . order_id , a . product_id from order_items a join orders b on a . order_id = b . order_id ), temp_01 as ( select a . user_id , a . product_id as prod_01 , b . product_id as prod_02 from temp_00 a join temp_00 b on a . user_id = b . user_id and a . product_id != b . product_id --where a.product_id != b.product_id ) select count (*) from temp_01

  • sql
  • postgresql
  • dbms/rdbms
  • 데이터-엔지니어링
  • data-analysis
박준현 댓글 2 좋아요 0 조회수 87

neo4j 사용에 질문 드립니다.

미해결

graphRAG - Neo4J로 구현하는 지식 그래프 기반 RAG 시스템 (feat. LangChain)

만약, 만든 랭체인과 그래프rag를 서비스로 만든다면, neo4j를 호출할 때, pooling은 고려하지 않아도 되는지요? 일반적으로 db 연결에 timeout이나 pooling 등의 설정을 해줘야 하는 것으로 아는데, api를 호출하는 것이라 서버에서 자체적으로 처리하는 것으로 생각하면 될런지요?

  • dbms/rdbms
  • neo4j
  • llm
  • langchain
  • rag
bluebamus 댓글 2 좋아요 0 조회수 82

hooks가 동작하기 위한 내용이 없는 것 같아서 추가가 필요하지 않을까 싶습니다.

해결됨

AI 다루는 백엔드 설계 기본 - SpringBoot SNS 편

Claude Code활용(Skills, Hooks)에서 hook과 관련된 설정(예: spotless)내용은 깃 주소에 올려진 프로젝트의 build.gradle.kts에 반영이 되어 있지 않은 것 같아요. hooks경로에 lint.sh는 생성이 되어 있는데 말이죠. settings.loca.json 파일도 없어요. 강의에 관련 설명만 존재하기 떄문에 git에 올려진 프로젝트에 업데이트를 해주시면 어떨까 싶습니다.

  • postgresql
  • spring-boot
  • dbms/rdbms
  • redis
  • s3
쿠드비 댓글 3 좋아요 1 조회수 146

.claude폴더를 복붙해서 넣긴 넣었는데 궁금한 점이 생겼어요.

해결됨

AI 다루는 백엔드 설계 기본 - SpringBoot SNS 편

.claude 폴더가 어떻게 해당 프로젝트에 생성되게하나요? 해당 프로젝트에서 claude실행한다고 생성되지는 않는 것 같은데.. .claude폴더가 생성되는게 어떤 것에 의해 기본적으로 생성될 때 agents, commands, hooks, skill는 생성이 되지 않고, 필요에 의해 각 경로를 생성하고 skills안에 spring-api-rules와 같은 원하는 것들(주로 어떤 항목들에 대한 것들을 넣으시는지도 궁금합니다.)을 넣으면 되는지 궁금합니다. 해당 프로젝트에 폴더로 생성되는 것과 맥북의 root(?) 폴더에 .claude로 생성되는 것에 어떤 차이가 있나요?

  • postgresql
  • spring-boot
  • dbms/rdbms
  • redis
  • s3
쿠드비 댓글 2 좋아요 1 조회수 213

데이터 역사성 훼손 문제

미해결

김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복

자연키를 기본키로 설정했을 때 발생할 수 있는 문제점에서 데이터의 역사성 훼손을 예로 들었는데 이 문제는 대리키를 기본키로 등록했어도 발생할 수 있는 문제 아닌가요? 이 문제를 해결하기 위해서는 어쩔 수 없이 주문 테이블에도 email 등을 중복으로 저장해야 해결할 수 있는 거 아닌가요?

  • sql
  • mysql
  • dbms/rdbms
  • 소프트웨어-설계
  • SQLD
박동규 댓글 2 좋아요 0 조회수 84

sql서버가 켜지면 다시 꺼짐

미해결

김영한의 실전 데이터베이스 입문 - 모든 IT인을 위한 SQL 첫걸음(SQL부터 차근차근)

mac m3 max 기준에서 8.0.44버전을 다운로드하면 sql서버가 켜지면 다시 꺼지고 켰다가 다시 꺼지고를 반복이 됩니다. 이런경우에는 어떻게 해야하나요?

  • sql
  • mysql
  • dbms/rdbms
  • SQLD
공동욱 댓글 2 좋아요 0 조회수 168

터미널에서 claude 입력 과정

해결됨

AI 다루는 백엔드 설계 기본 - SpringBoot SNS 편

3분 7초대에 터미널에서 claude 입력할 때, 그 전에 설정과정들을 알려주면 이해하기 편할 것 같습니다. 처음이라 찾아보는데 시간이 좀 걸렸습니다.

  • postgresql
  • spring-boot
  • dbms/rdbms
  • redis
  • s3
  • claude
김백곰 댓글 1 좋아요 1 조회수 107

PG 결제 승인 로직

해결됨

제미니의 개발실무 - 커머스 백엔드 기본편

안녕하세요! PG 결제 승인 API 구현 중 고민이 되는 부분이 있어서 질문드립니다! PG사로 부터 /callback/success 등과 같이 콜백 url로 요청을 받았을때 결제 승인을 서버에서 진행하는 플로우인데 결제 승인 요청 전 결제 검증 PG 결제 승인 API 호출 정상 승인 or 승인 실패 시 transaction_history 저장 의 흐름인 것 같은데 추가적으로 3번에서 정상 승인 시에 PG사로 부터 응답받은 paymentKey, amount 등을 요청한 paymentKet, amount와 동일한지 검증이 필요할까? 라는 생각이 들었습니다. 궁금한 점은 실무에서 PG사 연동 시에는 결제 승인 응답 후 검증 로직을 다루는지? 다룬다면 실제 승인 요청 내역과 응답 내역이 다르다면 어떻게 처리하는지? (클라이언트로 응답, 불일치 시 보정 전략 등..) 외부 API 호출 시 서킷 브레이커를 사용하는 걸 선호하는지? 정도가 있습니다! 제미니님 덕분에 항상 많이 배워갑니다 감사합니다~!

  • kotlin
  • spring-boot
  • 도메인
  • dbms/rdbms
  • backend
댓글 2 좋아요 1 조회수 182

fulltext index 생성이 안됩니다

미해결

graphRAG - Neo4J로 구현하는 지식 그래프 기반 RAG 시스템 (feat. LangChain)

지식그래프(KG) 검색 - 전문 검색에서 fulltext index 생성이 안됩니다. 여러번 실행해도 동일합니다. 아래 3개 중 movie_title_tagline_fulltext만 생성되고 movie_title_fulltext와 person_name_fulltext는 실행해도 반응이 없습니다. SHOW FULLTEXT INDEXES를 실행하면 movie_title_tagline_fulltext만 표시됩니다. Neo4j 버전: 버전 2.1.1(2.1.1) Neo4j는 Desktop 버전으로 실행했습니다. [참고] 실행 파일: KG_P1_03_neo4j_movie_03_full-text_search.ipynb [스크립트] CREATE FULLTEXT INDEX movie_title_fulltext IF NOT EXISTS FOR (m:Movie) ON EACH [m.title] CREATE FULLTEXT INDEX movie_title_tagline_fulltext IF NOT EXISTS FOR (m:Movie) ON EACH [m.title, m.tagline] CREATE FULLTEXT INDEX person_name_fulltext IF NOT EXISTS FOR (p:Person) ON EACH [ p.name ]

  • dbms/rdbms
  • neo4j
  • llm
  • langchain
  • rag
한경만 댓글 2 좋아요 0 조회수 78

.claude 안에 폴더 및 파일은 어떻게 생성하죠?

해결됨

AI 다루는 백엔드 설계 기본 - SpringBoot SNS 편

.claude 안에 폴더 및 파일은 어떻게 생성하죠?

  • postgresql
  • spring-boot
  • dbms/rdbms
  • redis
  • s3
아라레 댓글 1 좋아요 2 조회수 240

QnA에서 Join 필드 표현법

해결됨

제미니의 개발실무 - 커머스 백엔드 기본편

강사님의 코드를 보니 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개 처럼 많을때는 어떻게 처리하시는 편인지도 궁금합니다

  • kotlin
  • spring-boot
  • 도메인
  • dbms/rdbms
  • backend
wheon06 댓글 1 좋아요 1 조회수 129

SQL server 설치 오류

미해결

데이터베이스 MSSQL

안녕하세요. Windows PowerShell 2.0이 서비스 종료하여 설치 오류가 떴는데 어떻게 해야하나요?

  • sql
  • dbms/rdbms
  • mssql
  • query-tuning
  • dba
조아저씨 댓글 3 좋아요 0 조회수 251

인덱스 설계 시 컬럼 선택 기준

해결됨

실전! 데이터베이스 완전정복 [설계편]

안녕하세요. 강사님의 좋은 자료 덕분에 장고 강의에 이어 데이터베이스 설계 강의까지 함께하고 있는 수강생 입니다. 강의를 듣던 중, "22.선택도 / 3:51" 내용을 보고 의문점이 생겨 질문 남깁니다. 배경 선택도 값이 낮으면, 조건에 맞는 행이 적다 → 인덱스 효율이 증가한다. 선택도 값이 높으면, 조건에 맞는 행이 많다 → 인덱스 효율이 떨어진다. 라는 설명을 듣고, "중복이 적을수록 인덱스를 생성하면 더 효율적이겠구나" 라는 정보를 얻었습니다. 그 후, "어떤 컬럼을 선택해야 할까?" 장표에는 그중에서 선택성이 높은 컬럼 위주로 인덱스 생성 이 효율적이라고 설명과 더불어 자료를 보여주셔서 의문이 생겼습니다. 질문 Q. 선택성이 높으면 조건에 맞는 행이 많아 중복되는 행을 다시 스캔하여 필터링 하기 때문에 인덱스 사용에 비효율적이지 않을까요? 그럼 나머지 강의를 일단 수강하며 배움에 즐거움을 만끽하러 가보겠습니다. 감사합니다.

  • mysql
  • dbms/rdbms
  • database
  • modeling
  • db
  • 카카오공채-개발
제로콜라 함 즐길까 댓글 2 좋아요 0 조회수 146

실무팁 - 등록자,수정자 컬럼 관리 관련 질문입니다.

미해결

김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복

실무에서 등록일,수정일, 등록자, 수정자 4개 컬럼을 테이블 별로 만들어서 쓰라고 하셨는데 1) 모든 테이블에 4개 컬럼은 만든다 생각해도 되는지? 2) 유지보수 상 운영 테이블을 직접 수정하는 경우가 있었는데 이때 MySQL 워크벤치 에서 직접 수정하는 경우는 일일히 의식해서 set에 updated_by 를 넣어주는게 최선인지?? 궁금합니다.

  • sql
  • mysql
  • dbms/rdbms
  • 소프트웨어-설계
  • SQLD
배려하기 댓글 1 좋아요 0 조회수 90

결제서비스 콜백 동시성문제 가능성

해결됨

제미니의 개발실무 - 커머스 백엔드 기본편

안녕하세요 결제 코드느끼기 강의를 보며 궁금한점이 있어서 질문을 남깁니다. 여러 주문들을 동시에 넣었고 createPayment가 되고 PG사로부터 success가 콜백 호출 된다 했을때, 동시성 문제가 우려되는데요 각 주문마다 point 혹은 coupon을 쓴다고 했을때, 고객이 가진 point 이상으로 point가 차감된다든지, 쿠폰 재사용 문제를 직면했을때 예외처리가 없어보이며, 이 때문에 이를 복구하는 방안같은건 없어보입니다. (괜히 예외처리를 했다가 고객의 돈이 빠져나가고 결제상태가 안바뀔 염려때문) 그럼에도 각 Value Object에서 valid및 예외처리하는 로직이 success api에 추가할 수 있을까요? 아니면 주문 결제 전 단계에서 막으면 좋을까요? 아니면 그럴 가능성이 자주는 없으니, 결제 상태는 Ready인 부분을 찾아서 수동 수정하는것도 방법이라고 보시나요?

  • kotlin
  • spring-boot
  • 도메인
  • dbms/rdbms
  • backend
열심히들어요 댓글 2 좋아요 1 조회수 157

인기 태그

인프런 TOP Writers

주간 인기글