묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[풀스택 완성] Supabase로 웹사이트 3개 클론하기 (Next.js 14)
유효성 검사 누락된 부분...
회원가입과 로그인 기능에서 이메일 형식과 비밀번호 최소 길이 등에 대한 유효성 검사를 추가해 주실 수 있는지 궁금합니다. 현재 학습 중인데, 이 부분에 대한 자료를 추가로 올려주시면 감사드리겠습니다.
-
미해결실전! 스프링 데이터 JPA
17:00 분 경에 적으시는 @Bean은 꼭 main메서드가 있는 곳에서 작성해야 하나요>?
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]혹시 config클래스를 따로 파서 거기에 만들어도 적용이 되는 건가여? 만약에 된다고 하면 둘중 어떤 식으로 많이 사용하나요?
-
해결됨Part2: 초중급 iOS 인스타그램 클론(SwiftUI, MVVM, Firebase, 2024)
class와 struct
안녕하세요. 궁금한게 있어 글 남깁니다. Model과 View에는 struct를 사용해주셨고ViewModel에는 class를 사용해주셨는데 이렇게 사용하는 것이 일반적이라고 생각하면 좋을까요? 강의를 보고 궁금하여 좀 찾아보니 참조 타입이나 값 타입에 대해 좀 알게 되었는데 크게 와닿지 않아서 일단은 외우고 진행해야하나 싶더라구요
-
해결됨[초급] QML 프로그래밍 1편
SquareButton 내 width/height가 필요한가요?
안녕하세요!SquareButton.qml 내에서 [width: 100, height:100]을 따로 선언해주시던데, Main.qml에서 SquareButton을 선언하고 [width: 300, height: 300]을 선언하게 되면, SquareButton.qml 내의 width/height와 중복이 아닐까 싶은데요. SquareButton.qml 내에서 width/height를 따로 선언하는 이유를 문의드립니다.
-
해결됨PM을 위한 데이터 리터러시(프로덕트 데이터 분석)
1:1 코칭
안녕하세요 카일스쿨님1:1 코칭 1주일 전에 신청했는데 답변이 안 와서, 혹시 신청 절차에 오류가 있었는지 문의 드리려고 합니다.
-
미해결
hwp.table_to_df 인자와 관련하여
df = hwp.table_to_df(n=1, startrow=0, columns=[1,2,3,4,5,6])이런 코드를 작성했습니다.분명 pyhwpx 모듈에서 table_to_df 함수의 사용법은 1. 선생님의 개인 블로그에 아래와 같이 설명되어 있는데 왜 아래와 같은 문제가 발생할까요?--------------------------------------------------------------------------- TypeError Traceback (most recent call last) File d:\mycode\HWPAuto\pyhwpx_test_hwp_df.py:2 1 # %% ----> 2 df = hwp.table_to_df(n=1, startrow=0, columns=[1,2,3,4,5,6]) TypeError: Hwp.table_to_df() got an unexpected keyword argument 'startrow' table_to_df(n:int|""="", startrow=0, columns=[])문서의 n번인덱스(0~)의 표를 판다스 데이터프레임으로 리턴한다.n을 지정하지 않는 경우, 캐럿이 표 안에 있다면 해당 표를 df로 리턴하며,캐럿이 표 안에 있지 않으면 0번 표를 df로 리턴한다.startrow는 상단의 일정 갯수의 행을 제외하고 싶을 때 사용하는데, 일반적으로 표 제목에 일부 병합이 되어 있는 경우, df로 변환시작할 행을 특정할 수 있다. 기본값은 0(1행)이다.startrow로 일부 병합이 되어 있는 제목행을 배제하고새로운 칼럼명을 부여하고 싶을 때에는 columns에 리스트로 정의할 수 있다. pyhwpx의 코드를 보려면 어떻게 하면 되는지요?
-
해결됨[초급] QML 프로그래밍 1편
"focus: true"는 한 번만 선언해주면 되나요?
<p>매번 좋은 강좌를 열어주셔서 감사드립니다. Qt6 때부터 유용하게 해당 강좌보면서 조금씩 익혀가고 있네요.질문은 제목처럼 "focus:true"를 한 번만 사용해도 무방한가 입니다.강의에서도 "Embedded Programming" TextInput 파트에서는 "focus:true"를 선언하지만, 그 다음 "Thread Programming"이 포함된 TextInput 파트에서는 따로 선언해주지는 않으시더라구요.혹시 전체 구문 혹은 parent에 해당하는 부분 내에서 한 번만 선언해주면 되는 부분인지 문의드립니다.</p>
-
미해결초보자도 할 수 있는 웹 취약점 진단(주요정보통신기반시설)
전체 강의자료는 어디서 다운 받을 수 있나요?
전체 강의자료는 어디서 다운 받을 수 있나요?
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
PageResponseDto 를 제네릭 타입으로 만드는 이유가 뭔가요?
dto 만들떄 제네릭 타입으로 만드는 특별한 이유가 있나요?
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
서비스계층 만들기 11분 10초 PageRequestDTO 에 Builder 설정 왜 하는 거에요?
package org.zerock.apiserver.dto; import lombok.Builder; import lombok.experimental.SuperBuilder; @SuperBuilder public class PageRequestDTO { @Builder.Default private int page = 1; @Builder.Default private int size = 10; }
-
미해결프론트엔드 개발환경의 이해와 실습 (webpack, babel, eslint..)
질문 an error occurred while loading the image
11:00쯤 file-loader부분입니다 질문. 해쉬로바뀐 이미지가 왜 로딩이 안되나요??
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
p6spy와 r2dbc 관련 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요. 지금 엔티티 클래스 개발2 강의 수강 중입니다.해당 강의 7분 20초 즈음 JpashopApplication 클래스 실행시키는 부분에서 런타임 에러가 발생하여 질문을 올리게 됐습니다. 처음 뜬 오류는 Caused by: java.lang.IllegalStateException: Could not evaluate condition on com.github.gavlyukovskiy.boot.jdbc.decorator.flexypool.FlexyPoolConfiguration$PropertyFlexyConfiguration due to com/vladmihalcea/flexypool/util/ClassLoaderUtils not found. Make sure your own configuration does not rely on that class. This can also happen if you are @ComponentScanning a springframework package (e.g. if you put a @ComponentScan in the default package by mistake) 이었습니다. 구글링과 chatgpt를 사용해 해결방법을 모색하였고 p6spy를 사용하려면 flexypool이 필요없다는 사실을 확인 했지만 오류 메세지에 맞추어implementation 'com.github.gavlyukovskiy:flexy-pool-spring-boot-starter:1.9.0' 을 build.gradle에 추가해 해결하려고 했습니다. 하지만 이번에는 'Caused by: java.lang.IllegalStateException: Could not evaluate condition on org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$PoolConfiguration due to io/r2dbc/spi/ValidationDepth not found. Make sure your own configuration does not rely on that class. This can also happen if you are @ComponentScanning a springframework package (e.g. if you put a @ComponentScan in the default package by mistake)' 오류가 발생하는 걸 확인할 수 있었습니다. 이번에도 구글링 및 chatgpt를 통해 해결방법을 찾아보려 했는데, JPA를 사용하면 R2DBC 관련한 모듈을 추가할 필요가 없다는 걸 확인할 수 있었고 아예 잘못된 방향으로 해결방법을 모색하고 있다는 걸 확인했습니다. 3. 현재 작성중인 코드에 flexy-pool을 사용하는 코드가 있나 점검해보았습니다. ./gradlew clean build .application.yml 점검build.gradle 점검./gradlew dependencies 를 통해서 의존관계 확인하지만 문제가 되는 부분을 찾을 수는 없었습니다. 어디서부터 잘못된건지, 해결 방법은 무엇인지 알려주시면 감사하겠습니다. 파일 링크 : https://drive.google.com/file/d/1kWHwYUf8akxBlG1Wdn6D_1WQbnRw8uzR/view?usp=sharing감사합니다.
-
미해결호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
(솔루션 수정)'tsyringe' Error: TypeInfo not known for "클래스명"
진작에 질문을 남겼어야 했는데, 애러 해결이 어려워 너무 지체되네요. 첫 질문 남기게 되었습니다. 문제의 요지: 추측 하기로container.resolve 가 vue 와 라이프사이클 에 순서때문인지, 다른 이유가 있는지 DI 가 안됩니다. Menu.vue 디버깅강의내용에도 있듯 tsyringe 는@singleton 이 달려있는 클래스를 컨테이너에 등록 후, 클래스 자체를 DI 키로 사용할 수 있다고 알고있습니다. 디버깅 상황에서 보다시피container 내부 _registryMap 안에 AuthorityApi 클래스가 정상등록 된 것을 확인할 수 있었습니다. 하지만 Break-point 된 container.resolve 처리가 안되어 아래처럼 애러가 발생합니다. 아래는 다음줄로 가지않고, 이벨류에이터로 실행한 모습이구요, AuthorityApi를 찾아올 수 없다 합니다.Error: TypeInfo not known for "AuthorityApi" at http://localhost:4000/node_modules/.vite/deps/tsyringe.js?v=a355aabe:746:17 at InternalDependencyContainer2.construct (http://localhost:4000/node_modules/.vite/deps/tsyringe.js?v=a355aabe:751:6) at InternalDependencyContainer2.resolveRegistration (http://localhost:4000/node_modules/.vite/deps/tsyringe.js?v=a355aabe:573:90) at InternalDependencyContainer2.resolve (http://localhost:4000/node_modules/.vite/deps/tsyringe.js?v=a355aabe:500:25) at eval (eval at setup (http://localhost:4000/src/widgets/Menu.vue:28:26), <anonymous>:1:11) at setup (http://localhost:4000/src/widgets/Menu.vue:28:26) at callWithErrorHandling (http://localhost:4000/node_modules/.vite/deps/chunk-VJROVW5H.js?v=a355aabe:1884:19) at setupStatefulComponent (http://localhost:4000/node_modules/.vite/deps/chunk-VJROVW5H.js?v=a355aabe:8253:25) at setupComponent (http://localhost:4000/node_modules/.vite/deps/chunk-VJROVW5H.js?v=a355aabe:8214:36) at mountComponent (http://localhost:4000/node_modules/.vite/deps/chunk-VJROVW5H.js?v=a355aabe:5604:7) 해결방법을 tsyringe 공식 깃헙이슈, 구글링, 스택오버플로 몽창 뒤져봐도 힌트얻기가 참으로 힘드네요. AI 센세는 그저 스택오버플로 내용만 읊어줍니다.이것에 원인을 알 수 있을까요? 실마리만 얻어도 해결하기 수월할텐데, 몇일 째 어째야 되나 고민입니다. 도움을 얻을 수 있을까요? : Source-Codesrc-front 소스코드주의: 개인 npm lib 가 포함되어 node_modules 을 포함한 체 그대로 압축된 파일입니다. npm i 인스톨 없이 앱을 실행해야될거라 예상합니다. 도움을 구합니다. 감사드려요.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
ExceptionResolver 내에서 sendError 호출
안녕하세요! 제가 질문의 의도를 명확히 드러내지 못한 것 같아 내용을 추가하여 재 질문 드립니다. https://www.inflearn.com/community/questions/1369485/exceptionresolver-%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0%EC%97%90-%EA%B4%80%ED%95%98%EC%97%AC-%EC%A7%88%EB%AC%B8%EC%9D%B4-%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4 <제가 생각한 json 결과> { "timestamp": "2024-09-07T16:52:16.664+00:00", "status": 400, "error": "Bad Request", "path": "/api/members/bad" } resolver에서 IllegalArgumentException을 해결을 하였고 sendError로 흐름을 바꾸었으니 순수 sendError(400)의 결과인 위 json과 같이 나와야 한다고 생각하였습니다.<흐름도>Controller 에서 IllegalArgumentException 발생 -> ExceptionResolver 실행 -> IllegalArgumentException 해결 후 sendError로 변경 -> BasicController 호출 후 sendError의 결과인 위의 json 반환 따라서 에러를 해결하였기 때문에 IllegalArgumentException 정보는 없고 sendError 정보만 있다고 생각합니다. 실제 출력에는 어찌 IllegalArgumentException 정보가 json에 출력되는지 궁금합니다. 에러를 해결 했더라도 그 정보를 다른 객체로 가지고 있고 나중에 활용하는 것 일까요?? 좋은 강의 만들어 주셔서 감사합니다.
-
미해결
실무에서 @Transactional의 noRollbackFor 옵션을 실제로 사용하나요?
안녕하세요 영한님 강의 너무 잘 듣고 있습니다.스프링에서 @Transactional은 UnCheckedException은 Rollback을 수행하고, CheckedException은 Rollback하지 않는 것으로 알고 있습니다.그렇다면, @Transactional의 noRollbackFor 옵션을 사용하여 특정 UnCheckedException을 의도적으로 Rollback시키지 않는 것은 잘못된(?) 코드인가요?나름대로 noRollbackFor을 사용한 예시 코드를 만들어보았습니다. @Service @RequiredArgsConstructor public class SomeService { private final SomeRepository someRepository; @Transactional(noRollbackFor = CustomRuntimeException.class) public void process() { ... if(doSomeBusinessLogic()){ throw new CustomRuntimeException("Custom unchecked exception 발생"); Events.raise(new SomeEvent("어떠한 이벤트")); } ... } 테스트 결과 noRollbackFor를 사용한 경우에는 이벤트가 발행이 되고, noRollbackFor가 없을 경우에는 이벤트 발행이 되지 않았습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
실제 코테 시험에 대해서 질문이 있습니다.
오늘 입사를 위한 코딩테스트를 두번째로 봤습니다. 공기업인데 프로그래머스로 이용해서 시험을 보았습니다. 그런데 제가 직접 #include<bits/stdc++.h>를 입력하면 오류가 나고 초기에 include로 작성되어있는 것들만 사용이 가능했습니다. 그래서 cout 으로 디버깅도 못했습니다.. 그리고 4문제 중 한문제에만 using namespace std; 가 초기에 적혀 있었고 나머지 세문제에는 초기에 적혀있지 않았습니다. 그래서 이 부분도 제가 직접 작성을 해주었더니 오류가 생기더군요.. 제가 아직 기업 신입 코테를 많이 봐본적이 없는데 이렇게 제한있는 곳들이 많나요..? 앞으로 이러한 상황들까지 대비해서 공부를 해야되는지 생각이 듭니다. 저번에 처음으로 다른 기업 시험을 볼 때도 프로그래머스를 이용했던 것으로 기억하는데 그때는 include도 마음대로 되고 namespace도 작성 가능했던걸로 기억합니다.. 그런데 오늘은 안돼서 문의했을 때는 오류는 없다고 했습니다..
-
미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
NodeBird 서비스의 화면 렌더링 방식에 대해 질문 드립니다!
궁금한 점이 있습니다.9강에서 만든 NodeBird 서비스의 구조는 프론트엔드가 따로 있는 것이 아니라 서버 측에서 nunjucks와 html 파일들을 사용하여 화면을 구성하는 것이 맞나요?1번이 맞고, 백엔드에서 직접 html을 생성하여 클라이언트에게 제공하는 구조라면 제가 공부한대로는 SSR 방식인 것 같은데 맞나요?프론트엔드를 따로 만들어서 서버와 연동하려면 app.js의 아래 코드와 views 폴더를 삭제하고 프론트 쪽에서 서버 측에서 만든 주소들을 호출하면 되나요?// app.js의 일부 app.set("view engine", "html"); nunjucks.configure("views", { express: app, watch: true, });
-
해결됨김영한의 실전 자바 - 중급 1편
ghuhan18님이 질문한것중 OMG님이 대답의 대한 질문.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. ghuhan님의 질문 내용과 OMG님의 답변 내용을 보면서, 궁금증이 생겨서 질문을 남깁니다.OMG님의 답변 내용을 보면서 그 내용 중 '코드 규모가 커지고' 라는 말이 있습니다.만약에 ghunhan님의 말처럼 지역 클래스 로 만들었는데, 어느 정도 코드 규모가 커져서 별도의 클래스 를 만들어야 한다는 상황이 생겻다면,(지역 클래스에서 그냥 일반 클래스로 전환)어느 정도 코드 큐모가 커야지? 별도의 클래스를 만들겟다는 생각이 드는지요?각각 사람들이 생각하는 코드의 규모가 있을 텐데요, 아직 저로서는 어떤 게 코드 규모가 큰지 생각을 할 수 없네요.수정 : 너무 말이 이상해서 수정을 좀 많이 하네요. 수정 하시기전 보신 분들 좀 죄송합니다. 답변 부탁 드립니다.
-
해결됨그림으로 배우는 쿠버네티스(v1.30) - {{ x86-64, arm64 }}
nfs-client-provisioner 관련 생성 오류 질문
안녕하세요.버츄얼 시스템에 자체 리눅스를 구성 후 ip를 다르게 설정하여 사용중입니다. (ip range : 10.1.3.0/24)강의 중 extra_k8s_pkgs_sh 를 이용하여 테스트망 구성중 "nfs-client-provisioner" pod의 구성에 어려움이 있어 질문 드립니다. EXTRA_PKGS_ADDR의 주소를 fork후 주소를 변경 후 스크립트 실행했습니다.파일 에서"k8s/extra-pkgs/v1.30/ingress-ctrl-loadbalancer-v1.10.1.yaml" 파일의 loadBalancerIP (10.1.3.x)변경"k8s/extra-pkgs/v1.30/metallb-iprange.yaml" 파일의 spec.addresses (10.1.3.x-10.1.3.y)"k8s/extra-pkgs/v1.30/nfs-provisioner-v4.0.2.yaml" 파일의 NFS_SERVER, nfs-client-root의 ip 변경 (10.1.3.z - control-plane node ip)로 변경했습니다. 실행 후 nfs-client-provisioner pod의 status 가 ContainerCreatin에서 로그는stream logs failed container "nfs-client-provisioner" in pod "nfs-client-provisioner-5b45d4bc47-jzwd7" is waiting to start: ContainerCreating for default/nfs-client-provisioner-5b45d4bc47-jzwd7 (nfs-client-provisioner)가 확인 되고describe 확인 시가 보여집니다.제가 강의를 전체 수강하지 못하고 필요한 부분을 따로 듣다보니 혹시 놓친 부분이 있다면 코멘트 부탁 드립니다.
-
해결됨[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
auth/token/access, auth/token/refresh 엔드포인트에 대한 Guard 적용
현재 듣고 있는 강의 부분은 Guard chapter에서 basic, bearer guard를 적용하는 부분입니다. @Injectable() export class BearerTokenGuard implements CanActivate { constructor( private readonly authService: AuthService, private readonly usersService: UsersService, ) {} async canActivate(context: ExecutionContext): Promise<boolean> { const req = context.switchToHttp().getRequest(); const rawToken = req.headers['authorization']; if (!rawToken) { throw new UnauthorizedException('토큰이 없음'); } const token = this.authService.extractTokenFromHeader(rawToken, true); const result = await this.authService.verifyToken(token); // payload 반환 /** * req 객체에 넣을 정보 * 1) 사용자 정보 - user 객체 자체 * 2) token - token * 3) tokenType - access | refresh */ const user = await this.usersService.getUserByEmail(result.email); req.user = user; req.token = token; req.tokenType = result.type; return true; } } 제 개인적인 생각으로는 적어도 제목에 적힌 두 엔드포인트에 대해서는 현재의 BearerTokenGuard를 적용하는 것이 굳이 라는 생각이 듭니다. refreshToken을 이용하여 새로운 토큰을 발급받는 역할을 하는 두 엔드포인트에 대해 다른 줄은 다 문제가 크게 없다고 생각하지만 req.user = user;로 굳이 요청에 user 객체를 붙이는 것은 굳이라는 생각이 듭니다. 제 낮은 식견으로는 위 두 엔드포인트에 대한 guard는 또 따로 만들어야 한다고 생각이 드는데 강사님 생각이 궁금합니다.