묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
카프카 메시지 순서 관련 문의
안녕하세요 강사님!카프카를 사용하면서 궁금한 점이 있어서요~ 예를 들어 주문 시스템을 구현한다고 하면요.주문에 대해 상태가 계속 바뀌어 해당 이벤트를 받을 수 있도록 카프카를 붙이려고해요.consumer가 동일한 주문 id에 대해 상태 업데이트를 해야 하니, producer가 순서 보장되도록 카프카 key도 동일하게 셋팅하면 consumer는 순서대로 status를 제대로 update 하는데요. 만약 producer가 메시지 발행을 비동기적으로 진행하도록 구현했다고 하면,무언가 이슈로 주문 생성 -> 주문 취소 순이 아닌 주문 취소 -> 주문 생성 순으로 발행되었다면consumer 입장에서 메시지 순서가 제대로 들어왔음을 어떻게 인지할 수 있을까요..? 이런 상황은 발생하지 않을까요..? ㅎㅎ
-
미해결dbt, 데이터 분석 엔지니어링의 새로운 표준
dbt의 한계점
안녕하세요, 강사님이 실무에서 dbt를 사용하시면서 느끼신 단점 혹은 한계점이 어떤 게 있는지 궁금합니다.예시로, connection은 너무나 많고, 각각의 구현에 의존하다 보니 생기는 불편한 점이 종종 있습니다. GCP BigQuery의 경우 custom labeling이 dataset 단위는 불가능, table 단위로만 가능하기 때문에 dataset 단위로 cost가 측정되는 GCP 특정 상 custom label 단위로 cost breakdown이 어려워진다는 한계점이 있습니다. (as of 2025.10)
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
after 메서드 사용 유무
[1줄 질문]after 메서드 로직을 테스트에 바로 적는 것도 보편적으로 사용하는 방법일까요?[설명] 테스트를 실행한 후, after 메서드로 memberA, memberB, ex 객체 값을 삭제하여 다음 테스트 실행할 때 데이터 충돌을 방지하는 것으로 이해했습니다.after 메서드를 실행할 때마다 테스트에서 생성 자체가 되지 않은 객체 또한 삭제되는 경우가 있는데, 이런 경우에는 after 메서드 대신 테스트 후(then 로직 종료 후) 바로 삭제하는 로직을 추가하는 것이 좀 더 빠르지 않을까 생각해보았습니다.물론 after 메서드를 사용하는 것은 중복 로직을 줄이기 위함도 있겠지만, 지금과 같은 경우에는 테스트 내에서 삭제 로직까지 추가하는 것은 보편적인 방법이 아닌지 궁금합니다.
-
미해결주문시스템으로 알아보는 분산트랜잭션
2PC에 대해서 궁금해서 질문 드립니다!!
안녕하세요 강사님!좋은 강의 잘 듣고 있습니다!!!2PC 강의를 듣다가 XA 트랜잭션 부분에서 궁금한 점이 생겨서 질문드려요강의에서 xa start 'product_1'과 xa start 'point_1'처럼 서로 다른 XID를 사용하신 것 같았는데요, 제가 이해한 게 맞는지 확인하고 싶어서요!저는 XA 트랜잭션이 하나의 분산 트랜잭션으로 묶이려면 같은 XID를 사용해야 한다고 생각했거든요 그래서 몇 가지 궁금한 점이 있습니다혹시 서로 다른 XID를 사용해도 하나의 원자적 트랜잭션으로 동작하는 건가요?강의 1분에 나오는 다이어그램을 보니 Coordinator가 있던데, 이게 서로 다른 XID를 어떻게 연결해주는 건지 궁금하네요'product_1'과 'point_1'처럼 다른 XID끼리 어떻게 하나로 묶이는지 원리가 궁금합니다!바쁘시겠지만 시간 되실 때 답변 주시면 정말 감사하겠습니다!!
-
미해결김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍
(추석 챌린지) 복습 정리내용
[질문 내용]람다 (lambda)람다는 익명 함수이다. 따라서 이름 없이 함수를 표현한다.(매개변수) -> {본문}용어 - 람다 vs 람다식(Lambda Expression)람다 : 익명 함수를 지칭하는 일반적 용어. (개념)람다식 : (매개변수) → {본문} 형태로 람다를 구현하는 구체적인 문법 표현을 지칭람다도 익명 클래스처럼 클래스가 만들어지고, 인스턴스가 생성된다.함수형 인터페이스함수형 인터페이스는 정확히 하나의 추상메서드를 가지는 인터페이스를 말한다.람다는 추상 메서드가 하나인 함수형 인터페이스에만 할당할 수 있다.단일 추상 메서드를 줄여서 SAM(Single Abstract Method)라 한다.@FunctionalInterface를 통하여 함수형 인터페이스를 보장할 수 있다.추상 메서드가 추가되면 컴파일 오류 발생 !(Ex) @Override를 통해 재정의된 함수임을 알 수 있듯이.고차함수(Higher-Order Function)고차 함수란, 함수를 값처럼 다루는 함수를 뜻함함수를 인자로 받는 함수(메서드)함수를 반환하는 함수(메서드)기본 함수형 인터페이스다음은 자바가 기본으로 제공하는 대표적 함수형 인터페이스이다.Function : 입력 O, 반환 OConsumer : 입력 O, 반환 XSupplier : 입력 X, 반환 ORunnable : 입력 X, 반환 X특화 함수형 인터페이스Function으로 구현가능하나, 테스트 용도인 인터페이스라는 것을 명확히 하기 위해 사용Predicate : 입력 O, 반환 boolean조건 검사, 필터링 용도Operator (UnaryOperator, BinaryOperator) : 입력 O, 반환 O동일한 타입의 연산 수행, 입력과 같은 타입을 반환하는 연산 용도 추석 완강 챌린지 중 질문드리고 싶으나, 아직 완벽히 이해된 단계가 아니어서 부득이 복습하며 정리한 내용을 질문으로 작성했습니다. ㅠㅠ틀린 부분 있다면 지적 부탁드립니다!
-
미해결350개의 개인 앱을 만들어 월급의 7배 수익을 달성한 방법
어떤 AI 구독하고 계시는지 궁금합니다.
강의에 다양한 AI 서비스들이 등장하는데, 어떤 AI 서비스를 구독하고 계시나요?어떤 AI가 앱 개발에 도움이 많이 되었는지 궁금합니다.모든 AI 서비스를 다 구독하기에는 부담되니 일단 하나만 선정해서 구독해보려고 합니다.
-
미해결김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복
자연 키를 PK로 써도 되는 예외 조건!
안녕하세요!현대적인 설계에서는 대부분 자연 키가 아닌 대리 키를 기본 키로 사용하는 것이 권장된다고 하셨는데요.그렇다면 혹시 자연 키를 기본 키로 사용해도 괜찮은 예외적인 상황이 있을까요?예를 들어, 변경 가능성이 거의 없는 코드성 데이터나 표준화된 식별자(예: ISO 코드, 통화 코드 등) 같은 경우에도 무조건 대리 키를 추가하는 것이 좋은지, 아니면 자연 키를 PK로 두어도 실무적으로 문제가 없는 기준이 있는지 궁금합니다. 감사합니다 ☺︎
-
미해결React Native with Expo: 제로초에게 제대로 배우기
개발 환경에 대해서 궁금한게 있습니다!
맥북 환경에서 수업을 따라가다 보니, Java가 설치되어 있지 않아 라이브러리 설치 시 오류가 발생했습니다.이처럼 개발 환경(운영체제, 설치 여부 등)에 따라 발생하는 오류는 실무에서는 어떻게 사전에 파악하고, 배포 시에는 어떻게 대응하는지 궁금합니다.
-
해결됨코드로 배우는 스프링 웹 프로젝트 - Basic
<c:out>을 사용하는 이유에 대해서
<c:out>을 사용하면 HTML의 특수문자가 포함되있을 경우 HTML을 해석하지 않고 출력한다는데.HTML은 특수문자를 태그로서 가지고있는 마크업 언어인데... 이게 무슨말인지 이해를 잘 못하겠어요...인터넷의 다른 블로그 글을 봐도 거의다 똑같은 설명이라... 그냥 있는 그대로 출력을 한다는건지 HTML태그 안의 내용을 출력한다는건지 아리쏭 합니다..그리고 Spring에서 Beans으로 등록한다는 의미가 스프링에서 자체적으로 관리를 한다?고 이해하고 있는데...자바를 배우고 바로 spring으로 넘어와서 그런지 servlet의 개념도 어렵습니다...어디서 부터 손봐야할지 모르곘어요.... 죄송함니다..
-
미해결한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
리액트 기본기 이해도 기준에 대해 질문드립니다
강의를 통해 React의 여러 개념을 배웠습니다. 어느 정도 수준에 도달해야 리액트의 기본기를 제대로 이해했다고 스스로 판단 할 수 있을 지 궁금합니다.예를 들어, 이 강의에서 다룬 TodoList 프로젝트를 혼자서 처음부터 끝까지 구현할 수 있는 정도라면, React의 핵심원리를 충분히 체화했다고 볼 수 있을까요 ?
-
미해결김영한의 실전 데이터베이스 - 기본편
JOIN 방향에 따른 결과 행수와 효율적 데이터 조회 방법 질문
안녕하세요, 강사님.데이터를 효율적으로 JOIN 하여 어떻게 가져올지에 대한 방안에 대해 고민하던 중, 궁금한 점이 있어 질문을 드립니다. 강사님의 강의를 들으며 JOIN 시 결과 행수 차이에 대해 아래와 같이 이해했습니다.부모 테이블에서 자식 테이블로 JOIN할 경우→ 결과 행수가 부모 기준으로 유지된다.자식 테이블에서 부모 테이블로 JOIN할 경우→ 결과 행수가 자식 행수에 따라 크게 늘어날 수 있다.그렇다면 아래와 같은 상황에서 어떻게 처리하는 게 효율적일지 궁금합니다. 강의 상세 페이지처럼 여러 유형의 데이터를 한 번에 가져와야 하는 경우> 예시) 강의 정보, 강사 정보, 강의 평점, 강의 리뷰 등부모 테이블(강의)에서 자식 테이블(강사 정보, 강의 평점)로 JOIN할 때, 결과 행수가 부모 테이블 기준으로 유지되거나 크게 늘어나지 않는 상황에서는 한 번의 쿼리로 모든 데이터를 조회하는 것이 좋은 방법일까요 ?반대로, 강의 리뷰처럼 자식 테이블의 데이터가 많아져서 결과 행수가 급격히 늘어날 경우에는 리뷰 데이터만 별도의 쿼리 또는 API로 분리해서 조회하는 것이 더 바람직할지 궁금합니다.결국, 관계 방향과 데이터 양에 따라 결과 행수가 크게 늘어나지 않는 JOIN까지만 한 번에 처리하고,행수가 많아지는 데이터(예: 리뷰)는 별도로 쿼리하거나 API를 분리하는 전략이 좋을지, 그리고 쿼리/API 분리 기준을 어떻게 결정하는게 좋을지 설명해주시면 큰 도움이 될 것 같습니다.감사합니다.
-
해결됨CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
회선과 대역폭의 관계
안녕하세요.41강의 병목현상 해결 사례에서 설명해 주신 내용을 보고 회선과 대역폭의 관계에 대해 제가 이해한 부분이 맞는지 확인하고 싶습니다.기존 로드밸런서에는 WAS와 DB 각각에 대해 하나의 회선만 연결되어 있었기 때문에, 해당 회선이 제공할 수 있는 대역폭의 한계로 인해 병목현상이 발생한 것으로 이해했습니다.이후 추가 회선을 연결함으로써 전체 대역폭을 확장하는 효과를 가져와 병목현상이 해소된 것으로 이해했는데, 제 이해가 정확할까요?감사합니다.
-
미해결[React 2부] 고급 주제와 훅
pushState로 주소를 바꾸면 렌더링이 안 되는 이유가 궁금합니다.
pushState로 경로를 바꿀 때는 렌더링이 다시 일어나지 않는데,popstate 이벤트에서는 왜 렌더링이 필요한 건가요
-
미해결38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
3-8 출석체크 문제 질문
present_array 먼저 set에 담아두고 all_array를 순회하면서 여부 체크하는 게 성능상으로 더 빠를까요??
-
미해결카프카 완벽 가이드 - 코어편
카프카 학습과 관련하여 질문 드립니다
최근 카프카 버전에저는 zookeeper 가 아닌 KRaft 를 사용하는 것으로 바뀌는 등 몇가지 차이점이 있는데 강의 내용으로 학습한 후 변화된 버전에 맞춰서 변경할 때 러닝커브가 어느 정도가 될지 궁금합니다
-
해결됨삼각형의 실전! OpenAI Triton 초급
block ptr 질문
이제 정식 api로 공표되었나요? 정식 api인 것과 그렇지 않은 것의 차이는 무엇인가요?
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
DTO에 대한 질문
안녕하세요 강의 잘 듣고 있습니다. DTO에 대한 궁금증이 있어 질문 남깁니다. DTO에서 Class-Validator를 통해 유효성 검사를 하는데, 섹션5까지 학습했을 때는 Schema에서 검사를 진행했습니다.DTO에서 PickType Request로 전달되는 데이터만 명시만 하고 Schema에서 유효성검사를 하는 이유가 있는지, 아래 내용처럼 DTO에서 유효성 검사를 분리해서 하는게 이상적인 형태인지 궁금합니다.// src/cats/dto/cats.request.dto.ts import { PickType } from '@nestjs/swagger'; import { IsEmail, IsNotEmpty, IsString } from 'class-validator'; import { Cat } from '../cats.schema'; export class CatRequestDto extends PickType(Cat, [ 'email', 'name', 'password', ] as const) { @IsEmail() @IsNotEmpty() email: string; @IsString() @IsNotEmpty() name: string; @IsString() @IsNotEmpty() password: string; }
-
해결됨2025년 CPPG 개인정보관리사 자격증 취득하기 (개정안 반영)
개인정보 파기 관련 문의
개인정보 파기 관련 강의를 듣다 의문이 생겼습니다. A사가 B사의 본인인증 서비스를 쓸 때, 고객의 이름·생년월일·핸드폰 번호 등을 인증 목적으로 B사에 전송합니다. 이때 인증목적 외에 인증시도 기록(누가 언제 어떤 정보로 인증을 시도 했는지) A사 시스템에 남겨도 되나요, 아니면 인증 직후 바로 파기해야 하나요?
-
미해결코딩으로 학습하는 GoF의 디자인 패턴
@Builder에 대해 사소한 질문
강의 잘 듣고 있습니다!강의를 듣던 중 궁금한것이 있는데요.예를 들어 결제 API를 만든다면: - 금액, 결제수단: 필수- 할인쿠폰, 메모: 선택 @Builder를 사용할 때 필수 파라미터 처리가 궁금합니다. 결제 API 같은 걸 만든다면 금액은 필수인데, @NonNull은 런타임 체크로 알고 있는데요. 프로그램을 실행해야 에러를 확인할 수 있었습니다. 필수 항목을 빠뜨리면 컴파일 에러가 나게 할 수는 없나요? 실무에서는 런타임 체크로 충분한가요, 아니면 중요한 객체는 컴파일 타임 체크를 위해 직접 구현해야 할까요?
-
미해결[2025] 비전공자도 한 번에 합격하는 SQLD 올인원
SQLD 자격증
안녕하세요 SQLD 개발자 자격증을 취득하면 빅데이터분석 자격증을 취득하는데에 도움이 될까요?감사합니다!