172만명의 커뮤니티!! 함께 토론해봐요.
해결됨
한 입 크기로 잘라먹는 Next.js
import style from "./page.module.css"; // 변경 후: import Image from 'next/image'; import { notFound } from "next/navigation"; import { BookData } from "@/types"; export const dynamicParams = true; export async function generateStaticParams() { return [{id: "1"}, {id: "2"}, {id: "3"}]; } async function BookDetail({bookId}:{bookId:string}){ // params가 Promise이므로 먼저 await로 해결(resolve)해야 합니다 const response = await fetch(`${process.env.NEXT_PUBLIC_API_SERVER_URL}/book/${bookId}`) ; if (!response.ok){ if (response.status === 404) { notFound(); } return <section>Failed to fetch books</section>; } const book = await response.json(); const { id, title, subTitle, description, author, publisher, coverImgUrl } = book; return ( <section> <div className={style.cover_img_container} style={{ backgroundImage: `url('${coverImgUrl}')` }} > <img src={coverImgUrl} alt={title || "책 표지"} /> </div> <div className={style.title}>{title}</div> <div className={style.subTitle}>{subTitle}</div> <div className={style.author}> {author} | {publisher} </div> <div className={style.description}>{description}</div> </section> ); } function ReviewEditForm() { async function createReviewAction(formData: FormData) { "use server"; //console.log("server action called"); const content = formData.get("content")?.toString(); const author = formData.get("author")?.toString(); console.log("server action called", { content, author }); } return ( <section > <h2>리뷰 작성</h2> <form action={createReviewAction}> <textarea name="content" placeholder="리뷰를 작성해주세요" ></textarea> <input name="author" placeholder="작성자" /> <button type="submit">리뷰 작성</button> </form> </section> ); } export default function Page({ params }: { params: { id: string } }) { // const bookId = params.id; // 미리 params 처리 return ( <div className={style.container}> <BookDetail bookId={params.id}/> <ReviewEditForm/> </div> ) } 에서 Error: Route "/book/[id]" used `params.id`. `params` should be awaited before using its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis at Page (src\app\book\[id]\page.tsx:79:33) 77 | return ( 78 | <div className={style.container}> > 79 | <BookDetail bookId={params.id}/> | ^ 80 | <ReviewEditForm/> 81 | </div> 82 | ) 이에러가 계속 나는데 chatgpt랑 계속 풀어 보려고 해도 쉽지 않네요 params 쓰는 시점 문제인거 같은데 강의 내용을 봐서는 잘모르겠네요 export default function Page({ params }: { params: { id: string } }) { // const bookId = params.id; // 미리 params 처리 return ( <div className={style.container}> <BookDetail bookId={params.id}/> <ReviewEditForm/> </div> ) } bookId 이 부분이 계속 async 어쩌구 하는데
Ming
2025-04-13T03:08:42.208Z
댓글 2
좋아요 0
조회수 168
해결됨
(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
안녕하세요 강사님 이제 이론 파트로 넘어왔는데 PDF 파일이랑 수업자료 파일이랑 내용이 달라서 어떤걸 기준으로 봐야되는걸까요? 같은 내용인줄 알았는데 제목만 같고 안에 내용이 좀 달라서 질문 드립니다.
sbd
2025-04-12T19:13:25.880Z
댓글 2
좋아요 0
조회수 172
해결됨
스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 거의 막바지에 이르러서 테스트 부분을 들으려 하고 있습니다 테스트 부분에서 강의 코드와 같이 맞춰 보아도 에러가 발생하여 어떤 에러인지 감이 잘 잡히지 않아 질문드립니다. 최하단에 에러 로그를 첨부합니다. 저장소의 완성 코드 파라미터대로 하면 성공하지만, 강의대로 하면 에러가 납니다 이것은 저장소의 완성본 코드이고 @Test void readAllTest() { ArticleReadPageResponse response1 = articleReadRestClient.get() .uri("/v1/articles?boardId=%s&page=%s&pageSize=%s".formatted(1L, 3000L, 5)) .retrieve() .body(ArticleReadPageResponse.class); System.out.println("response1.getArticleCount() = " + response1.getArticleCount()); for (ArticleReadResponse article : response1.getArticles()) { System.out.println("article.getArticleId() = " + article.getArticleId()); } ArticleReadPageResponse response2 = articleRestClient.get() .uri("/v1/articles?boardId=%s&page=%s&pageSize=%s".formatted(1L, 3000L, 5)) .retrieve() .body(ArticleReadPageResponse.class); System.out.println("response2.getArticleCount() = " + response2.getArticleCount()); for (ArticleReadResponse article : response2.getArticles()) { System.out.println("article.getArticleId() = " + article.getArticleId()); } 이것은 에러가 발생하는 강의의 코드입니다. @Test void readAllTest(){ ArticleReadPageResponse response1 = articleReadRestClient.get() .uri("/v1/articles?boardId=%s&page=%s&pageSize=%s".formatted(1L, 1L, 5)) .retrieve() .body(ArticleReadPageResponse.class); System.out.println("response1 = " + response1); for (ArticleReadResponse article : response1.getArticles()) { System.out.println("article.getArticleId() = " + article.getArticleId()); } ArticleReadPageResponse response2 = articleRestClient.get() .uri("/v1/articles?boardId=%s&page=%s&pageSize=%s".formatted(1L, 1L, 5)) .retrieve() .body(ArticleReadPageResponse.class); System.out.println("response2 = " + response2); for (ArticleReadResponse article : response2.getArticles()) { System.out.println("article.getArticleId() = " + article.getArticleId()); } } 이것은 에러 로그입니다 (본문 제한으로 부득이하게 이미지로 첨부합니다)
java mysql spring-boot kafka redis
woo
2025-04-12T17:32:40.904Z
댓글 2
좋아요 0
조회수 174
해결됨
Airflow 마스터 클래스
선생님 안녕하세요 8-2 강의에서 trigger dag run 이 제대로 작동하지 않아 질문드립니다. 강의에서 제공된 코드와 똑같이 작성을 해서 dag를 만들었는데, dags_trigger_dag_run_operator는 정상 작동을 하는데, dags_python_operator가 돌아가지 않습니다. dag들은 잘 연결되어있거든요? 아래 그림에서 triggered dag 클릭하면 dags_python_operator로 넘어갑니다. 그런데 dags_python_operator에서는 실행 개수가 늘어나지 않고 그대로 입니다. 아래 그림에서 run id 에 manual 이라고 되어있는 것은 제가 이 dag를 직접 실행시켜서 그런 것이고, triggered 된 것이 아닙니다. 다만 dags_trigger_dag_run_operator 의 두번째 task에 이런 내용이 나오기는 합니다. 혹시 어떤 parameter가 좀 제대로 설정이 안되어있는 것일까요? 제 코드는 수업자료와 동일합니다.
nathan
2025-04-12T14:04:55.591Z
댓글 2
좋아요 0
조회수 117
해결됨
한 입 크기로 잘라먹는 Next.js
3.5) 리액트 서버 컴포넌트 주의사항 강의의 12분 쯤 - 서버 컴포넌트를 클라이언트 컴포넌트의 children props로 사용하면, 브라우저에서 서버컴포넌트가 렌더링 되지 않는 걸 보여주는 예시에서요. (with-searchbar)/page.tsx1 (with-searchbar)/client-component.tsx (with-searchbar)/server-component.tsx 현재 잘 따라한거 같은데, 서버 컴포넌트가 브라우저에 출력이 되더라구요. 서버 컴포넌트로서 출력이 된거 같긴한데. 브라우저에서 서버 컴포넌트가 보이면 안되는 거 아닌가 싶은데, 현재 next 15.3 이라서 그런건가 싶기도 하구요!
파미에스테이션
2025-04-12T13:12:29.991Z
댓글 2
좋아요 1
조회수 220
해결됨
김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕 하세요. 궁금증이 생겨서 질문을 올립니다. 코드를 보여주고 설명 하는게 편할것 같아서 코드를 먼저 보여드립니다. 블록친 부분을 보시면 왼쪽에 있는 것은, 생성자 쪽에서 new @@@을 해서, 값을 지정하는 방면, 오른쪽에 있는 것은, 필드 쪽에서 new @@@ 하여서 값을 지정 하는 것을 볼 수 있었습니다. 여기서 궁금증이 생깁니다. 왼쪽에 있는 pathMap을 가지고 있는 것을 객체를 생성할때 하는게 아니면 그냥 필드에 넣어도 되는것이 아닌가? 그리고 오른쪽에 있는 것을 생성자 안에 넣어서 선언해도 되는 것이 아닌가? 라는 생각들입니다 억지 스러운거 같지만 이렇게요. 그래서 여기서 궁금증인 어떤 클래스들은 필드에 new를, 어떤 클래스들은 객체에 new를 하는것 같은데, 1. 두 가지의 차이점이 궁금하고, 2.아래의 사진 처럼 이렇게 바꿔도 되는지 궁금합니다. 답변 부탁 드립니다.
생각하는자
2025-04-12T12:35:21.088Z
댓글 1
좋아요 0
조회수 140
해결됨
챗 GPT를 활용한 파이썬 프로그래밍
강의중에 설치파일을 주셨다고 했는데 어디서 찾는지 모르겠네요 ㅜ
dragonlee94
2025-04-12T12:25:34.780Z
댓글 1
좋아요 0
조회수 125
해결됨
(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
안녕하세요. 문의 드릴 게 있습니다. 14:02 에서, 궁금한 게 있는데요. 저번 수업에서 업캐스팅일 때, 오버라이딩 함수가 아닌데, 자식 매서드를 호출하면 에러가 발생한다고 하셨었는데요, 지금처럼 show(int x)매서드는 오버라이딩이 아니지 않나요?? 그럼 궁금한 부부분이 단순 선언은 괜찮은건가요? 호출 시에만 문제가 되는건지 궁금합니다. 지금 14:02 에서 보여지고 있는 코드가 오류가 없는 코드인지 궁금합니다.
문수민
2025-04-12T12:05:34.799Z
댓글 2
좋아요 0
조회수 72
미해결
파이썬 알고리즘 트레이딩 파트2: Interactive Brokers API를 활용한 실시간 알고리즘 트레이딩
ib.connect()해도 연결이 안 되는게 정상입니다. 제대로 설치가 됐으면 애러가 안 난다고 말씀하셔서 api는 직접 연결하고 설치해야 되는다고 생각하고 다 설치해서 연결확인 후 봤더니... 가르쳐주시네요. 혹시 다른 분들도 안되서 당황하실까봐 글을 남겼습니다. 강의 잘보고 있습니다.
seoya0106
2025-04-12T09:29:02.866Z
댓글 2
좋아요 0
조회수 173
해결됨
(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
지금 class Parent { public String name = "Parent" ; } class Child extends Parent { public String name = "Child" ; // Parent의 name 변수를 hiding함 } 두 변수 모두 정적 변수가 아니라 인스턴스 변수? 인데 그럼에도 업캐스팅 한 객체에서 변수를 불러올때는 선언한 타입 클래스에 있는 변수를 불러온다는 것이겠죠? 재선언한 자식것을 가져오는것은 동일 형태의 매서드만 가져오는것이구요?
조창호
2025-04-12T09:28:15.868Z
댓글 2
좋아요 0
조회수 194
미해결
Next.js 완벽 마스터 (v15): 노션 기반 개발자 블로그 만들기 (with 커서AI)
안녕하세요. 강사님. tailwind v4에서 hsl 대신 oklch를 사용한다고 하는데,,, 이에 대한 안내도 있을까요? 아직 강의를 다 들은건 아니라서 커스텀 색상을 얼마나 추가할지는 모르겠는데 혹시 몰라서요!
react 블로그 next.js cursor cursorai
jjanec
2025-04-12T09:23:28.485Z
댓글 2
좋아요 0
조회수 491
해결됨
(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
2:42 출력값이 2 4 5 1 3 인 이유는 printf("%d ") %d 뒤에 띄어쓰기가 하나 더 있기 때문인가요?
람다
2025-04-12T09:13:10.588Z
댓글 2
좋아요 0
조회수 99
미해결
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] OrderServiceTest에서 id to load is required for loading org.springframework.dao.InvalidDataAccessApiUsageException: id to load is required for loading 에러가 발생합니다. ID값이 왜 NULL인지 찾고 있는데 잘 모르겠네요.. 도움요청합니다. package jpabook.jpashop.service; import jakarta.persistence.EntityManager; import jpabook.jpashop.domain.Address; import jpabook.jpashop.domain.Member; import jpabook.jpashop.domain.Order; import jpabook.jpashop.domain.OrderStatus; import jpabook.jpashop.domain.item.Book; import jpabook.jpashop.domain.item.Item; import jpabook.jpashop.repository.OrderRepository; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.transaction.annotation.Transactional; import static org.junit.jupiter.api.Assertions.*; @SpringBootTest @Transactional class OrderServiceTest { @Autowired EntityManager em; @Autowired OrderService orderService; @Autowired OrderRepository orderRepository; @Test public void 상품주문() throws Exception { //given Member member = new Member(); member.setName("회원1"); member.setAddress(new Address("서울", "강가", "123-123")); em.persist(member); Book book = new Book(); book.setName("시골 JPA"); book.setPrice(10000); book.setStockQuantity(10); //when int orderCount = 2; Long orderId = orderService.order(member.getId(), book.getId(), orderCount); //then Order getOrder = orderRepository.findOne(orderId); assertEquals(OrderStatus.ORDER, getOrder.getStatus(), "상품 주문시 상태는 ORDER"); } @Test public void 주문취소() throws Exception { //given //when //then } @Test public void 상품주문_재고수량초과() throws Exception { //given //when //then } }
java spring 웹앱 spring-boot jpa
2025-04-12T08:16:56.714Z
댓글 1
좋아요 0
조회수 128
해결됨
[말 한마디로 뚝딱!] AI와 함께 나만의 수익화 웹사이트를 만드는 법
IntelliJ 도 현재 최신버전으로 설치했는데 강의 버전에 맞춰 설치해야 하는지요?
0213kyungsoo
2025-04-12T07:31:26.859Z
댓글 2
좋아요 0
조회수 303
미해결
프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
1. %로 실수를 출력할 경우 최소 자릿수가 정해져 있나요? 아래 코드를 출력하면 왜 3.140000이 출력되는지 궁금합니다. print('%f'%(3.14))
불꽃남자
2025-04-12T07:30:00.618Z
댓글 2
좋아요 0
조회수 174
해결됨
프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
1. 아래 두 줄의 출력값이 동일한데 무슨 차이인지 모르겠습니다. print('{:10f}'.format(3.141592)) print('{:10}'.format(3.141592)) 2. 문자는 부등호를 생략하면 왼쪽으로 몰리는 반면, 정수의 경우는 >를 사용하나 생략하나 둘 다 오른쪽으로 몰려서 출력되는 이유가 궁금합니다. print('{:4d}'.format(42)) print('{:10}'.format('nice')) 감사합니다.
불꽃남자
2025-04-12T07:21:22.165Z
댓글 1
좋아요 0
조회수 107
미해결
실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
학습은 예전에 마쳤습니다. 내용 꽉꽉 채워진 훌륭한 강의 감사합니다. 그런데, 수업내용 프로젝트의 완성된 코드는 제공이 안되는지 궁금합니다. 압축파일로 제공된다던지 github 리파지토리를 통해 제공이 된다던지... 이 곳에서 답변이 어렵다면 jinwelcome1015@gmail.com 메일로라도 답변 부탁드립니다. 이상입니다. 감사합니다~
python 웹-크롤링 selenium beautifulsoup
jin4348
2025-04-12T05:32:54.666Z
댓글 1
좋아요 0
조회수 178
해결됨
실리콘밸리 엔지니어와 함께하는 Apache Airflow
postgres_loader 테스트시, from airflow.providers.postgres.operators.postgres import PostgresOperator 에러가 지속되어, pache-airflow-providers-postgres 6.1.2 에서 apache-airflow-providers-postgres 5.7.0 으로 version down으로 해결하였습니다. 6.x에서 package의 변경이 있는 건지, 저희 환경문제인지 문의 드립니다.(airflow version 2.10.5, Python 3.11.9, venv 환경으로 구성)
python 빅데이터 데이터-엔지니어링 airflow
jhlee
2025-04-12T01:06:30.475Z
댓글 2
좋아요 1
조회수 226
미해결
실리콘밸리 엔지니어와 함께하는 Gradle
영상 을 3개 정도 구매해서 리뷰를 남겼는데 3개를 1리뷰+1강의 이벤트에 참여가능한가요? 하나만 주셔도 감사합니다만 이런기회가 어딨나 싶어서 상세하게 답변 받고싶어서요 폼을 3번작성했는데 강의가 3개가 오는건가요?
java scala gradle scala-3 compiler
2025-04-11T23:31:04.270Z
댓글 1
좋아요 0
조회수 155
해결됨
(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
순서를 작성하는 부분이 빈칸이고 거기에 답안을 쓰라고 설명을 하셨는데, 그다음에 또 이어서 숫자에 해당하는 설명을 작성하는거였다고 말씀을 하십니다. 문제가 의도가 설명을 작성하라는건지, 순서를 작성하라는건지 둘 다 작성하라는건지 문제가 어떻게 나왔다는건가요?
sbd
2025-04-11T19:13:38.285Z
댓글 2
좋아요 0
조회수 109