inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

EasyOcr 관련

미해결

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

강의 내용에 uv add easyocr 관련 내용이 빠져 있는거 같습니다 md 파일로 변환 할 때 에러가 나서 확인 해보니 pip install easyocr 을 하라는 메세지를 보고 설치를 했습니다

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

예약 변경 시 '과거 정책 기준 재계산' 요구사항에 따른 스냅샷 데이터 구조 설계 고민

해결됨

제미니의 개발실무 - 커머스 백엔드 레거시와 AI 활용편

안녕하세요 강사님. 지난번 '어드민 예약 변경 시 쿠폰 회수' 관련 질문을 드렸던 수강생입니다. 답변 주신 내용을 바탕으로 설계를 보완하던 중, 스냅샷 데이터의 범위와 확장성 에 대해 추가적인 고민이 생겨 조언을 구합니다. [현재 아키텍처 상황] 현재 예약 테이블에는 예약 시점의 가격 정보를 JSON 형태의 스냅샷 으로 저장하고 있습니다. 이유: 가격 결정 요소(할인, 이벤트, 기업 지원 등)가 빈번하게 변경/추가되어 RDB 컬럼으로 대응하기 어렵기 때문입니다. 저장 데이터: 현재는 '결과값' 위주로 저장합니다. (예: 적용된 할인 명, 타입(정액/정률), 최종 할인 금액) [직면한 문제: 변경 시점의 기준 모호성] 예약 시점(T1)과 변경 시점(T2) 사이에 정책이 변경되었을 때, 어드민에서 예약을 수정하면 어떤 정책을 따라야 하는가 에 대한 딜레마입니다. 만약 기획 요구사항이 "변경 시점(T2)의 정책이 아니라, 최초 예약 시점(T1)의 정책 조건을 유지한 채 금액만 다시 계산해 주세요" 라고 한다면 문제가 복잡해집니다. 현 구조의 한계: 현재 JSON에는 '결과(할인액)'만 있고 '조건(최소 결제 금액, 당시 허용된 옵션 목록 등)'은 없습니다. 예상되는 부작용: 이를 해결하려면 예약 시점의 모든 검증 조건(Condition) 을 JSON에 다 때려 넣어야 합니다. 이렇게 되면 도메인 로직이 바뀔 때마다 JSON 스키마도 계속 비대해지고, 과거 JSON 데이터와 현재 로직 간의 정합성을 맞추기 매우 까다로워질 것 같습니다. [질문] 이처럼 "빈번하게 변하는 가격 정책"과 "과거 기준 수정"을 동시에 만족해야 할 때, 실무에서는 보통 어떤 접근 방식을 취하나요? JSON 스냅샷 확장: 다소 복잡해지더라도 예약 시점의 검증 조건(Parameter)들까지 모두 JSON에 스냅샷으로 남기는 게 맞나요? (JSON 컬럼 사용이 잘못된 선택이었을까요?) Policy Versioning (정책 버전 관리): 아니면 가격/할인 정책 테이블 자체를 버전 관리(Effective Date 등)하여, 예약 시점의 policy_version_id 를 매핑해두고 로직을 태우는 방식을 써야 할까요? 현실적인 타협: 아니면 보통 어드민 변경 건은 "재계산 불가(단순 금액 입력)"로 처리하거나, "무조건 현재(T2) 정책"을 따르게 하는 등 복잡도를 낮추는 타협점을 찾나요? 확장성 있는 가격 스냅샷 설계에 대한 강사님의 경험과 조언을 부탁드립니다..!

  • spring-boot
  • 도메인
  • dbms/rdbms
  • backend
  • ai-활용-(ax)
우으어으 댓글 2 좋아요 1 조회수 160

페이지네이션 버그

미해결

누구나 따라하면서 배우는 JSP 커뮤니티 게시판 만들기

페이지네이션을 한 이후에 이전 다음 추가한 후에 나오는 거는 알겠는데, 지금 보니까 1 2 3 페이지가 있는 것 같은데요. 2페이지에서는 이전과 다음이 둘 다 있어야 하는 것 아닌가요?

  • java
  • jsp
최보배 댓글 0 좋아요 0 조회수 64

단축어가 이상하게 나옵니다

미해결

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] psvm 단축어가 강의와 다르게 나옵니다 어떻게 해야하나요? 인텔리제이 버전이 2025.2.5인데 그래서 다르게 나오는 건지 아니면 vendor를 Eclipse Temurin 21로 설정해서 다르게 나오는 건지 어떤 부분에서 문제인지 모르겠네요

  • java
  • 객체지향
sdi8089 댓글 2 좋아요 0 조회수 191

23강 예제 질문입니다! (서비스 1 > 2 > 3 호출 시나리오 관련)

해결됨

카카오 면접관이 알려주는 MSA 관점에서의 분산 트랜잭션 패턴

안녕하세요! 기존에 설명해주신 Orchestration 예제의 다이어그램과 호출 순서가 실습 코드랑 다른 것 같아서 질문드립니다. 다이어그램 : 오케스트레이터가 모두 요청/응답 받는 구조. 오케스트레이터 -> 2번 호출/응답 -> 오케스트레이터가 다시 3번 호출/응답 실습코드 : 오케스트레이터가 2번 서비스를 호출하고 2번 서비스가 3번 서비스를 호출하는 형태 질문 1) 위 2개의 내용이 다른 이유가 있을까요? + 오케스트레이션 패턴은 오케스트레이터가 모든 서비스를 호출하고, 다른 서비스는 오케스트레이터에 답변만 해주는 구조이고, 이 때문에 오케스트레이터가 SPOF가 될 수 있다고 이해했는데, 제가 잘못 이해한걸까요? 질문 2) 지금 예제에서는 REST API를 쓰는지, kafka 이벤트는 쓰는 여부 말고는 오케스트레이션/코레오그래피 모두 서비스 1 -> 2 -> 3 호출 하는 시나리오와 보상 처리를 하는 방법이 크게 차이가 없는 것 같습니다 (DLQ외) 예제를 보니까 헷갈리게 되는 것 같은데 제가 어떻게 이해하면 좋을까요? 감사합니다!

  • java
  • spring
  • mysql
  • spring-boot
  • msa
swm.3idiots 댓글 2 좋아요 0 조회수 88

강의와 성능수치 비교

해결됨

6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법

1. 현재 학습 진도 2-9부하테스트 2. 어려움을 겪는 부분 강의와 성능차이가 너무 많이나는데 이유가 궁금합니다. 3. 시도해보신 내용 해당 이미지는 제가 수행한 테스트인데, 로컬에서 진행한 동일 코드 인데도 성능차이가 너무 많이 나는데 뭐가 문제인걸까요? 추가적으로 성능개선코드를 적용전인 결과인점 참고부탁드립니다.

  • java
  • spring
  • mysql
  • redis
  • 이력서
김준원 댓글 2 좋아요 0 조회수 128

비로그인 유저도 어뷰징 방지 정책

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

안녕하세요 강의 잘보고있어서 감사의 말씀 전하며 질문이 있어 글 남깁니다. 만약 비로그인도 어뷰징 방지 정책을 적용 한다했을때 실무에선 어떻게 처리하나요? IP나 쿠키, User-Agent 등을 활용한다고 하셨는데, IP 주소로 처리하기에는 공유망이나 VPN 같은 다양한 접근 방식도 있을 것 같고 User-Agent 나 브라우저쿠기같은경우는 브라우저에서 조작이 가능하기도하고 Pomsman 같은걸로 요청해서 User-Agent 값을 임의로 설정하는등과 같은 방법으로 집계될수도 있을것같은데 1. 그냥 일반적인 조회수만 집계만 하면되는 서비스에선 어떤식으로 처리하는지 궁금하고 만약 정말 빡세게 어뷰징을 처리한다고했을때 서버쪽에서 고유키값을 만들어서 로그인안한유저면 그 키값을 httponly 쿠키로 설정해서 고유키값이 있을때만 조회수가 집계되는 방법도 있을것 같은데 이런방식은 어떤지도 또 다른 괜찮은 방법이 있는지 궁금합니다.

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
쵸잉 댓글 2 좋아요 1 조회수 115

강의를 어떻게 보면 좋을 까요?

해결됨

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

일단 ai 에이전시를 써서 대충 틀을 만들고 살을 붙혀라라는 느낌으로 듣고 있습니다. 결과 값이 다 다르니 강의와 비슷하긴 하나 같은 느낌으로 구현을 못하는데. 전체적으로 강의를 한 번 쭉 완강하고 흐름을 익힌 이후에 구현을 해보라는 건가요? 아니면 주신 깃헙 링크 보고 따라 해보면 될까요?

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

섹션 3 퀴즈 3번 문제

미해결

김영한의 실전 데이터베이스 - 기본편

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 섹션 3 퀴즈 中 3. 자식 테이블을 부모 테이블에 조인할 때, 결과 행의 수는 일반적으로 어떻게 변할까요? 제가 이해한 걸 쿼리로 나타내면, SELECT * FROM [부모 테이블] JOIN [자식 테이블] 이라고 생각했는데, 문제에서 말하는건 SELECT * FROM [자식 테이블] JOIN [부모 테이블] 인건가요?

  • sql
  • mysql
  • dbms/rdbms
  • SQLD
곽성우 댓글 2 좋아요 0 조회수 123

특별 학습 자료 프로모션 1년 멤버십 무료 제공 지원 확인 방법

해결됨

AI 시대에도 살아남는 엔지니어의 조건, 미국 빅테크 시스템 디자인, 알고리즘 사고, 오픈소스 실무 완성

특별 학습 자료 프로모션 1년 멤버십 무료 제공 지원 어떻게 확인할 수 있을까요?

  • dbms/rdbms
  • 소프트웨어-설계
  • 시스템-디자인
  • 인공지능(ai)
  • ood
전대혁 댓글 2 좋아요 0 조회수 163

JDBC 학습이 필수적인가요?

미해결

[4주 과정] 『부트캠프 백엔드 개발자 편 with 스프링 부트』 완독 챌린지

우선, 제가 가려는 기업에서 원하는 것은 springboot(와 API 계약 이해), bootstrap, postman, WebSocket 사용 이해입니다. 이번년도 9월까지 개인 프로젝트 2개(각 1달)와 팀프로젝트 1개(2달)를 할 생각인데, springboot 학습과 동시에 프로젝트를 진행하기 전에 jdbc를 학습하는 것이 필수적인지 궁금합니다. 제 글에 부족한 부분이 있어서, 이해하기 어려우시면 답변으로 더 필요한 정보를 말씀해주시면 감사하겠습니다.

  • java
  • spring
  • rest-api
  • spring-boot
  • dbms/rdbms
Connecting the dot 댓글 2 좋아요 1 조회수 125

SKILLS.md나 agents 작성 문의

해결됨

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

SKILLS.md 혹은 agents 작성은 반드시 영어로 작성해야 하는 것일까요? 영어로 작성하는 이유가 따로 있을까요?

  • postgresql
  • spring-boot
  • dbms/rdbms
  • redis
  • s3
김수용 댓글 1 좋아요 1 조회수 180

BeanCreationException

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요 코드를 따라 치는 과정에서 아래와 같이 작성 했더니 BeanCreationException 이 발생하는 것을 확인 할 수 있었습니다. public void dbInit1(){ Member member = new Member(); member.setName("userA"); member.setAddress(new Address("서울", "1", "111")); em.persist(member); Book book = new Book(); book.setName("JPA1 BOOK"); book.setPrice(10000); book.setStockQuantity(100); em.persist(book); Book book2 = new Book(); book.setName("JPA2 BOOK"); book.setPrice(20000); book.setStockQuantity(100); // book2.setName("JPA2 BOOK"); // book2.setPrice(20000); // book2.setStockQuantity(100); em.persist(book2); OrderItem orderItem1 = OrderItem.createOrderItem(book, 10000, 1); OrderItem orderItem2 = OrderItem.createOrderItem(book2, 20000, 2); Delivery delivery = new Delivery(); delivery.setAddress(member.getAddress()); em.persist(delivery); Order order = Order.createOrder(member, delivery, orderItem1, orderItem2); em.persist(order); } 이때 위의 코드에서 주석 처리된 부분처럼 고쳤더니 정상적으로 코드가 실행되는 것을 확인했습니다. 그런데 이게 어떤 문제에서 오류가 발생한건지 정확히 알 수 없어 질문드립니다. 처음에는 book2의 값이 아무것도 없어서 null에 관한 엔터티 제약조건 관련해서 문제가 발생했나 생각해지만 notnull 같은 제약조건이 없었고 Book이 Item과 상속관계이고 싱글 테이블 전략을 사용해서 DTYPE 값이 book2 생성시 자동으로 생성 된다고 기억해서 특별히 값이 비었다고 생기는 오류가 아니라고 생각이 들었습니다. 결론적으로는 정확히 어떤 원인에서 발생한 문제인지 궁금해서 질문 남깁니다.

  • java
  • spring
  • spring-boot
  • jpa
박준혁 댓글 3 좋아요 0 조회수 116

선생님

해결됨

제미니의 개발실무 - 커머스 백엔드 레거시와 AI 활용편

이전강의에 이어 이번강의도 또 듣게되네요 선생님께서 늘 강의에서 느낀다 라는 표현을 많이 하시는데 이게 되게 중요한건가 보네요 잘 듣겟습니다

  • spring-boot
  • 도메인
  • dbms/rdbms
  • backend
  • ai-활용-(ax)
smaller 댓글 1 좋아요 1 조회수 194

디스코드 초대 안돼요

해결됨

3일 만에 끝내는 백엔드 면접 핵심 압축 공략집 [네카라쿠배당토]

링크 타고 들어가서 수락하기 누르면 아래와 같이 뜨는데 어떻게해야할까요 학습 관련 질문을 남겨주세요. 구체적으로 적을수록 좋아요! 어떤 섹션, 몇 분 몇 초의 내용인지 어떤 부분이 이해가 안 되는지 어떤 에러가 발생했는지 (에러 메시지 전체) 본인이 시도해 본 방법 커뮤니티 질문 & 답변에 비슷한 내용이 있었는지 먼저 검색해보세요. 같은 질문이 이미 답변되었을 수 있습니다 검색으로 더 빠르게 해결할 수 있어요e

  • spring
  • 객체지향
  • dbms/rdbms
  • cache
  • index
유상원 댓글 2 좋아요 0 조회수 138

실무적인 설계로 접근했을 때 제 2정규형 항상 만족?

미해결

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

안녕하세요. 질문이 있습니다!! 제2정규화는 제 1 정규형을 만족하고, 테이블의 기본키가 복합키일 때 부분 함수 종속이 있으면 적용할 수 있잖아요 근데 이전 강의 영상에서 말씀하셨듯이 유연하고 확장성 있는 설계를 하기 위해 자연키가 아닌 대리키를 사용하고, 연관 엔티티(매핑 테이블)을 두어 사용하려면 비즈니스 로직에 따라 유니크 제약조건을 걸어 해결하라고 하셨습니다 그럼 여기서 궁금한 것이 이렇게 실무적인 접근으로 설계를 한다면(대리키) 항상 키는 단일컬럼 키니까 복합키가 아니라서 항상 제 2정규형을 만족하는 것인가요??

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

CommentServiceTest의 테스트 로직 질문

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

@Test @DisplayName("하위 댓글이 삭제되고, 삭제되지 않은 부모면, 하위 댓글만 삭제한다.") void deleteShouldDeleteChildrenOnlyIfNotDeletedParent() { // given Long articleId = 1L; Long commentId = 2L; Long parentCommentId = 1L; Comment comment = createComment(articleId, commentId, parentCommentId); given(comment.isRoot()).willReturn(false); Comment parentComment = mock(Comment.class); given(parentComment.getDeleted()).willReturn(false); given(commentRepository.findById(commentId)) .willReturn(Optional.of(comment)); given(commentRepository.countBy(articleId, commentId, 2L)).willReturn(1L); // 이 부분 given(commentRepository.findById(parentCommentId)) .willReturn(Optional.of(parentComment)); // ... 위 테스트에서 given(commentRepository.countBy(articleId, commentId, 2L)).willReturn(1L); 이 부분 때문에 질문을 드렸습니다. commentRepository.countBy() 에서 commentId = 2L 을 부모로 갖는 comment는 아무도 없으므로, 0L 을 반환하는 것이 옳다고 이해했는데, 강의에선 1L 을 반환하셨습니다! (물론 서비스 계층의 메서드에서 hasChildren() 의 판정 로직상 0L 과 1L 은 동일한 결과를 반환하므로 테스트 결과에는 영향을 주지 않는 것 같습니다.) 카운트 쿼리의 동작 부분을 제가 잘못 이해한 것인지 질문드립니다.

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
bebe 댓글 2 좋아요 0 조회수 71

어드민(Back-office)에서 예약 변경 시, '할인 조건 재검증(쿠폰 회수)' vs '기존 혜택 유지' 중 어떤 정책이 일반적인가요?

해결됨

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

안녕하세요 실무에서 '관리자(Admin) 예약 변경 기능' 정책을 두고 기획팀과 이견이 있어, 실무에서는 어떤 방식이 범용적인지 여쭙고 싶습니다. [시스템 상황] 유저가 예약할 때 다양한 할인(이벤트, 타임세일, 쿠폰, 기업지원 등)이 적용되며, 이 정보는 예약 시점에 스냅샷(Snapshot) 으로 저장됩니다. 현재 어드민(상담원/운영팀) 이 유저의 예약 시간/날짜를 변경하는 기능을 개발 중입니다. [이슈 사항] 기획상으로는 어드민에서 시간을 변경할 때도 모든 할인 조건을 '실시간'으로 재검증 하라고 합니다. 문제는 재검증 과정에서 '쿠폰 박탈' 같은 상황이 발생한다는 점입니다. 예시 상황: 유저가 5만원 짜리 예약에 5만원 이상 결제 시 사용 가능한 10% 쿠폰 을 씀. 어드민이 사정상(또는 유저 요청으로) 가격이 저렴한 타임이나 옵션으로 변경함 -> 결제액이 4만원 이 됨. 기획 요구사항: "최소 결제 금액(5만원) 조건을 불만족하게 되었으니, 자동으로 쿠폰 적용을 해제(원복)하고 금액을 재계산 한다." [제(개발자) 의견 및 고민] 저는 위 기획이 어드민 기능의 목적 과 UX(고객 경험) 에 맞지 않는다고 생각합니다. 고객 경험 훼손: 유저는 단지 시간을 바꿨을 뿐인데, 시스템이 엄격하게 검증해서 "조건 미달이니 쿠폰 뺏어가겠습니다"라고 하면 컴플레인 요지가 다분합니다. (유저 입장에선 혜택 유지를 원하니까요.) 데이터 복잡도: 이미 스냅샷으로 저장된 할인 정보를, 수정 시점에 다시 현재 기준의 마스터 데이터(쿠폰 유효기간, 최소금액 등)와 대조해서 '줬다 뺏는' 로직을 짜는 건 구현 복잡도 대비 실익이 너무 적습니다. 관리자의 재량: 어드민에서의 변경은 보통 '강제성(Override)' 을 띠는 경우가 많은데, 시스템이 칼같이 혜택을 잘라버리는 게 맞나 싶습니다. [질문] 보통 예약 도메인에서 관리자(Admin)가 개입하여 예약을 변경할 때 도, 이렇게 엄격하게 유저의 할인 자격(최소금액, 유효기간 등)을 재검증하여 박탈 시키는 게 맞나요? 아니면 어드민 권한 변경인 경우 "기존 스냅샷(혜택)을 최대한 유지" 해주거나, 가격 변동이 불가피하면 "취소 후 재예약" 을 하는 프로세스가 더 일반적인가요? 개발자로서 이 복잡한 '조건부 쿠폰 회수' 로직을 방어하고 싶은데, 설득력 있는 논리가 필요합니다. 조언 부탁드립니다!

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

프로젝트생성이안되여..진도못나가는중..

미해결

옆집 개발자와 같이 진짜 이해하며 만들어보는 첫 Spring Boot 프로젝트

머가문제인지도 모르겠어요....

  • java
  • spring
  • rest-api
  • spring-boot
  • dbms/rdbms
ariel123 댓글 1 좋아요 1 조회수 65

인기 태그

인프런 TOP Writers

주간 인기글