안녕하세요 강사님, 강의 잘 듣고 있습니다. 다름이 아니라 (5.5) Supabase 설정하기 수강 중 테이블 생성 과정에서 궁금한 부분이 있어 질문드립니다. 영상 9:48쯤에는 content 컬럼의 default value가 NULL로 보이는데, 바로 다음 9:49쯤에는 동일한 content 컬럼의 default value가 EMPTY(빈 문자열) 로 변경되어 보이더라고요. 이 경우 content 컬럼의 default를 EMPTY로 설정하면 되는 걸까요? 혹시 NULL과 EMPTY 중 어떤 기준으로 선택하면 좋을지도 함께 안내 부탁드립니다. 감사합니다!
강의의 시퀀스 다이어그램을 보았을 때, 2가지 정도 질문 드립니다. 1) stateless 요청에서 상태값의 전달 관련 일반적으로 웹과 같이 stateless 한 서비스를 고려했을 때, 비동기 처리로 인해 주문서비스가 고객의 주문요청에 대해 (이후의 수행작업과 상관없이) 즉시 리턴하게 되는 것이 예상되는데요. (위 그림에서는 동기적인 flow 로 주문완료 응답을 end point 유저에게 전달하는 것으로 보이긴 합니다만) 주문 완료 페이지에서 주문한 상품 정보나 결제 수단의 상태값 전/후 를 보여주는건 어떤 식으로 동작하게 될까요? 가령, 실물 상품이 아닌 연속선상의 사이버 재화(ex: 네이버포인트 등)를 지급해야하는 입장에서 주문 이전의 재화 정보와 주문 요청 후(최종적으로 트랜잭션 완료된 후의) 증/감 재화 정보를 유저에게 보여주어야 할 수도 있는데, 뒷단의 비동기 작업(이벤트 subscribe)을 수행하는 스레드랑 최초 주문 요청을 받는 요청스레드가 다른 부분에서 고려해야할 것이 더 있을 것 같은데요. 얼핏 생각했을 때는, 사용자에게 즉시 내려주는 응답 페이지는 PENDING 에 해당하는 페이지 UI 로 (ex: 결제 진행중... 표시) 전달하고, 사용자 PENDING 페이지 (클라이언트)에서 몇초 단위의 주기적인 서버 요청 등으로 완료 이벤트를 조회 하도록 처리하여 완료페이지로 리다이렉션 처리되는 방식이 될까요? 이 때, 중간 상태값은 별도 캐시서버등에 저장을 해야 할 것이고요. (리다이렉션 되는 완료페이지와 PENDING 페이지의 state가 또 다르므로) 2) 메시지 브로커(카프카) 를 쓸 때 고려사항 주제랑 좀 벗어난 걸 수는 있는데요, 보통 메시지 발행의 정확성을 위해 CDC (Change Data Capture) 를 설정하는 것이 일반적인 방식으로 알고 있습니다. 다만, 현재 서비스중인 DB 의 설정이나 부하 이슈로 CDC 를 쓰지 못하는 경우에는 어떤 방식으로 처리가능할지가 궁금합니다.
7:27 에서 함수 내에서 사용되는 지역 변수 자체는 금방 사라지는데 이러한 값들을 스택이 아니라 힙에 저장하는 것이 유리하다. 라고 설명하셨는데요! 스택이 아니라 힙에 저장 -> 힙이 아니라 스택에 저장 이 맞는 표현인 것 같아서 설명이 잘못된 것인지 제가 잘못 이해하고 있는건지 질문드립니다.
createTodo의 리턴값을 활용하면서 Todo를 생성했을 때, 캐시 무효화를 해서 데이터가 많은 경우 서버에 부하를 주는 코드를 개선했었었는데, 낙관적 업데이트2에서 데이터의 무결성을 위해 onSettled에서 queryClient.invalidateQueries 를 호출했는데 여기서는 괜찮은 걸까요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 네 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 네 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 네 [질문 내용] 안녕하세요. 영한님 항상 강의 잘 듣고 있습니다. 듣다가 궁금한 점이 생겨서 질문 남깁니다. 람다는 SAM에만 할당할 수 있다고 하셨는데 그 이유가 매서드가 여러개면 어디에 할당할 수 있을 지 알 수 없다고 말씀 하신 것까지는 이해했습니다. 이미 테스트를 통해 안되는 것은 확인했지만 인터페이스에 파라미터의 구성이나 갯수가 다른 함수가 정의될 경우에도 내부적으로 왜 안되는 지 궁금합니다..! public interface NotSamInterface { void run(); void go(int a); } 이런 경우에는 람다식도 달라지게 될텐데 왜 매핑이 어려운 걸까요..? 감사합니다.
강사님, 안녕하세요. 전자책 40page와 같이 이렇게 지정 후 생성 및 배포 버튼을 클릭하면 아래와 같이 오류 메시지가 발생합니다. 2026-01-03T13:49:04.695Z Initializing build environment... 2026-01-03T13:49:05.869Z Success: Finished initializing build environment 2026-01-03T13:49:06.165Z Cloning repository... 2026-01-03T13:49:07.333Z No build output detected to cache. Skipping. 2026-01-03T13:49:07.334Z No dependencies detected to cache. Skipping. 2026-01-03T13:49:07.335Z Detected the following tools from environment: 2026-01-03T13:49:07.435Z Executing user build command: npx opennextjs-cloudflare build 2026-01-03T13:49:08.435Z npm error code E404 2026-01-03T13:49:08.435Z npm error 404 Not Found - GET https://registry.npmjs.org/opennextjs-cloudflare - Not found 2026-01-03T13:49:08.435Z npm error 404 2026-01-03T13:49:08.435Z npm error 404 'opennextjs-cloudflare@*' is not in this registry. 2026-01-03T13:49:08.435Z npm error 404 2026-01-03T13:49:08.435Z npm error 404 Note that you can also install from a 2026-01-03T13:49:08.435Z npm error 404 tarball, folder, http url, or git url. 2026-01-03T13:49:08.436Z npm error A complete log of this run can be found in: /opt/buildhome/.npm/_logs/2026-01-03T13_49_07_756Z-debug-0.log 2026-01-03T13:49:08.483Z Failed: error occurred while running build command 혹시 저 상황에서 진행하려면 어떻게 해야하는지 궁금합니다. 감사합니다. 참고 - node, npm 버전은 아래와 같습니다. 혹시 몰라서 첨부합니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] ReentrantLock에 대한 순서 보장에 대해 궁금증이 생겨 질문을 남깁니다. producerCond에서 대기하고 있던 스레드가 producerCond.signal() 호출로 깨어났을 때 ReentrantLock의 lock을 얻기 위한 대기 큐로 들어가는 것으로 알고 있습니다. 근데 이때 signal() 호출로 깨어난 A 스레드가 lock 대기 큐로 들어갔는데 앞에 이미 스레드 B가 있어서 B가 ReentrantLock의 lock을 얻어버렸다고 가정했을 때 A는 다시 producerCond.await() 호출로 producerCond 스레드 대기 큐에 들어가면 맨 뒤로 이동할 것 같습니다. 근데 저는 B는 await()에 넣고 A를 실행하는 순서로 순서를 보장하고 싶은데 이것도 더 세밀하게 구현을 할 수 있는 것일까요?? 제가 질문에 대한 설명을 잘 못해서.. 혹시 이해가 되신다면.. 답변해주신다면 감사하겠습니다!
개별 캐시 데이터는 disabled 상태라 캐시를 무효화 해봤자 데이터를 다시 불러오지 않는다고 하시면서 use-upate-todo-mutation.ts 파일에서 onSettled 이벤트 핸들러를 삭제하셨습니다. 그런데 이 부분이 이해가 잘 가지 않습니다. QUERY_KEYS.todo.list를 무효화 하면 todo 목록을 가지고 오면서 개별 캐시 데이터도 todos.forEach((todo) => { queryClient.setQueryData<Todo>(QUERY_KEYS.todo.detail(todo.id), todo); }); 이렇게 다시 세팅하는거 아닌가요?
JPA를 사용하는 강의라고 하지만 QueryDSL에 대한 코드만 딱 보여주고 이게 어떤 dependency를 추가하고 build를 해서 사용해야한다는 등의 설명이 일절 없는것이 아쉽습니다. 강의 교재에도 해당 내용은 기재되어있지 않은데 왜 코드를 실제로 적용하는 부분에 대해서나 테스트 코드 작성에 대해서는 따로 언급이 없으신건가요?
학습 관련 질문을 남겨주세요. 구체적으로 적을수록 좋아요! 마크다운과 단축키를 활용하면 글을 더 편하게 작성할 수 있어요. 커뮤니티 질문 & 답변에 비슷한 내용이 있었는지 먼저 검색해보세요. 편하게 질문주세요:) 직접 답변 드리도록 하겠습니다~ dp나 다익스트라 같은 알고리즘은 이번 강의에서는 아예 다루지 않나요? 기존 올인원 강의(파이썬 버전) 같은 경우엔 포함되어있던데, 혹시 자바 버전도 추가 또는 별도 강의 개설할 예정인지 궁금합니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요 좋은 강의로 공부하고 있는 대학생입니다. 이번 영상에서 ItemService 클래스의 updateItem 메서드에서 값을 변경하는 부분을 각 변수에 대해 set 으로 접근하는 방법 대신 item 클래스 내부에서 change() 메서드를 선언 후 사용하는 방법으로 직접 수정해보려고 합니다. 그런데 만약 클라이언트에서 isbn과 author 값을 수정하고 싶다면, item 도메인에서는 두 변수에 대한 선언이 안되어있는데 item 엔터티 구조를 변경하는 방향으로 수정 로직을 작성해야 할지 궁금해서 질문 남깁니다.