묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Next + React Query로 SNS 서비스 만들기
dynamic page에서의 API 호출, 코드상 질문 드립니다.
export default function Page({ params }: { params: { postId: number } }){ } 다음과 같이 app/(Logined)/home/Post/[postId]/page.tsx 에서 params를 불러왔을 때,prisma와 REST API를 이용하여 데이터를 요청하고 가져오는 것을 할 때,1.page가 params.postId를 이용하여 NextRequest를 요청하면2. route.ts가 해당 Request를 받고 prisma를 통해 쿼리를 한 뒤,3. NextResponse로 page에 답장하는 형식을 구현하고자 합니다. 근데 해당 구현에 대해서, 공식 문서에서 제가 해당 내용을 잘 응용하지 못하는 것인지,GET http://localhost:3000/api/post/4 500 (Internal Server Error)에러만 발생하고 'post'를 불러오지 못하고 있습니다. 이에 눈에 띄는 코드 오류는 없는지 핵심 부분이 빠진 것은 없는지 질문 드립니다.// app/(Logined)/home/Post/[postId]/page.tsx "use client"; import React, { useEffect, useState } from "react"; import { PostType } from "@/app/(Logined)/_components/TYPE_post"; export default function Page({ params }: { params: { postId: number } }) { const [post, setPost] = useState<PostType | null>(null); const postid = params.postId; useEffect(() => { const fetchPostData = async () => { try { const response = await fetch(`/api/post/${postid}`); if (response.ok) { const postData: PostType = await response.json(); setPost(postData); } else { console.error("Error fetching post"); } } catch (error) { console.error("Error:", error); } }; if (params.postId) { fetchPostData(); } }, [params.postId]); if (!post) { return <div>Loading...</div>; } return ( <div> <h1>Post Details</h1> <p>Description: {post.description}</p> <p>Event Date: {post.eventDate.toString()}</p> <p>Deadline: {post.deadline.toString()}</p> </div> ); } // pages/api/post/[postId]/route.ts import prisma from "@/app/lib/prisma"; import { NextResponse, NextRequest } from "next/server"; export async function GET(req: NextRequest) { const postId = parseInt(req.nextUrl.searchParams.get("postId") || "0"); if (!postId) { return new NextResponse(JSON.stringify({ message: "Invalid post ID" }), { status: 400, }); } try { const post = await prisma.post.findUnique({ where: { id: postId }, select: { description: true, eventDate: true, deadline: true, }, }); if (post) { return new NextResponse(JSON.stringify(post)); } else { return new NextResponse(JSON.stringify({ message: "Post not found" }), { status: 404, }); } } catch (error) { console.error("Error fetching post:", error); return new NextResponse( JSON.stringify({ message: "Error fetching post" }), { status: 500 } ); } }
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
html input 태그에 readonly 속성 넣었을 때 배경이 회색으로 바뀌는 이유가 무엇인가요?
안녕하세요.섹션7 웹 페이지 만들기 강의 보면서 따라하던 중이었는데, 제 거랑 강의 영상이랑 모양이 다른 부분을 발견했습니다.강의 영상 캡쳐입니다.상품 상세 페이지이고, readonly 속성이 적용되어 있어 input의 배경색이 회색으로 되어있습니다.해당 부분에 사용된 html 코드입니다.<div class="py-5 text-center"> <h2>상품 상세</h2> </div> <div> <label for="itemId">상품 ID</label> <input type="text" id="itemId" name="itemId" class="form-control" value="1" th:value="${item.id}" readonly> </div> <div> <label for="itemName">상품명</label> <input type="text" id="itemName" name="itemName" class="form-control" value="상품A" th:value="${item.itemName}" readonly> </div> <div> <label for="price">가격</label> <input type="text" id="price" name="price" class="form-control" value="10000" th:value="${item.price}" readonly> </div> <div> <label for="quantity">수량</label> <input type="text" id="quantity" name="quantity" class="form-control" value="10" th:value="${item.quantity}" readonly> </div>input 태그 안에 readonly 포함되어 있습니다. 이건 제 pc에서 같은 코드로 실행한 화면입니다.readonly 적용되어 있어서 수정이 불가능하지만, 배경색은 회색이 아니라 흰색입니다. 브라우저 문제인가 싶어서 크롬, 엣지, 파이어폭스로 시도해봤지만 전부 같은 화면이 나옵니다.버전 문제인가 싶기도 한데, 검색해도 관련 내용이 변경되었다는 글을 찾지 못했습니다.input[readonly] { background-color: gray; }이렇게 css를 적용하면 된다는 글은 찾았습니다만, 강의에선 이런 코드를 사용한 적이 없습니다.css와 관련된 내용은 부트스트랩 뿐인데, 그렇다면 부트스트랩이 배경색을 변경하는 건가 싶어서 제거해보았지만 배경색은 마찬가지로 흰색입니다.강의 코드와 별개로 그냥 임의의 html 파일을 만들고, input 태그를 생성해서 테스트해봤지만 결과는 같았습니다. css없이 강의화면처럼 배경색을 회색으로 바꾸려면 readonly 대신 disabled를 사용해야 하더군요. 이게 강의 내용상 중요한 부분은 아니지만, 원인이 궁금해서 질문 남깁니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
pdf 파일 교재 오타 있습니다
스프링 MVC 21. 타임리프 - 기본 기능.pdf 텍스트 - text, utext 의 /resources/templates/basic/text-unescape.html (unescape -> unescaped) d 가 빠져 있습니다 !!
-
미해결퀘이사(Quasar) 완벽 마스터: Vue 프론트 웹을 빠르게 만들고 싶다면! (Based Vue3)
q-input 컴포넌트 질문
q-input태그에서 약간의 굴곡을 적용하고싶은데 style을 따로 정의하여도 적용되지 않던데 다른 방법이 있을까요? <template> <q-page> <q-input label="Your Label" outlined class="rounded-input" /> </q-page> </template> <style scoped> .rounded-input { border-radius: 10px; } </style>
-
해결됨우아한 고성능 프로그래밍 언어 Rust 입문 및 활용
build 오류
cargo add ... 이후 build는 정상적으로 되는데, cargo lambda build --release --arm64 에서 많은 라인의 error와 함께 컴파일하지 못하네요... 구글링해봐도 잘 모르겠어요 error 마지막 몇라인을 첨부합니다...... error[E0425]: cannot find function drop in this scope --> /.cargo/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.19.0/src/race.rs:401:21 |401 | drop(unsafe { Box::from_raw(ptr) }); | ^^^^ not found in this scopeerror[E0425]: cannot find function, tuple struct or tuple variant Ok in this scope --> /.cargo/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.19.0/src/race.rs:405:13 |405 | Ok(unsafe { &*ptr }) | ^^ not found in this scopeSome errors have detailed explanations: E0405, E0408, E0412, E0425, E0432, E0463, E0531.error: could not compile once_cell (lib) due to 241 previous errors
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-C 범위 관련해서 궁금한 것이 있습니다.
결국 이 문제에서 구하는 것은 " 잠기지 않은 구역의 수"이기 때문에, 입력을 받으면서 입력받은 지역 중 최대 높이를 구해서 100까지 for을 돌리지 않고 최대 높이 까지만 for을 돌려도 되지 않나요? 100까지 돌리신 이유가 궁금합니다!!제가 작성한 코드 첨부 드립니다!#include <bits/stdc++.h> using namespace std; const int n_max = 101; int dy[4] = {-1, 0, 1, 0}; int dx[4] = {0, 1, 0, -1}; int m,a[n_max][n_max],visited[n_max][n_max]; int ret = 1; // #2648: 안전 영역 // 메모 : DFS 깊이 우선선 탐색 -> component 찾기기 void dfs(int y, int x, int d) { visited[y][x] = 1; for(int i = 0; i < 4; i++) { int ny,nx; ny = y + dy[i]; nx = x + dx[i]; if(ny >= m || ny < 0 || nx >= m || ny < 0) continue; if(a[ny][nx] > d && !visited[ny][nx]) { dfs(ny, nx,d); } } } int main() { int maxHigh = 0; //비가 오지 않을 경우도 고려려 cin.tie(NULL); cout.tie(NULL); vector<int> results; //Input //1. 배열의 크기 cin >> m; //2. 2차원 배열 입력 받기 for(int i = 0; i < m ; i++) { for(int j = 0; j < m ; j++) { cin >> a[i][j]; maxHigh = a[i][j] > maxHigh ? a[i][j] : maxHigh; } } // 최대 높이 많큼 비가 왔을 때 부터 기준치를 낮춰가며 안전구역개수의 최대 지점을 구함 for(int d = 1; d <= maxHigh; d++) { //배열 초기화 fill(&visited[0][0], &visited[0][0] + n_max * n_max , 0); int cnt = 0; for(int i = 0; i < m; i++){ for(int j = 0; j < m; j++){ if(a[i][j] > d && visited[i][j] == 0) { cnt++; dfs(i,j,d); } } } //안전영역 최대 개수 갱신 ret = max(ret,cnt); } // 디버깅 /*for(int i = 0; i < m; i++){ for(int j = 0; j < m; j++){ cout << a[i][j] << ' '; } cout << '\n'; } */ cout << ret << '\n'; return 0; }
-
미해결Next + React Query로 SNS 서비스 만들기
게시글 업로드하실 때 unshift와 infinite scroll 관련해서 질문 있습니다.
선생님께서 무한 스크롤 설명해주실 때의 예시처럼 현재 게시물이 [[1,2,3,4,5], [6,7,8,9,10], [11,12,13,14,15]] 이렇게 있다고 쳤을 때, unshift를 통해 게시물을 넣게 된다면 [[16, 1, 2, 3, 4,5], [6, 7, 8, 9, 10], [11,12,13,14,15]] 이렇게 된다면 2차원 배열의 첫 번째 배열의 원소가 6개가 되는데, 이렇게 되면 마지막 배열개수가 6개보다 적어 스크롤을 내려도 게시물을 안가져오는 상황은 이뤄지지 않는 건가요?
-
미해결[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]
Alter 질문이 있습니다
만약 스키마 생성 후 데이터 적재까지 완료했다고 가정할 때,Alter 구문으로 테이블 스키마 수정 혹은 컬럼 추가를 하게되면 기존에 적재된 데이터는 없어지나요?아니면 그대로 유지되나요? 적재 후 나중에라도 컬럼 추가하거나 PK 추가하고 싶을 때 어떻게 해결하는지 궁금합니다.아예 DROP 하고 처음부터 스키마 생성해서 적재하나요? 좋은 강의 감사합니다.
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
Part2 에 대해서 궁금합니다.
Part 1 에서 웬만한 건 다 배우는 것 같은데 Part 2 는 어떤 내용이고 언제쯤 공개되나요?
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
13강 직렬화에서 질문있습니다.
13:34쯤 파일경로와 관련해서 출력을 할 때 제가 동일하게 작성을 했습니다. MakeStandardFileName이후 출력값과 이전 출력값이 동일해서 궁금증이 생겼습니다. 혹시 D드라이브에 저장했는데 이것과 연관이 있는지 궁금합니다!
-
미해결[리뉴얼] 처음하는 파이썬 데이터 분석 (쉽게! 전처리, pandas, 시각화 전과정 익히기) [데이터분석/과학 Part1]
[]과 [[]]의 차이
저번에도 비슷한 질문 올렸었는데 https://www.inflearn.com/questions/1128659/%EC%B5%9C%EC%A2%85-%EC%A0%84%EC%B2%98%EB%A6%AC-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A1%9C-%EA%B7%B8%EB%9E%98%ED%94%84-%EB%A7%8C%EB%93%A4%EA%B8%B01-3-30이전에 들었던게 뭐였는지 기억이 안납니다. [[]]이 개념이 부족해서 이전강좌를 다시 들으려하는데 무슨강좌였는지 못찾겠네요, 그러니까 A[] 만 쓸때가 있고, A[[]], A[A[]] 를 쓸때가 있는데,이 거 구분하는게 너무 어려워요..payments=payments[payments['payment_type']!='not_defined' jmerged_order_date= merged_order[['order_purchase_timestamp','payment_value']].copy() merged_order_month_sum[merged_order_month_sum['payment_value'] == merged_order_month_sum['payment_value'].max()] i
-
미해결무작정 따라하기! TPS 게임 만들기.
10:58 코드가 작동하지 않습니다.
앞서 Instantiate 함수로 좀비를 spawnPoint에 랜덤으로 생성하는 것은 가능합니다.10:58 에서 EnemySpawn 함수를 영상대로 작성하는 경우 좀비가 등장하지 않고 오류가 발생합니다.NullReferenceException: Object reference not set to an instance of an objectGameManager+<EnemySpawn>d__20.MoveNext () (at Assets/_My/Scripts/GameManager.cs:123)UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at <f7237cf7abef49bfbb552d7eb076e422>:0)UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)GameManager:Start() (at Assets/_My/Scripts/GameManager.cs:52) 다만 yield return new WaitForSeconds(2f); 아래에 코드를 작성하면 정상적으로 좀비가 랜덤 생성됩니다.그대로 사용해도 되지만 원인을 추적하고 싶은데요 ㅜㅜㅜ어느 부분을 점검하는 것이 좋을지 문의드립니다. IEnumerator EnemySpawn(){ //Instantiate(enemy, spawnPoint[Random.Range(0, spawnPoint.Length)].transform.position, Quaternion.identity); yield return new WaitForSeconds(2f); GameObject enemy = PoolManager.Instance.ActivateObj(4); SetObjPosition(enemy, spawnPoint[Random.Range(0, spawnPoint.Length)].transform); StartCoroutine(EnemySpawn());}
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
6-A
해설 중 예제에서 질투심이 3일 때가 답이 되는 것은 이해했습니다만,질투심이 4일 때 학생 수 5명을 충족시키지 못해 안 된다고 하셨는데, 문제 조건에 보석을 못 받는 학생이 있을 수도 있다고 나와 있어서 정답은 아닐지언정, 조건을 만족하는 케이스가 아닌가 싶습니다.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
.uproject 관련 질문
영상 말미에 uproject파일에서 Generate Visual Stduio File 하신 이유가 궁금합니다!검색해보니 어떤 기능인지는 알겠는데, 스크립트 파일을 삭제할 때마다 해주면 되는걸까요?
-
미해결
scikit-learn install 문제
[개정판] 파이썬 머신러닝 완벽 가이드 수업을 들으면서 scikit 1.0.2로 깔기 위해 관리자 모드 실행 뒤 아나콘드 프롬프트에 pip install scikit-learn==1.0.2를 실행시켰습니다. 계속 실행해봐도 밑에 오류가 발생하네요 ㅜㅜㅜ note: This error originates from a subprocess, and is likely not a problem with pip.error: metadata-generation-failed× Encountered error while generating package metadata.╰─> See above for output.note: This is an issue with the package mentioned above, not pip.hint: See above for details.
-
해결됨Flutter 앱 개발 기초
에뮬레이터요....
실행시키고 디버그버튼 누르면 아래처럼 되는데몇초뒤에 launching 표시는 사라지고아래처럼 남은 상태로만 있어요....즉 에뮬레이터에 화면이 안 떠요 ㅠ어디를 좀 봐야할까요?
-
미해결
인텔리제이 자바 버전 관련 질문
인텔리제이 안에서 자바 버전을 설치하거나 변경하면그 해당 프로젝트 안에서 java -version울 했을때, 버전이 변경되지는 않나요? 자바 버전을 변경해도 버전 확인을 할때, 변경이 되지는 않아서요.
-
미해결[리뉴얼] 처음하는 파이썬 데이터 분석 (쉽게! 전처리, pandas, 시각화 전과정 익히기) [데이터분석/과학 Part1]
EDA/pandas/시각화로 이커머스 거래액 상세 분석1 11:02
l1. ine 48은 실행되고line49실행될때 에러가 발생하는 이유가 뭔가요? 문법적으로 어디가 틀린거죠?line48과 49 같은 의미로 사용하려는데.payments에 order _id 있으니까 [[]]으로 다가가서 값 꺼내오는게 왜 틀렸을까요. 어떤개념이 잘못된거죠 ps line46print(payments) line48-line49
-
미해결[자동화 완전 정복] 인스타그램 휴대폰, 웹 자동화 프로그램 개발
리스트 추출만 반복
선생님 강의는 잘 듣고있습니다ㅠ제가 아직 초보여서 그런가 이해를 못한건가 싶은데 1.2이후로 추가된 완성본 코드를 실행하면 이런식으로 하루종일 팔로워 리스트만 추출을 하고 있습니다... links.txt 작성완료가 뜨고 끝나야 된다고 생각하는데 팔로워 리스트 추출만 몇시간 켜놔도 계속 추출만하다가 중간에 에러가 뜨면 멈춰버리니 진행이 안되는 상황인데 이거 카운트를 설정해서 몇개만 진행되게 하거나 안될까요? 원래 팔로워 리스트만 계속 추출하는게 맞을까요? 에러뜨고 멈추면 links.txt에 추가도 안되고 진행이 안되서요 한두시간 켜놔도 그렇습니다.글 올리고 좀 더 해보니 포스팅 링크 추출하고 그거만큼 링크를 방문해서 팔로워 리스트를 추출하는거 같은데 자꾸 포스팅 링크 갯수보다 더많은 링크를 방문해서 팔로워 리스트를 추출하려고 시도하는데 혹시 포스팅 링크를 방문하면서 추출한 팔로워 리스트도 또 방문해서 추출을 시도하나요?? 그런식으로 무한루프가 돌아가거나 갯수가 많아져서 오래걸리는거같은데 문제는 중간에 무조건 에러가 한번은 생겨서 끊겨버리는거 같아서요팔로워 리스트 추출 부분을 제거하니 정상작동하네요.. 흠
-
해결됨김영한의 실전 자바 - 기본편
접근제어자
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]접근제어자를 공부하던 도중 Speaker 클래스 예제를 통해 변수에 privet를써러 외부 호출을 막는 경우를 보았습니다. 근데생성자에서 볼륨이 100보다 크게 만들어도사진과 같이 볼륨이 200이 되었습니다.이러한 경우 생성자 클래스안에이렇게 바꿔도 되는지? 아니면 다른 방법이 있는지 궁금합니다.