inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

강의자료가 다릅니다.

미해결

IT 필수 지식 - 데이터베이스(Database) 와 SQL

문혜영 교수님이 말씀하시는데, 강의 자료는 박대근 교수님의 파일입니다. 강의자료 재업로드 부탁드립니다.

  • sql
  • dbms/rdbms
황혜빈 댓글 2 좋아요 0 조회수 118

엔티티 연관관계 사용

해결됨

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

안녕하세요, 강의 너무 잘보고있습니다! 코드를 살펴보니 궁금한 부분이 있는데 현재 작성된 코드에서는 엔티티 간 연관관계를 맺지 않고 풀어내고계시더라고요! 재미니님은 실무에서도 연관관계를 사용하지 않으시는 건지 아니면 고민 포인트(?)를 던져주신건지 궁금합니다! 예를들어 Order와 OrderItem 관련해서, OrderService의 서비스 레이어인 create 메서드에서 OrderItemRepository를 사용해 saveAll을 호출하는 방식을 사용하시더라고요! 저는 Order가 없으면 OrderItem은 존재하지 않아야한다고 생각해서, OrderItem의 생성을 서비스 레이어가 아닌 Order 엔티티안에서 생성하도록 강제하는 건 어떨까 생각했습니다. 방법으로는 OrderItem.create() 같은 생성 메서드를 protected로 막는다. OrderItemRepository를 아예 생성하지 않는다. 더티 체킹을 이용하여 Order 필드에 있는 List<OrderItem> 컬렉션에 요소 추가로 OrderItem을 save한다. 팀 컨벤션을 정한다. 정도가 있을 것 같은데... 그렇다면 재미니님은 실무에서도 연관관계를 맺지 않는 방식을 선호하시는 건가요? 사실 서비스 레이어에서 직접 호출을 통한 저장이라고 해도 문제는 없겠지만 사용하시는 방식이 궁금합니다! 그리고 추가적으로 주문 시 상품 재고를 차감시키는 메서드를 OrderHandler(OrderManager) 에 private으로 위치시키는 것과 ProductHandler(ProductManager)에 위치시키고 주입받아 사용하는 것중 어떤게 더 나은 방식일까요? private void decreaseProductStock(List<NewOrderItem> newOrderItems, Map<Long, Product> productMap) { for (NewOrderItem newOrderItem : newOrderItems) { Product product = productMap.get(newOrderItem.productId()); if (product.isStockLessThan(newOrderItem.quantity())) throw new ApiException(PRODUCT_QUANTITY_OVER); product.decreaseStock(newOrderItem.quantity()); } } 고민이 되는 부분은 예를들어 위와 같은 메서드를 OrderHandler에 두자니 조금 헤비해지는 것 같고, ProductHandler에 두자니 신규 주문 시에만 사용될 것같은데.. ProductHandler에 두는게 맞는지 고민입니다..! 의견이나 힌트 주시면 좀 더 고민해보도록 하겠습니다!

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

엔티티 상태를 조회하는 시점

해결됨

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

안녕하십니까 좋은 강의 잘듣고 있습니다. 강의를 들으면서 예제 코드도 같이 파악해보고 있는데요 repository 조회시 조회한 결과에서 활성 상태를 체크할때 2가지 방법으로 구현이 되어있는 것 같습니다. repository에서 쿼리 메서드로 값 전달 findByXXAndStatus() 일단 findByXX로 조회하고 filter에서 isActive 체크 2가지 경우다 결과 자체는 Active인 엔티티를 조회하겠지만, 두 경우를 언제 사용하는 것이 좋은지가 구분이 있을까요?? 일단 저라면 목록을 조회하는 경우라면 1번 방법으로 조회하면 조금이나마 성능 이점이 있을 것 같고, 단일 데이터 조회시에는 1번이나 2번이나 상관은 없을꺼 같다는 생각입니다! https://youtu.be/o5byT9Ha5Tg?si=C1zj8oP8-wSB6g7Y 최근에 우테코에서도 softDelete 관련 처리를 엔티티 설정을 통해 하기도 하던데, 제미니님의 의견이 궁금하여 질문드립니다! 감사합니다! ps. 아직 제가 강의를 쿠폰 부분까지 들어서 뒤에서 이에 대한 설명이 나오는지는 확인을 못했어요!

  • kotlin
  • spring-boot
  • 도메인
  • dbms/rdbms
  • backend
마틴파울러 댓글 2 좋아요 1 조회수 90

섹션3. 상품 상세. 코드느끼기 12:47 질문.

해결됨

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

ProductFinder -> ProductUsecase or ProductUsecase<ProductSection> 정의한 곳에 Product 서비스 와 ProductSection 서비스 를 갖고 안에서 작업을 해보는건 어떻게 생각하실까요? ProductProductSecion 으로 명명하기에는 애매한 부분이 있어, Usecase라는 단어를 써서 중간에 두 서비스만 사용하는 컴포넌트를 하나 두는 것은 어떻게 생각하실까요? 혹은 Delegator 를 써서, 이 두 서비스를 의존해서 처리해야 하는 프로세스를 위임해버리는 타입을 하나 만드는겁니다. 어떻게 생각하실까요?

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

xxx서비스와 xxx핸들러 의 구분 기준

해결됨

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

안녕하세요! 궁금한점이 생겼는데요. 로직을 수행하는 객체중 어떤것은 xxx서비스 어떤것은 xxx핸들러또는매니저(컴포넌트) 등의 객체로 나눠지는데요. 이에 대한 기준이 있을까요? 컨트롤러가 호출하는 객체를 xxx서비스, 서비스가 호출하는 객체를 xxx핸들러또는매니저(컴포넌트)라고 보면 될까요? 그렇다면 컴포넌트는 특정 개념에서의 로직들이 응집되어있는 객체 라고 보면 될까요?

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

상품 전체보기가 없습니다. 카테고리는 필수로 선택해야 합니다.

해결됨

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

전체보기가 없는 상품들 목록이라면 카테고리 프로덕트로 설계하는 방향은 어떻게 생각하시는지요? 상품의 전체보기가 없습니다. A-Z까지 모든상품들은 카테고리로로 분류되어있고(=모든 상품들은 카테고리라는 꼬리표를 가집니다) 좌측 메뉴탭에서도 카테고리별로 구분이 되어있습니다. 해당 상품들을 모두 카테고리별로 선택의 상세보기에 해당상품들이 나열되도록 되어있습니다. 이러한 생각은 어떤지 한번 의견 듣고싶어요.

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

2강 main.py 파일

미해결

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

from langchain_neo4j import Neo4jGraph from dotenv import load_dotenv import os #환경 변수 로드 load_dotenv() #neo4j 연결 설정 NEO4J_URI = os.getenv("NEO4J_URI") NEO4J_USERNAME = os.getenv("NEO4J_USERNAME") NEO4J_PASSWORD = os.getenv("NEO4J_PASSWORD") #그래프 객체 생성 graph = Neo4jGraph( url=NEO4J_URI, username=NEO4J_USERNAME, password=NEO4J_PASSWORD ) def main(): print("Hello from neo4j-graphrag!") if __name__ == "__main__": main()

  • dbms/rdbms
  • neo4j
  • llm
  • langchain
  • rag
  • 카카오공채-개발
Ohmmani Van Mehum 댓글 3 좋아요 0 조회수 131

MySQL 설치 질문 드립니다.

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. MySQL 설치 중인데, 스크린샷과 같이 중간에 4번째 항목 X표시 되면서 더 이상 설치가 안되네요.

  • sql
  • mysql
  • dbms/rdbms
  • SQLD
Hailey 댓글 2 좋아요 0 조회수 252

강의자료가 다른거 같아요.

미해결

IT 필수 지식 - 데이터베이스(Database) 와 SQL

강의자료가 수업 내용과 다른거 같습니다.

  • sql
  • dbms/rdbms
정상기 댓글 2 좋아요 0 조회수 104

강의자료 확인 요청

미해결

IT 필수 지식 - 데이터베이스(Database) 와 SQL

안녕하세요, 좋은 강의 잘 듣고 있습니다. 다름이 아니라, 강의 자료가 본 강의와 무관한 것으로 올라가 있는 것 같습니다. 확인 한번 부탁드립니다!

  • sql
  • dbms/rdbms
담라 댓글 2 좋아요 0 조회수 98

@Transactional에 관해서 질문드립니다.

해결됨

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

안녕하세요! 강의를 보던 중 ReviewService의 트랜잭션 처리에 대해 궁금한 점이 있어 질문드립니다. addReview 함수에서 리뷰를 저장하는 add()와 포인트를 적립하는 earn() 두개의 중요한 함수를 사용하고 있는데, 이는 각각 별도의 트랜잭션으로 처리되어 리뷰는 저장되고 포인트는 적립되지 않는 문제가 발생할 수 있을 것 같습니다. 현재 설계에서 addReview()에 @Transactional을 붙이지 않은 특별한 이유가 있으신지 궁금합니다. 혹은 만약 의도적으로 별도 트랜잭션으로 분리한 것이라면 그 이유가 궁금합니다. 항상 감사합니다.

  • kotlin
  • spring-boot
  • 도메인
  • dbms/rdbms
  • backend
우민수 댓글 3 좋아요 2 조회수 158

'개념과 격벽' 을 실제 업무에 어떻게 사용하면 좋을까요?

해결됨

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

안녕하세요, 제미니님. 유투브 및 인프런 강의 잘 시청하고 있습니다 :) 인프콘 2024에서 '지속 성장 가능한 설계를 만들어가는 방법' 이라는 주제로 발표해주신 내용이 무척 공감이 되었고, 제미니님 유투브를 찾아봤다가 강의까지 수강하게 되었습니다 이번 강의 내용은 아니지만 인프콘 영상에서 말씀해주신 개념인 '개념' 과 '격벽'을 구체적으로 실무에서 어떻게 사용하면 좋을지를 여쭤보고자 인프런 질문을 통해서 글을 올리게 되었습니다. 편의상 신규 프로젝트를 진행한다고 가정했을때, 요구사항을 분석하고 도메인을 구성하는 여러 '개념'들을 나열한다. 나열된 '개념'들의 급(1급, 2급, 3급 ..) 을 나눠보고 그룹화 하면서 '격벽'으로 분리한다. '격벽'으로 분리된 그룹이 어떤 개념을 통해서 연결될지 방화벽으로 동작할 개념을 생각해본다. 이는 개념간 무분별한 참조를 막기 위함이다. '개념'들과 '격벽'들을 기반으로 일단 코드로 구현부터 해본다. ('설계를 하지 말고 구현을 먼저' 하는 포인트는 이것) 구현하면서 또는 운영하면서 더 나누거나 신규로 추가할 개념이 있다면 반영한다. 결과적으로 설계를 하지 않고 구현을 먼저 하고, 구현 하는 과정이나 운영 하는 과정에서 최적화 시킨다. 이것이 곧 최적의 설계로 나아가는 방향이 된다. (질문) 제가 제미니님이 말씀하신 '개념'과 '격벽'을 잘 이해한 것이 맞을까요? 실무에서 위 흐름대로 적용하면 제미니님이 강조하신 내용에 기반한 작업이 될 수 있을까요? 실무에서 실제로 말씀해주신 내용을 적용해보고 싶은데 구체적으로 어떤식으로 적용하면 될 지 몰라서 제가 이해한 내용을 바탕으로 작성을 해보았습니다. 틀린 부분이 있다면 피드백을 부탁드리고 싶습니다 :) 긴 글 읽어주셔서 감사합니다~

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

쿼리 질문있습니다!!

미해결

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

select generate_series ( '2016-08-02' :: date , '2016-11-01' :: date , '1 day' :: interval ):: date as current_date ) 위의 쿼리로 series를 생성하신 이유가 select date_trunc ( 'day' , visit_stime ):: date as curr_date from ga_sess group by date_trunc ( 'day' , visit_stime ) ) 이 쿼리로 temp_00을 생성하면 11-01 일자의 dau를 구할수 없어서 인지 궁금합니다!

  • sql
  • postgresql
  • dbms/rdbms
  • 데이터-엔지니어링
  • data-analysis
하하하하히 댓글 2 좋아요 0 조회수 79

join 관련 질문 (inner join, left join)

미해결

데이터 분석 SQL Fundamentals

inner join과 left join에 대해서 이론적으로는 이해가 되는데 실제 테이블 관계 설정시 조인을 사용해야하는 상황에 대해서 아직 감이 잘 잡히지 않습니다. 강사님께서 조인을 선택해서 사용하실때 기준이 있을까요?? left join을 할시, 기준이 되는 테이블(부모 테이블) 붙이는 테이블(자식 테이블)로 이해를 했습니다. 부모테이블의 경우 집합레벨 1, 자식테이블 집합레벨 M으로 이해하는게 맞을까요??

  • sql
  • postgresql
  • dbms/rdbms
  • 데이터-엔지니어링
bbane7410 댓글 2 좋아요 1 조회수 122

타임베이스 정산 배치 실패 시 처리에 대해

해결됨

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

안녕하세요 시간날 때 틈틈히 보다가 어느새 막바지에 다다랐네요! 타임베이스 정산 배치가 실패했을 때 궁금한점이 있습니다. 우선 현재는 시간 대별로 오전 1시, 4시, 9시로 배치가 나눠져있는데 이 상황에서 강의에서도 설명하셨듯이 오전 1시 배치가 오전 4시 30분에 끝나서 오전 4시의 배치가 에러가 뱉는 상황에 대해 문제를 해결하는 방법들이 궁금합니다! 우선 제가 생각한 방법들은 다음과 같습니다. 1. 이벤트 기반 이벤트 기반으로 각 단계가 완료되면 바로 다름 배치 단계로 넘어가는 방식입니다. 하지만 이 방법은 이미 기존 인프라와 코드를 변경해야하고 정산 시간이 고정 된다는 요구사항이 있다고도 보여 현재 요구사항에는 적절하진 않은 것 같습니다. 2. 각 배치마다 전 단계 완료 여부 상태를 확인 오전 4시, 오전 9시 배치가 이전 단계의 배치 중 실패한 배치 이력이 있는지 확인하는 방법입니다. 현재 스케줄링 방식으로는 이를 위해 별도의 배치 기록 테이블을 만들어서 배치 이력 관리를 추가합니다. 오전 4시, 오전 9시에 해당 정산 날짜에 대해 실패한 이전 배치 단계 이력이 있다면 성공할 때 까지 N번 재시도 합니다. 정산의 즉시성이 필요하다면 N번 재시도 후 실패했을 때 해당 배치 단계를 에러 상태로 처리하고, 에러 로깅과 알림을 전송합니다. 다음 배치 단계는 정산 날짜에 해당하는 이전 배치 이력이 에러 상태로 남아 있다면 실행하지 않습니다. 현재 요구사항에서는 수동으로 처리할 부분은 최대한 제거하는 2번 방식을 사용할 수 있을 것 같습니다. 제가 배치 관리에 대해 잘 이해하고 있는지 모르겠어서 생각한 방법에 대해서 재민님은 어떻게 생각하시는지 궁금합니다.! 항상 잘 보고 있습니다 감사합니다!

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

order_item 테이블 (order_id, product_id) 유니크 제약조건 누락

미해결

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

안녕하세요. 항상 좋은 강의 잘 듣고 있습니다. 다름이 아니라, 강의 및 강의 자료에 누락된 부분이 있는 것 같아 글 남깁니다. [물리적 모델링 - 실습] 파트에서 테이블 정의서 및 DDL 스크립트를 작성하는 부분에 order_item 테이블이 order_id와 product_id를 각각 외래키로 들고 있는데, 앞선 강의에서 설명해주신 바에 따르면, 주문 항목 데이터 저장 시, 특정 주문에 대한 특정 상품 하나가 여러 번 중복으로 저장되는 걸 방지하기 위해, (order_id, product_id)에 UNIQUE 제약조건을 만들어야 된다 라고 하셨는데, 그 부분이 빠진 것 같습니다. 감사합니다.

  • sql
  • mysql
  • dbms/rdbms
  • 소프트웨어-설계
  • SQLD
김민석 댓글 2 좋아요 0 조회수 103

배치에서 full outer join을 쓴다고 하셨는데 예시를 알 수 있을까요?

미해결

데이터 분석 SQL Fundamentals

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 배치에서 full outer join을 쓴다고 하셨는데 예시를 알 수 있을까요? 배치에서 쓰인다는게 잘 와닿지가 않습니다.

  • sql
  • postgresql
  • dbms/rdbms
  • 데이터-엔지니어링
가나파이 댓글 2 좋아요 0 조회수 120

Madrid에 살고 있는 고객이 주문한 주문 정보를 구할것. 실습 질문드립니다

미해결

데이터 분석 SQL Fundamentals

안녕하세요 해당 강의 2분 50초 정도에서 궁금한 것이 있습니다. 고객이 한 번도 주문을 하지 않은 경우에도 고객정보는 조회가 되어야하기 때문에 left outer join을 쓰는 이유는 이해가 되는데요. 그 다음 주문접수 직원정보를 구해야 할 때 left join을 하는 부분이 이해가 되지 않습니다. 저는 join key를 b와 c 테이블에 대해서 하니까 b와 c간의 join으로 생각이 되어서 inner join을 걸었었는데요. 이건 사실 customers와 employees 간의 outer join이니까 left outer join을 써야하는걸까요?

  • sql
  • postgresql
  • dbms/rdbms
  • 데이터-엔지니어링
가나파이 댓글 2 좋아요 0 조회수 80

강의 PDF는 어디에서 다운로드 할 수 있을까요?

해결됨

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

"4. 강의 PDF 자료 및 프로젝트"에서 프로젝트 소스는 있는데 강의PDF는 안 보이네요.. 어디에서 강의 PDF를 찾을 수 있을까요?

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

강의 교안 제공 문의

미해결

실리콘밸리 데이터 리더가 알려주는 기초 SQL

안녕하세요 강사님! 정말 명강입니다....감탄하면서 잘 듣고 있습니다! 다름이 아니라, 혹시 강의 교안은 따로 제공이 될까요? 코랩 실습파일은 있는데, 강의 교안 다운 링크가 없어서요 혹시 강의 교안 pdf로 제공되는지 문의드립니다!

  • sql
  • 빅데이터
  • dbms/rdbms
  • 데이터-엔지니어링
  • duckdb
  • 데이터-리터러시
장혜성 (Hye Seong, Ja 댓글 2 좋아요 1 조회수 103

인기 태그

인프런 TOP Writers

주간 인기글