묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
junit import 불가
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.build.gradle 설정은 이러합니다.에러는 이러합니다. 어떻게 junit를 잡나요? 따로 설정이 있나요?
-
해결됨넓고 얕게 외워서 컴공 전공자 되기
컴퓨터가 사진을 다루는 법에 대해 질문입니다.
안녕하세요.강의 잘 듣고 있습니다!컴퓨터가 사진을 다루는 방법을 공부하다가 의문점이 생겨서 질문 드립니다.흔히, 사진을 bitmap으로 표현하고 실제로는 더 효율적으로 저장하기 위해 파일을 압축한다고 이해했는데요.그럼 jpg파일도 비슷한 원리로 사진을 압축해 저장해 놓는다고 봐도 될까요?
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
generate에서 getter setter가 보이지 않습니다!ㅠㅠ
안녕하세요 나도코딩님! 유투브 강의를 완강하고 인프런에서 추가 강의 듣고 있습니다... getter setter를 간단하게 하기 위해서 alt + insert를 하려고 하는데요... generate에서 getter setter가 보이지 않습니다..ㅠㅠ lombok 플러그인을 설치하고 enable도 했는데 안되네요 ㅠㅠ 방법이 없을까요??
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
2.20 강의 Vercle 에 벡엔드 배포 후 미출력
안녕하세요.강좌 잘 보고 있습니다. 다름이 아니라 vercel 에 onebite-books-server 를 배포하였습니다. 로컬에서는 작동을 확인하였습니다. 첫 화면은 잘 나오는데 /api 폴더로 접근시 화면에 swagger 가출력이 안되고 있네요. ㅠㅠ; vercel 로그는 정상 배포 되었구요.첫화면은 잘 나옵니다. 혹시 환경변수를 셋팅해야 하는가 해서 검토해 보았지만 필요없으시다고 하셔서 그냥 두었습니다. 에러 메시지는콘솔창에Failed to load resource: the server responded with a status of 404 ()이런 메시지가 여러개 출력 중입니다. 확인좀 부탁드립니다. 감사합니다.
-
해결됨기초부터 배우는 Next YTMusic 클론 코딩 (with next.js 14, UI 마스터)
카테고리 변경 시 이미지 로딩
카테고리 관련 강의를 수강 중입니다. 카테고리 변경 시 백그라운드 변경되는 부분이 있는데요해당 부분이 이미지 로딩(변경?)이 매우 늦게 되더라구요해당 부분 개선해보려면 어떤 것을 시도해보면 좋을까요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
무한스크롤(React Infinite Scroller)의 pageStart
16-02-infinite-scroller 강의 중에 이해가 가지 않는 코드가 한줄 있어서 질문드립니다! InfiniteScroll에 pageStart 옵션이 걸려있는데, 이게 어디에 영향을 주는건가요? 초기 페이지 번호라기에는 이 옵션을 999999 처럼 의미 없는 값을 줘도 문제 없이 작동하고 그러네요..딱히 의미가 없는 코드 같은데 pageStart라는게 어떤식으로 작동되는건지가 좀 궁금합니다..
-
해결됨개발 입문을 위한 실무자가 알려주는 Spring Boot
안녕하세요 추가구현사항에 대해 질문이있습니다.
강의 잘 들었습니다!추가로 질문이 있어서 글 남기겠습니다 ~강의를 듣는 목적은 프로젝트에서 회원가입 시 이메일 인증 및 id/password 찾기에 대한 인증번호 전송이었습니다. 사용자의 이메일로 인증번호(ex 6자리 007007) 를 보내 그 사용자가 사이트에 입력 후 번호가 맞으면 이메일인증 , password 찾기 서비스를 이용할수 있게끔 하고싶습니다. 검증유효시간 그런거는 다 제쳐두고 위의 인증 기능만 단순히 구현해보고싶은데요 1. 인증번호 6자리를 어떻게 서버에 보관할수 있을까요?2. 보관 후 그것이 특정 사용자에게 맞는 인증번호인지 확인할까요?? 제가 지금 생각해본 방식입니다. temp_user 테이블 생성하고 pk(email), column(verify_code) 컬럼을 만든다사용자가 이메일 인증요청을 하면 temp_user 테이블에 email,verify_code보관 및 verify_code 전송사용자가 인증번호 확인하려고 입력을 하면 email값에 맞는 verity_code인지 temp_user table에서 꺼내와서 확인 인증번호 검증 후 회원가입 완료 로직 -> temp_user 삭제 후 입력 정보 user 테이블에 저장하는 방법입니다 . 긴 글 읽어주셔서 감사합니다. 생각의 방향이 맞는지 아니면 더 좋은 방법이 있는지 알려주시면 감사하겠습니다 !!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
프로젝트 환경설정 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의 보면서 프로젝트 환경 설정하고 있는데 사진처럼 오류가 뜹니다. 도와주세요 ㅠㅠ
-
해결됨실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
urls.py에 라우팅 하는 부분에서요.
config/urls.py가 있고, 앱을 만든다면 apps/urls.py가 꼭 필요한가요? config/urls.py 안에 다 넣을 수 있지 않을까요?
-
해결됨오브젝트 - 기초편
왜 선배개발자님들은 절차지향이였을까?
궁금한게 있습니다. 생각보다 많은 선배개발자님들은 강의에서 말하는 절차지향프로그래밍을 하고 있습니다. 심지어 우리나라에 네카라쿠배라고 하는 회사에서도 비슷한 장면이 자주 목격되는데요. 그분들이 잘못되었다고 생각하지는 않지만, 어떻게 그렇게 코딩을 하게 된건지 그 뒷배경이 궁금합니다..! 저는 개발한지 이제 7년밖에 되지 않아, 더 과거에 대한 이야기를 알지 못합니다. 조영호님께서는 오랜시간 연구하면서 왜 그렇게 된 것인지 알고 계시지 않을까 싶어 여쭤봐요!
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
error lens -오류문구 영어로 뜸
vscode에 korean pack과 error lens를 설치하였는데 오류문구가 영어로 뜹니다ㅜㅜ 한글로 바꿀 수 있는 방법이 있을까요?
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
구조체 질문
질문은 동영상 강의에 들어가서 오른쪽에 커뮤니티 버튼을 통해 해주세요. 그래야어떤 강좌에서 질문하셨는지 알 수 있습니다.영상에서 몇 분 몇 초 대를 알려주셔야 제가 한 번에 질문 내용 확인이 가능합니다.이미 다른 누군가가 질문을 한 이력이 있을 수 있습니다. 질문 게시판을 한 번 확인 부탁드립니다.학교의 과제나 타 강사의 코드 등 외부 수업 자료에 대해서는 답변하지 않습니다.제가 다루는 커리큘럼 외의 이론이나, 너무 디테일한 컴퓨터 이론에 대해서는 답변 드리지 않습니다.시험에 안 나오는 경우가 많고, 나와 봤자 1문제 나오는데 외워야 할 부분이 많은 것 등 (예시: 서브넷 마스크 계산)질문을 올릴 때 이 글은 모두 지우고 내용을 입력해주세요.
-
미해결
MongoDB TypeError: Cannot read properties of undefined (reading 'User')
export const User = mongoose.models.User || mongoose.model("User", userSchema) import mongoose from "mongoose"; interface Connection { isConnected?: boolean; // 선택적으로 isConnected 필드 } const connection: Connection = { isConnected: false, // 기본값 false로 설정 }; export const connectToDB = async (): Promise<void> => { try { if (connection.isConnected) return; // 이미 연결된 경우 const db = await mongoose.connect(process.env.MONGODB_URI as string); connection.isConnected = db.connections[0].readyState === 1; console.log("Connected to MongoDB:",db.connections[0].readyState ); } catch (error) { console.error("Error connecting to MongoDB:", error); throw new Error("Failed to connect to MongoDB"); } }; 맨 위는 models에 스키마 정의 해놓은 부분을 가져온거구요밑에는 DB에 연결하는 connectToDB입니다.import {redirect} from "next/navigation"; import {auth} from "@/server/auth"; import {getRoleStatus} from "@/server/actions/get-role-status"; import {User} from "@/lib/models"; import AnalyticsCard from "../../components/dashboard/analytics-card"; import TeamList from "../../components/teams/team-list"; import {z} from "zod"; import {TeamSchema} from "@/types/team-schema"; import {connectToDB} from "@/lib/utils"; export type Team = z.infer<typeof TeamSchema>; export default async function Page() { connectToDB() const team = await User.find(); const plainTeam = team.map((member) => { const memberObj = member.toObject(); // Convert to plain object return { _id: memberObj._id.toString(), // Convert ObjectId to string name: memberObj.name, username: memberObj.username, email: memberObj.email, createdAt: memberObj.createdAt ? memberObj.createdAt.toISOString() : null, // Convert Date to ISO string updatedAt: memberObj.updatedAt ? memberObj.updatedAt.toISOString() : null, // Convert Date to ISO string isAdmin: memberObj.isAdmin !== undefined ? memberObj.isAdmin : false, // Provide default isApproved: memberObj.isApproved !== undefined ? memberObj.isApproved : false, // Provide default isPending: memberObj.isPending !== undefined ? memberObj.isPending : false, // Provide default location: memberObj.location || "N/A", // Provide default // Add other fields as necessary }; }); console.log("Plain Team Data:", plainTeam); const session = await auth(); const role = await getRoleStatus(); if (!session) { redirect("/"); } return ( <AnalyticsCard title="Team" subTitle="Approved Member and Pending Member"> <div className="p-6"> <TeamList data={plainTeam} role={role!} /> </div> </AnalyticsCard> ); } 이건 team페이지인데 여기가 로드가 안되네요 값들은 다 잘불러와지는데..모델도 다 잘불러와지는 상태입니다.챗지피티가 하라는것도 다 했는데도 안되네요 도와주세요 이건 models.tsx입니다import mongoose from "mongoose"; const userSchema = new mongoose.Schema( { name: {type: String, required: true, unique: true}, username: {type: String}, hashedPassword: {type: String}, email: {type: String, required: true, unique: true}, image: {type: String}, orders: {type: Number}, revenue: {type: Number}, isAdmin: {type: Boolean, default: false}, // Ensure this field exists isApproved: {type: Boolean, default: false}, // Ensure this field exists isPending: {type: Boolean, default: false}, // Ensure this field exists location: {type: String}, // Ensure this field exists }, {timestamps: true} ); const productSchema = new mongoose.Schema({ isAdmin: { type: Boolean, }, name: { type: String, }, image: { type: String, }, isApproved: { type: Boolean, }, email: { type: String, }, id: { type: String, }, }); export const User = mongoose.models.User || mongoose.model("User", userSchema); console.log("User model:", userSchema); export const Product = mongoose.models.Product || mongoose.model("Product", productSchema); 이건 teams-actions 파일입니다."use client"; import {revalidatePath} from "next/cache"; import {sendApprovalEmail, sendDeclineEmail} from "./email"; import {actionClient} from "@/lib/safe-action"; import {TeamSchema} from "@/types/team-schema"; import {User} from "@/lib/models"; import {connectToDB} from "@/lib/utils"; export const approveTeamMember = actionClient .schema(TeamSchema) .action(async ({parsedInput: {email, name}}) => { try { await connectToDB(); await User.findOneAndUpdate({email: email}, {set 필요 없음 await revalidatePath("/", "layout"); // 비동기 함수, await 필요 await sendDeclineEmail(name!, email); } catch (error) { console.error("Error declining team member:", error); throw error; } }); export const updateTeamMember = actionClient .schema(TeamSchema) .action(async ({parsedInput: {email, isAdmin}}) => { try { await connectToDB(); await User.updateMany({email: email}, {$set: {isAdmin: isAdmin}}); await revalidatePath("/", "layout"); // 비동기 함수, await 필요 } catch (error) { console.error("Error updating team member:", error); throw error; } }); export const deleteTeamMember = actionClient .schema(TeamSchema) .action(async ({parsedInput: {email}}) => { try { await connectToDB(); await User.findOneAndDelete({email: email}); await revalidatePath("/", "layout"); // 비동기 함수, await 필요 } catch (error) { console.error("Error deleting team member:", error); throw error; } }); 혹시나 문제가 있을것같은 부분있으면 답변 부탁드립니다!
-
미해결내 마음대로 되지 않는 백엔드 테스트코드 - 희망편 & 현실편
테스트 데이터 관련 질문입니다.
게시글과 게시글 카테고리가 존재해야만 댓글을 작성할 수 있는 구조에서, 다음과 같은 시나리오를 테스트하고자 합니다.사용자가 댓글을 10개 작성하면 뱃지가 발급되는 시나리오를 테스트하려고 합니다.댓글을 작성하려면 게시글과 게시글 카테고리가 먼저 저장되어 있어야 하며, 댓글에는 post_id가, 게시글에는 post_category_id가 각각 존재합니다.이 상황에서 다음 질문이 있습니다: 댓글에 있는 post_id와 게시글에 있는 post_category_id를 nullable 하게 설정해도 괜찮을까요?
-
미해결
v1/index.html이란 파일이 어디에 있나요? 화면UI에 관한 파일을 어디서 제공받았나요?
http://localhost:5000/v1/index.html위처럼 입력하려면 v1이라는 폴더에 index.html이라는 파일이 있어야 하지 않나요?그게 제 파일에는 없는데, 어떻게 해야하나요?아까주신 답변을 읽어보았습니다.UI 화면 관련스프링 부트 서버에 미리 만들어진 UI 화면을 추가할 때, 일반적으로 정적 리소스(HTML, CSS, JS 등)를 src/main/resources/static 폴더에 넣으면 됩니다. 브라우저에서 http://localhost:5000/index.html과 같이 접근할 수 있습니다.static이란 폴더도 없고, 제공받은 HTML, CSS, JS등의 파일도 없습니다. 어디에 그 파일이 있나요?질문이 자꾸 지워져요!
-
미해결
v1/index.html이란 파일이 어디에 있나요?
http://localhost:5000/v1/index.html위처럼 입력하려면 v1이라는 폴더에 index.html이라는 파일이 있어야 하지 않나요?그게 제 파일에는 없는데, 어떻게 해야하나요?아까주신 답변을 읽어보았습니다.UI 화면 관련스프링 부트 서버에 미리 만들어진 UI 화면을 추가할 때, 일반적으로 정적 리소스(HTML, CSS, JS 등)를 src/main/resources/static 폴더에 넣으면 됩니다. 브라우저에서 http://localhost:5000/index.html과 같이 접근할 수 있습니다.static이란 폴더도 없고, 제공받은 HTML, CSS, JS등의 파일도 없습니다. 어디에 그 파일이 있나요?질문이 자꾸 지워져요!
-
미해결
v1/index.html이란 파일이 어디에 있나요?
http://localhost:5000/v1/index.html위처럼 입력하려면 v1이라는 폴더에 index.html이라는 파일이 있어야 하지 않나요?그게 제 파일에는 없는데, 어떻게 해야하나요?아까주신 답변을 읽어보았습니다.UI 화면 관련스프링 부트 서버에 미리 만들어진 UI 화면을 추가할 때, 일반적으로 정적 리소스(HTML, CSS, JS 등)를 src/main/resources/static 폴더에 넣으면 됩니다. 브라우저에서 http://localhost:5000/index.html과 같이 접근할 수 있습니다.static이란 폴더도 없고, 제공받은 HTML, CSS, JS등의 파일도 없습니다. 어디에 그 파일이 있나요?
-
해결됨초보자를 위한 Dart Practice
console Application 예제에서 한글 입력하면 깨지는데..
안녕하세요?아래 코드에서 입력을 한글로 하면 깨지는데 뭔가 설정을 따로 해줘야 하나요?import 'dart:io'; void main(List<String> arguments) { stdout.write("입력해보세요 :"); var inputString = stdin.readLineSync(); stdout.write('입력된 값: $inputString'); }
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
ASCII코드 질문
11:57 쯤 나와있는 예제 에서char lower = ‘a' 는a라는 문자를 문자형태로 lower에 입력한다 로 이해했습니다.char upper = (char)(lower -32) 는lower-32의 문자값을 upper에 입력한다. 로 이해했습니다. lower-32에서 왜 lower은 숫자 97로 대입해서 괄호를 풀어야 하나요? 위에서 a로 입력된 게 아닌가요?(char) 과 같이 괄호를 써주는 이유가 뭔가요? char upper와 같이 띄어쓰기로 구분을 안해주는 건가요? 17:25 예제 관련하여printf("%s\n“, p+1) 질문입니다.문장을 출력할땐 널값을 만날때까지 출력이므로 KOREA 로 나오는건 이해가 갑니다.p+1의 경우 어떻게해석해야하나요. ? 문장의 시작점을 한칸뒤로가서 잡고 출력하라..로 이해해야하나요? 아직 선언, 변수 등 표현이 익숙치않아 질문에서 사용한 표현이 강사님께서 사용한 표현과 다를 수 있습니다...양해 부탁드립니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-Q 질문있습니다 :)
안녕하세요 선생님 🙂 어려운 문제는 아니었던거 같지만 모르겠는 부분이 생겨서 질문 드립니다. visual studio에서는 배열의 범위가 초과되었다는 에러가 계속 뜹니다. 선생님 코드와 다른 점이 없는지 여러 번 검증해보았지만 차이가 없어서 백준에 제출해봤는데요, 맞았다고 하더라구요.. arr의 크기를 18이 아닌 20으로 잡아도 동일한 에러가 잡힙니다. 컴파일러에서 왜 에러가 뜨는건지 모르겠습니다.. http://boj.kr/f91936720fc54768adb00def9dc32b35 메모이제이션 범위가 이해되지 않아 다른 숫자들로 넣어봤는데요, 0.0까지는 문제가 없더라구요. 메모이제이션 범위를 -0.5로 두신 이유가 궁금합니다.