묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결NestJS 코어 가이드
코드 공유
이거 전체 완성 코드 있는 git hub 링크 혹시 받을 수 있을까요?
-
미해결<제미나이 CLI 완벽 가이드> 4주 완독 챌린지 : 책 한 권을 온전히 '나만의 무기'로 만드는 시간
3강부터 화면에 강좌소개 내용만 나오고 아무런 내용도 안나오고 완료 처리가 되네요.
강좌 내용이 없어 pc에서 핸드폰으로 옮겨서 3강,4강 클릭했더니 반응은 없고 완료된 것으로 처리되네요.어떻게 시청해야 하나요?
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
[공유] DTO optional 필드가 undefined로 잡혀 TypeORM 조건이 깨지는 현상
Postman 테스트 중 데이터를 받아오지 못하는 문제가 생겨 원인을 찾아보았습니다.같은 문제를 겪는 분이 계시면 참고하세요. 이하 AI로 작성되었습니다. 현상: /posts?order__createdAt=ASC처럼 where 파라미터 없이 호출했는데, findOptions.where.id가 MoreThan(undefined)로 만들어져 repository.find() 결과가 0건으로 나옵니다. 원인: ValidationPipe({ transform: true })로 DTO가 “클래스 인스턴스”가 되고main.ts), TS target이 ES2022+(예: ES2023, tsconfig.json)이면 초기값 없는 DTO 필드도 JS에 field;로 emit되어 인스턴스에 undefined 프로퍼티가 “존재”합니다base-pagination.dto.js). 이 상태에서 Object.entries(dto)로 필터를 만들면 undefined도 같이 파싱되어 MoreThan(undefined)가 됩니다. 참고: 이 동작은 TS 3.7의 useDefineForClassFields 도입 이후(4.3에서 esnext 기본 true, 4.6에서 es2022 타겟 추가) 현대 타겟에서 흔히 발생할 수 있습니다. NestJS/class-validator 변경이라기보다 TS 타겟/클래스 필드 emit 차이입니다. 해결: 필터 조합 시 undefined/null은 스킵하도록 방어코드 추가(예: if (value === undefined || value === null) continue;) — common.service.ts. 이 케이스를 막는 옵션은필터 조합 로직에서 undefined/null을 스킵(가장 단순/안전)(파이프 레벨로 하고 싶으면) 커스텀 파이프로 undefined 키 삭제/또는 class-transformer의 instanceToPlain(dto, { exposeUnsetFields: false }) 같은 방식으로 “undefined 없는 plain”으로 만든 뒤 사용등이 있습니다.
-
해결됨한 번에 끝내는 자바스크립트: 바닐라 자바스크립트로 SPA 개발까지
compare 함수 설명에 오해의 소지가 있어보입니다.
안녕하세요. 아래 혼동을 줄수 있는 설명에 대해 문의드립니다. 아래 캡춰 설명에서 a: 다음 b: 이전 이 설명이 오해의 소지가 있어보입니다.오히려 거꾸로 설명해야 맞는거 같습니다.이 설명에서 a: 이전 b: 다음이렇게 옆 설명 멘트를 수정해야 맞는거 같습니다.
-
해결됨<제미나이 CLI 완벽 가이드> 4주 완독 챌린지 : 책 한 권을 온전히 '나만의 무기'로 만드는 시간
강의를 시청할 수가 없네요
강의 듣고자 열기 눌러 인프런앱에 들어갔는데 이 강좌는 없고 자바강의 수강중이라고 나오네요. 이상하게 연결된 것 같습니다
-
미해결NestJS 코어 가이드
prisma 버전 변경
prisma 버전이 바뀌었는지 현재 강의대로 진행하면 13:15 부터 진행하는 서버 실행이 아래 오류 메시지 던지면서 불가능해집니다. 어떤 버전으로 다운그레이드 해야하는지, 혹은 어떻게 해결하면 되는지 확인 부탁드립니다. $ nest start file:///C:/Users/jw/Documents/GitHub/nest-js-core/dist/generated/prisma/client.js:38 Object.defineProperty(exports, "__esModule", { value: true }); ^ ReferenceError: exports is not defined in ES module scope at file:///C:/Users/jw/Documents/GitHub/nest-js-core/dist/generated/prisma/client.js:38:23 at ModuleJobSync.runSync (node:internal/modules/esm/module_job:436:37) at ModuleLoader.importSyncForRequire (node:internal/modules/esm/loader:427:47) at loadESMFromCJS (node:internal/modules/cjs/loader:1561:24) at Module._compile (node:internal/modules/cjs/loader:1712:5) at Object..js (node:internal/modules/cjs/loader:1895:10) at Module.load (node:internal/modules/cjs/loader:1465:32) at Function._load (node:internal/modules/cjs/loader:1282:12) at TracingChannel.traceSync (node:diagnostics_channel:322:14) at wrapModuleLoad (node:internal/modules/cjs/loader:235:24) Node.js v22.17.0 error Command failed with exit code 1. info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
-
해결됨Svelte REST-API 프로젝트
프론트 api.js의 요청 headers 옵션의 cors 관련 설정 질문
프론트엔드 api.js의 Access-Control-Allow-Origin 혹은 Access-Control-Allow-Credencials 옵션은 프론트의 요청 헤더가 아닌 백엔드 서버에서 응답 헤더로 설정해야 하는것 아닌지 질문드립니다.추가적으로 SameSite는 쿠키에 설정하는것이 아닌지 질문드립니다.보통 강의와 같이 요청 헤더에 저렇게 설정하면 Spring 기준으로는 Filter에서 Origin이나 Credencials를 직접 꺼내서 응답 헤더에 넣어주는 형태로 하지 않는이상 CORS 에러를 방지할수 없었던것으로 기억되어서 질문드립니다.
-
해결됨<제미나이 CLI 완벽 가이드> 4주 완독 챌린지 : 책 한 권을 온전히 '나만의 무기'로 만드는 시간
도서구매인증이 되지 않아, 남겨둡니다.
-
해결됨누구보다 빠르게 배우는 Kotlin + Springboot + JWT 로그인
10번 영상이 중간부터 시작하는 것으로 보여요
영상을 시작하면 갑자기 JwtUtils 코드가 이미 어느 정도 작성된 상태에서 뭔가 에러 체크 하시는 부분부터 시작이 됩니다
-
해결됨한 번에 끝내는 자바스크립트: 바닐라 자바스크립트로 SPA 개발까지
API를 비동기 처리하는 이유가 끊겨서 그런건가요?
API를 비동기 처리하는 이유가 HTTP를 써서 그런가요?강의 내에서 사용하는 API가 REST API이고, REST API는 HTTP를 쓰나요? HTTP로 클라이언트가 서버에게 요청을 하면 응답을 할 때까지 대기해야 되서, 비동기로 하지 않으면 끊기니까 그런건가요?
-
미해결스프링부트를 이용한 웹 프로그래밍: 웹사이트 이렇게 만드는 거예요!
일정 삭제 시 예외 발생 질문과 이전 질문에 대한 추가질문드립니다.
// 컨트롤러 메서드 @DeleteMapping("/plan/{no}") public ResponseEntity<Map<String, Object>> removePlan(@PathVariable(value = "no") int no){ Map<String, Object> resultMap = plannerService.removePlan(no); return ResponseEntity.ok(resultMap); } // 서비스 메서드 @Transactional public Map<String, Object> removePlan(int no) { System.out.println("no :" + no); log.info("removePlan"); Map<String, Object> resultMap = new HashMap<>(); int result = plannerRepository.deleteByPlanNo(no); if(result > PLAN_DELETE_FAIL){ log.info("REMOVE PLAN SUCCESS"); }else{ log.info("REMOVE PLAN FAIL"); } resultMap.put("result", result); return resultMap; } // 레퍼지토리 메서드 int deleteByPlanNo(int planNo); // 삭제된 행의 개수 첫번째 질문위 코드처럼 작성을 하고 delete 버튼을 클릭하면2025-12-21 20:36:32 ERROR [[dispatcherServlet]] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.lang.ClassCastException: class com.office.calendar.planner.jpa.PlannerEntity cannot be cast to class java.lang.Integer (com.office.calendar.planner.jpa.PlannerEntity is in unnamed module of loader org.springframework.boot.devtools.restart.classloader.RestartClassLoader @34790124; java.lang.Integer is in module java.base of loader 'bootstrap')] with root causejava.lang.ClassCastException: class com.office.calendar.planner.jpa.PlannerEntity cannot be cast to class java.lang.Integer (com.office.calendar.planner.jpa.PlannerEntity is in unnamed module of loader org.springframework.boot.devtools.restart.classloader.RestartClassLoader @34790124; java.lang.Integer is in module java.base of loader 'bootstrap') at jdk.proxy4/jdk.proxy4.$Proxy153.deleteByPlanNo(Unknown Source) ~[?:?] at com.office.calendar.planner.PlannerService.removePlan(PlannerService.java:124) ~[main/:?] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:360) ~[spring-aop-6.2.11.jar:6.2.11] at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.2.11.jar:6.2.11] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.2.11.jar:6.2.11] at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:380) ~[spring-tx-6.2.11.jar:6.2.11] at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-6.2.11.jar:6.2.11] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) ~[spring-aop-6.2.11.jar:6.2.11] at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:728) ~[spring-aop-6.2.11.jar:6.2.11] at com.office.calendar.planner.PlannerService$$SpringCGLIB$$0.removePlan(<generated>) ~[main/:?] at com.office.calendar.planner.PlannerController.removePlan(PlannerController.java:123) ~[main/:?] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:258) ~[spring-web-6.2.11.jar:6.2.11] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:191) ~[spring-web-6.2.11.jar:6.2.11] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.2.11.jar:6.2.11] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:991) ~[spring-webmvc-6.2.11.jar:6.2.11] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:896) ~[spring-webmvc-6.2.11.jar:6.2.11] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.2.11.jar:6.2.11] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.2.11.jar:6.2.11] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.2.11.jar:6.2.11] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.2.11.jar:6.2.11] at org.springframework.web.servlet.FrameworkServlet.doDelete(FrameworkServlet.java:936) ~[spring-webmvc-6.2.11.jar:6.2.11] at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:596) ~[tomcat-embed-core-10.1.46.jar:6.0] at...위 예외가 발생하면서 planner_fetch.js의 fetchRemovePlan 함수에서 catch 문에 걸리면서alert('일정 삭제 중 오류가 발생했습니다.'); 이 실행됩니다.서비스에서 deleteByPlanNo를 호출할 때 문제가 발생한 것 같은데찾아보니 레퍼지토리 메서드에 @Modifying을 붙여보라고 해서 해봤는데 해결은 안됐습니다.어떤 원인으로 위 같은 예외가 발생한거고, 어떻게 해결할 수 있는지 질문드립니다. 두번째 질문 이전 질문에서<script src="planner_fetch.js"></script><script src="planner.js"></script>위 코드는 브라우저에서 다음과 같이 처리됩니다.1. planner_fetch.js를 읽고 실행2. 그 다음 planner.js를 읽고 실행3. 이 두 파일은 각각 다른 파일이지만, 브라우저에서는 하나의 JavaScript 실행 공간에서 실행결과적으로 파일이 나뉘어 있어도 "같은 공간"에서 실행되기 때문에 서로의 전역 변수, 함수 등을 공유할 수 있습니다.하나 더 중요한 사실이 있는데요, 로딩 순서가 중요합니다.<script src="planner_fetch.js"></script><script src="planner.js"></script>위와 같은 순서라면, planner_fetch.js가 먼저 실행되고 planner.js에서 planner_fetch.js 안의 함수를 사용할 수 있습니다.하지만, 로딩 순서를 변경하면<script src="planner.js"></script><script src="planner_fetch.js"></script>다음과 같은 에러가 발생할 수 있습니다.fetchPlans(); // 에러 (아직 정의되지 않음)즉, 먼저 로드 된 파일의 함수만 사용할 수 있습니다.이렇게 답변을 주셨는데추가적으로 궁금한 점은planner.js가 나중에 로드 되어서 planner.js에 있는 함수나 변수를 planner_fetch.js에서 사용하면 정의 되지 않아서 사용을 못해야 할텐데 코드에서는 planner.js에 있는 showDetailPlanView 함수라든지 current_year같은 변수를 사용하고 있는데 에러가 발생하지 않습니다. 이 부분 질문드립니다.
-
해결됨Spring Boot와 React로 배우는 초간단 REST API 게시판 만들기
7.React UI구현하기 에서 css파일을 어디서 다운받나요?
강의를 수강하면서 실습하고 있는데요.7.React UI구현하기 강의 중 css파일을 복사해서 붙여넣기 하시는데 깃자료에서 css파일 다운로드 하는 위치를 못찾겠어요. 위치를 알려주시면 감사하겠습니다.
-
미해결스프링부트를 이용한 웹 프로그래밍: 웹사이트 이렇게 만드는 거예요!
일정 등록 및 조회 부분 강의 질문입니다.
1.일정 관련 js파일이planner.js와 planner_fetch.js 파일로 나눠져 있는데planner.js에서 planner_fetch.js에 있는 함수들을 사용하고planner_fetch.js에서는 planner에 있는 함수, 변수들을 사용하던데각각 별도의 js 파일들인데 어떻게 서로 변수나 함수들을 가져다 사용할 수 있는지 궁금합니다. planner_fetch.js의 fetchGetPlan 함수에서 fetch url이 /planner/plan/3 형식이 아니라 /planner/plan?no=3 형식이던데 이렇게 사용한 이유가 있을까요??
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
where 키워드가 들어가는 메서드와 아닌 메서드
예를들어서 count는 조건을 걸때 where : {} 이런식으로 하는데 sum은 바로 {}만 하더라구요. 이런식으로 where 키워드를 쓰는 메서드와 안쓰는 메서드가 많이 나뉘던데 어떤 기준인지 알 수 있을까요? 헷갈리네요..
-
해결됨[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
BearerTokenGuard에서 db를 조회해서 유저 정보를 불러오는 이유?
BearerTokenGuard에서 db를 조회해서 유저 정보를 불러오는 이유가 궁금합니다.제가 스프링으로 개발했을 때는 role을 jwt에 담고 별도의 db 조회 없이 스프링 시큐리티에서 검증을 했어서요. 유저 엔티티가 필요하다면 서비스 레이어에서 조회를 하구요.NestJs 현업에서 쓰이는 일반적인 패턴이 궁금합니다
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
app.controller app.service 는 지워도되나요?
선생님 강의를 보다 궁금한게 있는데 src최상위 경로 main.ts는 nestjs를 실행시키기 위한 시작점이고async function bootstrap() { const app = await NestFactory.create(AppModule); //앱모듈로 부터 모듈들을 확장해나갔음 await app.listen(process.env.PORT ?? 3000); }//nestjs를 실행하는 함수 시작점 bootstrap(); 통해 app.module.ts에는 다른 (posts)모듈을 적어줘서 루트가되는 모듈 같은데posts폴더안에 posts모듈 관련 컨트롤러 서비스(프로바이더 할 거) 이렇게 순서대로 nest가 처리해 주는 건 알 것 같은데 -app.module.ts에서 각 모듈을 연결해주고 서비스나 기능 만들려면 모듈별로 폴더 관리해서 만드는거구나? 이렇게 이해하고있는데 그러면 app.service.ts,app.controller는 지워도되는거 아닌가 생각이 들어서요. -깃허브 레포지토리에 강의 코드 올려주신 거 봤는데 따로 초반 부분이랑 다른 코드가 추가된 건 아닌 것 같고 동일해서요따로 안지우시고 그대로 두신 이유가 있을까요?(기다리면..뒤에 알려주실것 같지만 궁금함을 못참고 여쭤봅니다)(약간 두서 없이 여쭤보는것 같아 죄송합니다.생각보다 쉽지않네요ㅎㅎ)
-
해결됨실전! Django 입문 [최신 5.2 버전]
DOCKER 설치 관련 질문입니다
안녕하세요 선생님! 제 맥북 사양인데요, 도커에서 지원하는 버전이 맞지 않아서 설치 자체가 안되서 이렇게 질문 남깁니다..! 물론 다운로드도 mac intel 버전으로 했는데 지원하는 버전이 아니더군요 ㅠㅠ.. 혹시 제가 놓친 부분이 있는건지 혹은 다른 방법이나 툴이 있을까요? 감사합니다
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
@JoinColumn을 쓰는 경우와 안쓰는 경우의 차이
@JoinColumn을 명시하는 경우가 있고 그렇지 않은 경우가 있는데 무슨 차이인가요?단순히 아래처럼 컬럼 명을 명시해주기 위해서 @JoinColumn이 사용되는 걸까요?@JoinColumn({ name: 'author_id' })
-
미해결Spring Boot와 React로 배우는 초간단 REST API 게시판 만들기
spring 과 mysql 연결이 안돼요
mysql 워크벤치 설정 하고 application.properties 입력 후 실행 결과 unable to load class [org.hibernate.dialect.MySQL8Dialect] Could not load requested class : org.hibernate.dialect.MySQL8Dialect 라고 뜨는데 어디가 잘못 되었을까요?
-
미해결NestJS 코어 가이드
추가 강의 요청?
혹시 drizzle, 웹소켓, 레디스 등을 활용하는 추가 강의도 찍어 주실 수 있나요?