inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

2.16) 빌드 후 실행한 환경에서 네트워크 탭에서의 Json 요청

해결됨

한 입 크기로 잘라먹는 Next.js

안녕하세요. 좋은 강의 잘 듣고 있습니다. "2.16) SSG 4. 폴백옵션 설정하기" 강의를 듣다가 궁금한 점이 생겨서 질문남깁니다! 홈 경로는 getStaticProps 함수를 사용해 빌드 타임에 사전 렌더링이 이루어지고 있습니다. Next App을 빌드 후에 홈 / 경로에서 네트워크 탭을 살펴보다가 현재 화면 내에서 인덱스에 해당하는 Json 응답을 받은 것을 보았습니다. 하나를 열어보니 아래와 같습니다. // 6.json?id=6 { "pageProps": { "book": { "id": 6, "title": "프론트엔드 성능 최적화 가이드", "subTitle": "웹 개발 스킬을 한 단계 높여 주는", "description": "...", "author": "유동균", "publisher": "인사이트", "coverImgUrl": "https://shopping-phinf.pstatic.net/main_3562758/35627588630.20230704084326.jpg" } }, "__N_SSG": true } 제가 이해한 바로는 / 경로에 진입해서 초기 요청이 이루어지면 서버는 사전에 렌더링 된 HTML 페이지를 응답한 이후 현재 페이지에 필요한 모든 자바스크립트 파일을 JS Bundle로 전달합니다. 네트워크 탭에서 localhost HTML 문서를 확인하고 이후에 http://localhost:3000/_next/static/chunks/pages/book/%5Bid%5D-4bfc2418ccf58b5f.js JS Bundle을 응답받은 것을 확인했습니다. 그리고 현재 페이지에서 이동 가능성이 있는 페이지들에 한해 사전에 요청이 이루어집니다. js 파일이 전달되어야 하지만 북( /book/[id] )페이지가 SSG 방식으로 사전 렌더링이 이루어지므로 데이터를 뿌려주기만 하면 되니까 json 형식으로 응답이 온 것이 아닐까 생각했습니다. (북페이지를 SSR 방식으로 바꾸니 북페이지의 js 파일이 전달되었습니다.) 이후 Link 컴포넌트인 도서 목록 중 하나를 클릭하면 자바스크립트 코드를 실행시켜 컴포넌트를 교체하는 CSR 방식으로 페이지를 이동합니다. Q. SSG 방식에서는 사전 렌더링의 응답으로 Json 형식으로 전달받아 새로운 페이지를 보여주는 제가 이해하고 있는 방식이 맞는지 궁금합니다. 다른 하나는, 현재 화면에서 네트워크 요청(예: 6.json?id=6)이 무수히 많이 이루어진 것을 보았습니다. 그래서 Link 컴포넌트의 prefetch 값을 false로 설정하여 각 컴포넌트에 마우스를 호버했을 때 프리페칭이 이루어지도록 했습니다. 그러자 마우스를 호버하면 프리페칭이 이루어졌지만 마우스를 호버할 때마다 요청이 이루어져 의문이 생겼습니다. Q. 잦은 요청이 서버에 부하를 주는 것은 아닌지, 이를 개선할 수 있는 방법이 있는지 궁금합니다. 긴 글 읽어주셔서 감사합니다. 아래 코드 첨부하였습니다! 📄 /pages/index.tsx import SearchableLayout from "@/components/Searchable-layout"; import BookItem from "@/components/Book-item"; import { InferGetStaticPropsType } from "next"; import fetchBooks from "@/lib/fetch-books"; import style from "./index.module.css"; import fetchRandomBooks from "@/lib/fetch-random-books"; export const getStaticProps = async () => { const [allBooks, recoBooks] = await Promise.all([ fetchBooks(), fetchRandomBooks(), ]); return { props: { allBooks, recoBooks, }, }; }; export default function Home({ allBooks, recoBooks, }: InferGetStaticPropsType<typeof getStaticProps>) { return ( <div className={style.container}> <section> <h3>지금 추천하는 도서</h3> {recoBooks.map((book) => ( <BookItem key={book.id} {...book} /> ))} </section> <section> <h3>등록된 모든 도서</h3> {allBooks.map((book) => ( <BookItem key={book.id} {...book} /> ))} </section> </div> ); } Home.getLayout = (page: NextPageWithLayout) => { return <SearchableLayout>{page}</SearchableLayout>; }; 📄 /pages/book/[id].tsx /* eslint-disable jsx-a11y/alt-text */ /* eslint-disable @next/next/no-img-element */ import fetchBook from "@/lib/fetch-one-book"; import style from "./[id].module.css"; import { GetStaticPropsContext, InferGetStaticPropsType } from "next"; export const getStaticPaths = () => { return { paths: [ { params: { id: "1" } }, { params: { id: "2" } }, { params: { id: "3" } }, ], fallback: "blocking", }; }; export const getStaticProps = async (context: GetStaticPropsContext) => { const { id } = context.params!; const book = await fetchBook(Number(id)); return { props: { book, }, }; }; export default function Page({ book, }: InferGetStaticPropsType<typeof getStaticProps>) { if (!book) return "문제가 발생했습니다. 다시 시도해주세요."; const { title, subTitle, description, author, publisher, coverImgUrl } = book; return ( <div className={style.container}> <div className={style.cover_img_container} style={{ backgroundImage: `url('${coverImgUrl}')` }} > <img src={coverImgUrl} /> </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> </div> ); }

  • react
  • typescript
  • next.js
seong2 댓글 2 좋아요 0 조회수 117

루프에서 i 값 범위 질문

미해결

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

public int solution(int N, int K, int[] arr){ int sum = 0; int answer = 0; for (int i = 0 ; i < K; i++){ sum += arr[i]; answer = sum; } for (int i = K; i <= N-K; i++){ sum += arr[i] - arr[i-K]; if (sum > answer){ answer = sum; } } return answer; } 강의에서는 i 의 범위를 i = k ; i < n; 으로 놓았으나, i = k ; i <= n-k ; 로 두고 제출을 하니 정답이 나왔습니다. 왜 정답이 나왔는지 모르겠습니다. 인덱스 i 는 슬라이딩 윈도우의 마지막 위치나 다름이 없는데, 배열의 마지막 인덱스인 n-1 까지 도달해야함이 분명합니다. 그러나, i 가 n-k 까지 가게 되면 i 가 n-1 까지 도달을 못하게 됩니다.

  • java
  • 코딩-테스트
rookie21 댓글 1 좋아요 0 조회수 109

middleware 관련 질문입니다

미해결

Next + React Query로 SNS 서비스 만들기

해당 코드를 수정했던 강의가 어디였는지 기억이 안나 여기에 글 남깁니다. 아래는 auth.ts의 코드이고 callbacks 부분을 작성하셨다가 나중에 없애는 걸로 수정하셨는데 이 코드의 역할을 middleware에서 대신한다고 생각하면 될까요 ? export async function middleware() { const session = await auth(); if (!session) { return NextResponse.redirect('http://localhost:3000/i/flow/login'); } } // callbacks: { // async authorized({ request, auth }) { // if (!auth) { // return NextResponse.redirect('http://localhost:3000/i/flow/login'); // } // return true; // }, // },

  • react
  • next.js
  • react-query
  • next-auth
  • msw
심현석 댓글 2 좋아요 0 조회수 143

mysql 연결 오류

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

안녕하세요 맥북을 사용 중이고 homebrew 로 mysql을 설치했습니다 mysql 을 인텔리제이에 연결하려하면 DBMS: MySQL (no ver.) Case sensitivity: plain=mixed, delimited=exact Connection refused. 이러한 오류가 뜹니다. 어떤 것이 문제일까요? 초기화하고 다시 sudo brew services start mysql 해도 똑같은 오류가 뜹니다.

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
cg10046 댓글 2 좋아요 0 조회수 735

마지막 강의 배포 후 최적화에서 오류

해결됨

한 입 크기로 잘라먹는 Next.js

안녕하세요 next 강의를 거의 마치고 vercel에 배포까지 완료한 후 마지막 강의인 배포 후 최적화를 강사님과 동일하게 작성 후 vercel --prod 명령어를 통해 프로젝트를 다시 배포하였는데 해당 오류가 나타납니다.. ㅠㅠ book 폴더에서 오류가 나는것 같은데 혼자 해결해보려고 했으나, 원인도 잘 모르겠고 검색해도 잘 안나와서 여쭤봅니다.. -오류- -/book/[id]/page.tsx 코드- import { notFound } from "next/navigation"; import style from "./page.module.css"; import { BookData, ReviewData } from '@/types'; import ReviewItem from "@/components/review-item"; import ReviewEditor from "@/components/review-editor"; import Image from "next/image"; export async function generateStaticParams() { const response = await fetch(`${process.env.NEXT_PUBLIC_API_SERVER_URL}/book`); if(!response.ok) { throw new Error(response.statusText); } const books:BookData[] = await response.json(); return books.map((book) => ({ id: book.id.toString(), })) } async function BookDetail({bookId} :{bookId:string}) { const response = await fetch(`${process.env.NEXT_PUBLIC_API_SERVER_URL}/book/${bookId}`); if(!response.ok) { if(response.status === 404) { notFound(); } return <div>오류가 발생했습니다...</div> } 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}')` }} > <Image src={coverImgUrl} width={240} height={300} 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> ); } async function ReviewList({bookId}:{bookId : string}) { const response = await fetch(`${process.env.NEXT_PUBLIC_API_SERVER_URL}/review/book/${bookId}`, {next:{tags:[`review-${bookId}`]}}); if(!response.ok) { throw new Error(`Review fetch failed : ${response.statusText}`); } const reviews:ReviewData[] = await response.json(); return ( <section> {reviews.map((review) => ( <ReviewItem key={`review-item-${review.id}`} {...review} /> ))} </section> ) } export async function generateMetadata({ params }: { params: Promise<{ id: string }> }) { const {id} = await params; const response = await fetch(`${process.env.NEXT_PUBLIC_API_SERVER_URL}/book/${id}`); if(!response.ok) { throw new Error(response.statusText); } const book:BookData = await response.json(); return { title:`${book.title} - 한입북스`, description:`${book.title}`, openGraph:{ title:`${book.title} - 한입북스`, description:`${book.title}`, images:[book.coverImgUrl], } } } export default async function Page({ params }: { params: Promise<{ id: string }> }) { const resolvedParams = await params; return ( <div className={style.container}> <BookDetail bookId={resolvedParams.id} /> <ReviewEditor bookId={resolvedParams.id} /> <ReviewList bookId={resolvedParams.id} /> </div> ) }

  • react
  • typescript
  • next.js
최다빈 댓글 2 좋아요 0 조회수 210

[06-01] 동기/비동기는 강의 영상이 없나요?

해결됨

[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스

강의 시간이 1분이고 영상 자체가 없어서요. 그냥 학습자료만 보고 넘어가는 부분인가요? 그리고 전체 강의 코드는 어디서 다운로드 받을 수 있나요?

  • react
  • react-native
  • 하이브리드-앱
  • graphql
  • next.js
희소식 댓글 2 좋아요 0 조회수 177

다형성 참조 질문입니다

미해결

김영한의 실전 자바 - 기본편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 이 부분에서 Animal이 에서 시작한다고 하셨는데 동적 바인딩은 런타임 시 실제 인스턴스를 기준으로 동작하는 것으로 알고 있습니다. 여기서 '시작'이라는 것이 컴파일 단계를 말씀하시는 건가요? 이 부분이 헷갈려서 질문드립니다 :)

  • java
  • 객체지향
딩띵 댓글 1 좋아요 0 조회수 96

AutoWired 오류와 Bean

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 1. 저는 MemeberService 쪽에서 @AutoWired를 해주는 부분에서 노란줄이 생기던데 생성자가 하나이기 때문에 생략가능해서 뜨는건가요? 강사님이 계속 Bean이라고 언급하시는데 Bean이라는게 뭔지 궁금합니다. 이건 다음 강의에서 배울 수 있는건가요?

  • java
  • spring
  • mvc
  • spring-boot
jeongho lee 댓글 2 좋아요 0 조회수 157

OrderSpecifier 관련 내용도 학습하나요?

미해결

실전! Querydsl

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 정렬구현하다가 OrderSpecifier을 구글링으로봤는데 아직 영상을 다못봐서요 영상에서 학습하나요?

  • java
  • jpa
임다정 댓글 1 좋아요 0 조회수 107

오류2

해결됨

한 입 크기로 잘라먹는 Next.js

Next 강의에서 App Router 실습을 위해서 강사님께서 올려주신 자료를 다운받으면 위 사진과 같이 강의와는 다르게 Promise 타입이 존재하여 params.id 에 오류가 발생하게 됩니다.

  • react
  • typescript
  • next.js
Full Stack 개발자 댓글 2 좋아요 0 조회수 80

오류

해결됨

한 입 크기로 잘라먹는 Next.js

Next 강의에서 App Router 실습을 위해서 강사님께서 올려주신 자료를 다운받으면 위 사진과 같이 강의와는 다르게 Promise 타입이 존재하여 searchParams.q에 오류가 발생하게 됩니다. 그래서 Promise 타입을 없애면 오류는 사라지지만 빌드타입에 오류가 아래와 같이 발생합니다. 어떻게 해결하면 될까요?

  • react
  • typescript
  • next.js
Full Stack 개발자 댓글 2 좋아요 0 조회수 61

파일용량의 기준에 대한 질문!

미해결

김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션

readAllBytes()를 사용할때 가장 빠르지만, 결과적으로 메모리를 한번에 많이 사용하기 때문에 파일의 크기가 작아야 한다. 라고 알려주셨습니다. 개인적으로 알아보면서 " 단순히 파일의 크기만이 아니라, JVM의 메모리 관리 특성과 실제 운영환경의 종합적으로 고려해야함 " 으로 이해하게 되었는데요.(해당 부분에 대한 서칭이 잘못 되었다면 바로 잡아주세요.) 저에게는 이 말 조차도 두루뭉술하게 느껴져서 "작다/크다"에 대한 기준을 가늠하기에 어려움이 있는것 같습니다. 정확한 기준이 필요하기보단 어느정도 가늠을 할 수 있는 방법이 필요한것 같습니다. 파일 용량 기준에 대한 간단한 계산 방법이 있을까요?

  • java
  • 네트워크
  • 객체지향
이성 댓글 1 좋아요 0 조회수 175

while문 증감 연산자 질문 드립니다 ㅜㅜ

미해결

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

i = 0; while ( i ++ < 10) { System. out .println( i ); } 이 while 문을 출력하면 콘솔에 1부터10까지 10번 출력이 나오는데요 i++ 붙은 증감 연산자가 뒤에 있으니까 0부터9까지 10번 나와야 하는게 아닌가요?ㅜㅜ for문에서는 for(int i=0; i<10; i++){}이럴경우 0부터9까지 10번 실행이되는데 왜 다른가요...헷갈려요 선생님

  • java
  • 객체지향
  • while
  • 증감연산자
지혜 댓글 2 좋아요 0 조회수 194

Iterator 문의

미해결

나도코딩의 자바 기본편 - 풀코스 (20시간)

안녕하세요 ! Iterator 강좌 수강 후 궁금한 점이 있어 질문드립니다. List<String> list = new ArrayList<>(); list.add("유재석"); list.add("(알 수 없음)"); list.add("김종국"); list.add("(알 수 없음)"); list.add("강호동"); list.add("(알 수 없음)"); list.add("박명수"); list.add("(알 수 없음)"); list.add("조세호"); Iterator<String> it = list.iterator(); 우선, 강좌와 동일하게 해당 조건에서 실행할 때 it = list.iterator(); while (it.hasNext()) { String s = it.next(); if (s.contains("(알 수 없음)")) { it.remove(); // 삭제 } } it = list.iterator(); while (it.hasNext()) { if (it.next().contains("(알 수 없음)")) { it.remove(); // 삭제 } } 위 코드와 아래 코드가 동일하게 동작하는 것 같은데, 코드의 가독성을 위해 String s 를 따로 선언해주는 것이 맞는지 궁금합니다 ! 또한 추가적으로, it = list.iterator(); while (it.hasNext()) { String s = it.next(); if (s.contains("(알 수 없음)")) { it.remove(); // 삭제 } } it = list.iterator(); while (it.hasNext()) { System.out.println(it.next()); } it = list.iterator(); while (it.hasNext()) { String s = it.next(); if (s.contains("(알 수 없음)")) { it.remove(); // 삭제 } else { System.out.println(it.next()); } } 위 코드를 아래 코드로 실행했을 때 오류가 발생하는데 이유를 알고 싶습니다 ! while (it.hasNext()) -> 리스트에서 다음 값을 불러 낼 수 있는 동안 반복하며 if(s.contains("(알 수 없음)")) { it.remove();} -> '("알 수 없음")' 을 포함한다면 제거하고 else {System.out.println(it.next());} ->그것이 아니라면 출력해라 로 생각해서 가능할 것 같은데 오류가 나서 궁금증이 생겼습니다 ! 감사합니다 :)

  • java
  • 객체지향
김재훈 댓글 1 좋아요 0 조회수 122

미로의 최단거리 통로

미해결

자바 코딩테스트 - it 대기업 유제

안녕하세요 혹시 이 문제를 풀 때 꼭 dist배열을 만들어야 될까요? 제 코드를 아래 보여드립니다. 바로 L를 반환하게 만들었는데 이래도 괜찮을지요? package org.youyk.inflearn.latest.sec07.Problem4; import java.util.*; class Solution1 { static int[] dx = {0,0,-1,1}; static int[] dy = {1,-1,0,0}; public int solution(int[][] board){ int answer = 0; int[][] ch = new int[board.length][board[0].length]; Queue<int[]> queue =new LinkedList<>(); int n = board.length; int m = board[0].length; queue.add(new int[]{0,0}); ch[0][0] = 1; int L=0; while(!queue.isEmpty()){ int size = queue.size(); for(int i=0;i<size;i++){ int[] poll = queue.poll(); if(poll[0] == n-1 && poll[1] == m-1){ return L; } for(int j=0;j<4;j++){ int xx = dx[j] + poll[0]; int yy = dy[j] + poll[1]; if(xx>=0 && yy>=0 && xx<n && yy<m && board[xx][yy] ==0){ board[xx][yy] = 1; queue.add(new int[]{xx,yy}); } } } L++; } return -1; } public static void main(String[] args){ Solution1 T = new Solution1(); int[][] arr={{0, 0, 0, 0, 0, 0, 0}, {0, 1, 1, 1, 1, 1, 0}, {0, 0, 0, 1, 0, 0, 0}, {1, 1, 0, 1, 0, 1, 1}, {1, 1, 0, 1, 0, 0, 0}, {1, 0, 0, 0, 1, 0, 0}, {1, 0, 1, 0, 0, 0, 0}}; int[][] arr3={{0, 0, 1, 1, 1, 1, 1}, {0, 0, 1, 0, 0, 0, 0}, {1, 0, 1, 0, 0, 0, 0}, {0, 0, 1, 1, 0, 0, 0}, {1, 0, 0, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0}, {0, 0, 1, 1, 1, 0, 0}}; int[][] arr2={{1, 0, 0, 0, 1, 0, 0}, {0, 1, 1, 1, 1, 1, 0}, {0, 0, 0, 1, 0, 0, 0}, {1, 1, 0, 1, 1, 1, 1}, {1, 1, 0, 1, 0, 0, 0}, {1, 0, 0, 0, 1, 0, 0}, {1, 0, 1, 0, 1, 0, 0}}; System.out.println(T.solution(arr)); System.out.println(T.solution(arr2)); System.out.println(T.solution(arr3)); } }

  • java
  • 코딩-테스트
youngyou1324 댓글 1 좋아요 0 조회수 91

initdb오류

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 그냥 상품등록 버튼 눌러서 상품을 추가할때는 정상적으로 재고수량이 나오는데 initdb로 만들어지는 샘플데이터의 재고수량(stockquantiy)의 데이터가 변경됩니다 ex(100->2) 로그를 보면 item을 insert후에 자동으로 update -> 데이터가 변경.. 이유를 모르겠습니다. 프로젝트 첨부합니다 ㅜㅜ https://drive.google.com/file/d/1p_rlIECRXz4hLxr-aB3EpVSYM-jw2TIc/view?usp=sharing

  • java
  • spring
  • spring-boot
  • jpa
deoksam 댓글 2 좋아요 0 조회수 188

회원 목록 조회시 Whitelabel Error 질문

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 회원 목록 클릭시 Whitelabel Error가 나오는데 정확한 이유를 모르겠습니다.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
쌍식 댓글 2 좋아요 0 조회수 191

어플리케이션 실행 오류(@GeneratedValue 어노테이션 관련)

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

안녕하세요. 강의대로 실시간으로 따라 치면서 어플리케이션을 실행시켰는데 다음과 같은 오류가 발생했습니다. 그래서 코드를 아래와 같이 수정했는데 실행이 잘 되었습니다. 어떤 이유에서 안된 것인지.. 영한님께서는 왜 성공하셨는지 궁금합니다. @GeneratedValue(strategy = GenerationType.IDENTITY)

  • java
  • jpa
nick 댓글 2 좋아요 0 조회수 184

gradle build 에러 발생 제발 도와주세요 ㅠㅠ

미해결

실전! Querydsl

=========================저의 build.gradle 설정 =========================== plugins { id 'java' id 'org.springframework.boot' version '3.4.1' id 'io.spring.dependency-management' version '1.1.7' } group = 'study' version = '0.0.1-SNAPSHOT' java { toolchain { languageVersion = JavaLanguageVersion.of(23) } } configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' //test 롬복 사용 testCompileOnly 'org.projectlombok:lombok' testAnnotationProcessor 'org.projectlombok:lombok' //Querydsl 추가 implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta' annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta" annotationProcessor "jakarta.annotation:jakarta.annotation-api" annotationProcessor "jakarta.persistence:jakarta.persistence-api" } tasks.named('test') { useJUnitPlatform() } clean { delete file('src/main/generated') } =============================Hello Entity============================== package study.querydsl.entity; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.Id; import lombok.Getter; import lombok.Setter; @Entity @Getter @Setter public class Hello { @Id @GeneratedValue private Long id; } Tasks -> build -> clean 정상적으로 작동합니다. Tasks -> build -> build 실행시 에러가 발생합니다. ==========================에러 코드=================================== 오후 11:58:17: Executing 'build --scan'... > Task :compileJava > Task :processResources > Task :classes > Task :resolveMainClassName > Task :bootJar > Task :jar > Task :assemble > Task :compileTestJava > Task :processTestResources NO-SOURCE > Task :testClasses > Task :test FAILED 7 actionable tasks: 7 executed FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':test'. > There were failing tests. See the report at: file:///C:/Users/USER/OneDrive/%EB%B0%94%ED%83%95%20%ED%99%94%EB%A9%B4/querydsl/querydsl/build/reports/tests/test/index.html BUILD FAILED in 16s Publishing a build scan to scans.gradle.com requires accepting the Gradle Terms of Use defined at https://gradle.com/help/legal-terms-of-use. Do you accept these terms? [yes, no] The build scan was not published due to a configuration problem. The Gradle Terms of Use have not been agreed to. For more information, please see https://gradle.com/help/gradle-plugin-terms-of-use. Alternatively, if you are using Develocity, specify the server location. For more information, please see https://gradle.com/help/gradle-plugin-config. 오전 12:01:06: Execution finished 'build --scan'. 해당 작업 파일 구글 드라이브 입니다. Onedrive 모드가 문제일수 있다해서 연결은 해제했습니다. https://drive.google.com/file/d/16tFQifUb64ZzBfhJkSc7RUHfLuFiJTjm/view?usp=drive_link 경로가 문제인가 싶어서 onedrive가 없는 C:\springtest 이렇게 파일 생성후 똑같이 해봤는데 clear 이상없고 build 실행하는데 에러코드는 안뜨지만 계속 Run 상태가 되어서 멈추니까 코드가 아래처럼 뜨네요..ㅠㅠ 오전 12:47:10: Executing 'build --scan'... > Task :compileJava > Task :processResources > Task :classes > Task :resolveMainClassName > Task :bootJar > Task :jar > Task :assemble > Task :compileTestJava > Task :processTestResources NO-SOURCE > Task :testClasses OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended 2025-01-14T00:47:41.902+09:00 INFO 16840 --- [querydsl] [ionShutdownHook] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default' 2025-01-14T00:47:41.925+09:00 INFO 16840 --- [querydsl] [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated... 2025-01-14T00:47:41.929+09:00 INFO 16840 --- [querydsl] [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed. > Task :test > Task :check > Task :build BUILD SUCCESSFUL in 31s 7 actionable tasks: 7 executed Publishing a build scan to scans.gradle.com requires accepting the Gradle Terms of Use defined at https://gradle.com/help/legal-terms-of-use. Do you accept these terms? [yes, no] The build scan was not published due to a configuration problem. The Gradle Terms of Use have not been agreed to. For more information, please see https://gradle.com/help/gradle-plugin-terms-of-use. Alternatively, if you are using Develocity, specify the server location. For more information, please see https://gradle.com/help/gradle-plugin-config. 오전 12:47:48: Execution finished 'build --scan'. 제발 도와주세요 ㅠㅠ 너무 힘듭니다...

  • java
  • jpa
태욱 댓글 1 좋아요 0 조회수 498

인기 태그

인프런 TOP Writers

주간 인기글