묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
세션 타임아웃과 refresh token
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]기존에 JWT의 access token과 refresh token 플로우를 알고 있는 상태에서 세션관련 강의를 듣다보니까 의문점이 생겼습니다. 강의에서 세션은 세션 타임아웃 설정을 통해 예를 들어 접속할때마다 세션 유효 기간을 30분씩 늘리는 방식으로 사용하여 세션 탈취로부터 보안을 강화하고 사용자의 빈번한 재로그인을 방지합니다.그렇다면 여기서 JWT도 세션과 유사하게 refresh token을 사용하지 말고 accesstoken을 통해 서버에 접근할때마다 유효시간을 30분씩 늘리는 방식으로 동작하면 더 효율적일거 같은데 굳이 refresh token을 활용하는 이유가 있을까요??
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
pushNamedAndRemoveUntil 의 작동원리와 오류나는 이유가 궁금합니다.
안녕하세요! 강의 잘 듣고 있습니다. Q1.pushNamedAndRemoveUntil 의 작동순서? 원리가 제가 생각한게 맞는지 확신이 들지 않아서 여쭤봅니다.명명된 라우트가 푸시된다.라우트 스택 중 가장 최근부터 순차적으로 조건문에 따라 false가 반환되는 라우트는 스택에서 삭제된다.따라서 push됐던 라우트에서 pop을 하게 되면 라우트 스택에 남아있던 라우트로 이동한다.이게 맞나요? Q2.라우트 스택의 가장 최근부터 순차적으로 삭제되는게 맞다면RemoveUntil 이라는 이름을 보고 삭제되지 않는 페이지가 있다면 거기서 끝나는건가? 라는 생각에 HomeScreen이 아닌 route_one_screen이 삭제되지 않는 조건문을 작성했습니다. route.settings.name == '/'; 로 하셨던 것을route.settings.name == '/one' 으로 바꿔봤는데push됐던 route_three_screen이 pop되면 route_one_screen이 나올줄 알았는데그냥 검은 화면만 나옵니다.무엇이 문제였던 걸까요..?그리고 home_screen도 삭제가 되었을까요? import 'package:flutter/material.dart'; import 'package:navigation/layout/default_layout.dart'; import 'package:navigation/screen/route_three_screen.dart'; class RouteTwoScreen extends StatelessWidget { const RouteTwoScreen({super.key}); @override Widget build(BuildContext context) { final arguments = ModalRoute.of(context)?.settings.arguments; return DefaultLayout( title: 'RouteTwoScreen', children: [ Text( arguments.toString(), textAlign: TextAlign.center, ), OutlinedButton( onPressed: () { Navigator.of(context).pop(); }, child: Text('Pop'), ), OutlinedButton( onPressed: () { Navigator.of(context).pushNamed( '/three', arguments: 111111, ); }, child: Text('Push Route Three'), ), OutlinedButton( onPressed: () { /// [HomeScreen, RouteOneScreen, RouteTwoScreen] /// push - [HomeScreen, RouteOneScreen, RouteTwoScreen, RouteThreeScreen] /// pushR - [HomeScreen, RouteOneScreen, RouteThreeScreen] Navigator.of(context).pushReplacement( MaterialPageRoute( builder: (BuildContext context) { return RouteThreeScreen(); }, settings: RouteSettings( arguments: 999, ), ), ); }, child: Text('Push Replacement'), ), OutlinedButton( onPressed: () { Navigator.of(context).pushReplacementNamed( '/three', arguments: 999, ); }, child: Text('Push Replacement Named'), ), OutlinedButton( onPressed: () { Navigator.of(context).pushNamedAndRemoveUntil( '/three', (route){ /// 만약에 삭제 할거면 (Route Stack) false 반환 /// 만약에 삭제를 안할거면 true 반환 return route.settings.name == '/one'; }, arguments: 999, ); }, child: Text('Push Named And Remove Until'), ), ], ); } }
-
해결됨삼각형의 실전! CMake 초급
ExternalProject_Add 관련 질문
안녕하세요? 이번 강의에 외부 라이브러리를 사용하기 위해 1. vcpkg+find_package를 이용해 vcpkg로 설치한 라이브러리를 사용한다2. fetchContent 를 이용해 vcpkg-find_package 없이 직접 package를 다운 받아서 사용한다. 를 배웠습니다. CMakeLists.txt에서 target_link_libraries를 이용하면 간단하게 라이브러리를 이용할 수 있구요. github에서 외부 라이브러리 사용법 안내(readme)를 읽다보면 종종 ExternalProject_Add와 add_dependencies, target_include_directories, target_link_directories, target_link_library 등도 사용하는 게 보입니다. 이 기술들은 사장된 기술들인가요? 강의 예제에서는 target_include_directories, target_link_directories, add_dependencies 를 사용하지 않는 이유가 궁금합니다. compile 후 linking을 위해서 이 명령어를 이용해 경로도 설정해줘야할 것 같은데요, 강의대로 따라하면 include directory, link directory를 굳이 설정할 필요 없이 link library로만으로도 빌드가 잘 되네요(?)
-
미해결실무에 바로 적용하는 프런트엔드 테스트 - 1부. 테스트 기초: 단위・통합 테스트
2.1 강의 질문있습니다.
!e.nativeEvent.isComposing 해당 코드가 이해가 되지 않아 찾아보았지만(아래 설명..), 정확히 어떻게 쓰이는지 잘 모르겠습니다. 설명 좀 부탁합니다. ev.nativeEvent.isComposing은 복잡한 문자 입력 도중 발생하는 이벤트를 처리하기 위한 속성으로, IME를 통한 입력이 완료되지 않았을 때 특정 키 이벤트를 무시하는 데 사용됩니다. 이를 통해 불완전한 입력에 대한 처리를 방지할 수 있습니다
-
해결됨[플러터플로우] 실전! 앱 출시를 위한 끝장 노하우!
강의 내용 중복
아래 두 강의 내용이 동일합니다. [인앱결제] 10. 플러터플로우-RevenueCat 연결 및 구현[인앱결제] 11. iOS에서 인앱결제 테스트하기
-
미해결인프콘 2024 다시보기
ㅎㅎ 재밌네요
좋은 강의 감사함니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
intellij JVM설정 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]인텔리제이의 설정화면 두곳이 있습니다.하나는 settings > build, Execution, Deployment > build Tools > Gradle > 맨 하단 Gradle JVM 다른 하나는 project Structure > project settings > project > sdk 위 두 곳은 어떤 차이점이 있는 것인지 알고싶습니다.둘다 JDK경로를 지정하는 것처럼 보이는데 Dependency requires at least JVM runtime version 17 에러를 마주했을 때 후자에서 해결을 해보려고 해도 해결이 안됐었습니다.
-
미해결엑셀 매크로와 VBA 기초부터 실무활용까지 완전 정복
강의자료 다운로드 문제
강의자료 다운로드가 안됩니다.메일로 전달 부탁드립니다. ver37kk@gmail.com
-
미해결구글태그매니저로 데이터 설계&수집하기
구글시트 권한 요청
안녕하세요.수업자료와 데이터 설계서 작성 연습 구글시트 권한 요청 드립니다.그 외 수강하면서 봐야할 시트가 있다면 같이 요청 드립니다.kennc9587@gmail.com
-
해결됨Verilog FPGA Program 5 (LVDS/Serdes, HIL-A35T)
JTAG을 따로 구입해야 하나요?
보통 개발 보드에 JTAG이 따로 내장되어서 USB로 모든 것을 해결하는 경우도 많던데, 이 보드에는 JTAG도 따로 구입을 해야 실습이 가능한가요?
-
해결됨[2025 리뉴얼] 스스로 구축하는 AWS 클라우드 인프라 - 기본편
Application Load Balancer를 통한 이중화 네트워크 구성(1)
Application Load Balancer를 통한 이중화 네트워크 구성(1) 강의를 듣고 진행하여결과를 잘 나왔습니다.그런데, 서버 1을 임의적으로 정지시키면 서버 2에서 서비스가 잘 되는지 테스트 해봤는데요새로고침 하면 , Load Balancer 서버1 과 서버2 한번씩 번갈아가면서 서비스를 해주는것 같습니다.서버1로 Load Balancer가 넘기면 "504 Gateway Time-out " 가 화면에 나오고,다시한번 새로고침 하면, Load Balancer가 서버2로 넘기면서 정상적으로 화면이 나오는 식으로번갈아가면서 되고 있는데요..서버1이 죽었을때 서버2로 계속해서 넘겨주고 싶은데.. 그 과정은 따로 없을까요 ?참고로, 아직 뒤에 과정은 듣지 않은 상태에서 글을 작성하고 있습니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
build.gradle에 queryDSL 설정이 잘되지 않습니다.
plugins { id 'java' id 'org.springframework.boot' version '3.3.1' id 'io.spring.dependency-management' version '1.1.5' } group = 'jpabook' version = '0.0.1-SNAPSHOT' java { toolchain { languageVersion = JavaLanguageVersion.of(17) } } //롬복 셋팅 configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-devtools' implementation 'junit:junit:4.13.1' implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.1' implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'com.fasterxml.jackson.datatype:jackson-datatype-hibernate5' implementation 'javax.persistence:javax.persistence-api:2.2' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' //test 롬복 testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' //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() jvmArgs '-Xshare:off' // JVM 아규먼트 설정 } clean { delete file('src/main/generated') }이렇게 설정해둔 상태인데 gradle을 다시로드했음에도 other에 compilequerydsl 설정이 생기지 않는 상황이고, 다른방식으로 설정도 했었는데, 그때는 또 우측 gradle의 other에 compileQeurydsl 설정이 보여서 설정을 진행했고 프로젝트 generated 디렉토리가 생성되긴 했지만, generated 디렉토리 하위 파일들이 보이지 않습니다. 어떻게 해결할 수 있을까요? 커뮤니티의 내용들을 다 참고했지만 되지 않네요..
-
해결됨실리콘밸리 엔지니어와 함께하는 리눅스 실전
docker compose up 실행 시 오류
안녕하세요. 강사님! 첨부 파일 자료를 통해서 docker compose up을 하게 되면 아래와 같은 메시지가 표시되고 있습니다. Dockerfile에서 문제되는 부분을 주석 처리하고 진행하면 정상적으로 진행이 되긴합니다...실습 시 주석 처리 후 진행하면 될까요? 감사합니다.
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
세션 10번 완성 소스가 잘못올라온거 같아요
세션 10번 강의 보면서 따라가고 있는데 org.springframework.dao.DataIntegrityViolationException: could not execute statement [(conn=335) Cannot add or update a child row: a foreign key constraint fails (`apidb`.`tbl_cart_item`, CONSTRAINT FKs7vg62w3nq7igdxgssq1u0biw FOREIGN KEY (`product_pno`) REFERENCES tbl_product (`pno`))] [insert into tbl_cart_item (cart_cno,product_pno,qty) values (?,?,?) returning cino]; SQL [insert into tbl_cart_item (cart_cno,product_pno,qty) values (?,?,?) returning cino]; constraint [null] 에러가 나오더라구요..그래서 제가 세션 10 완성 소스 보면서 잘못된 곳을 찾아 보려는데 ... 올라건 소스가 잘못된거 같아요... 세션 10의 소스가 아닙니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
세션 저장 위치
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]세션은 쿠키에 저장하는데 로컬 스토리지나 세션 스토리지에 저장하지 않는 이유가 있을까요??
-
해결됨워드프레스 자동 포스팅 프로그램 개발 강의 (ChatGPT API)
클라이언트 에러 관련 질문입니다.
안녕하세요 강사님,저는 Client 부분 부터 에러가 발생합니다패키지들은 잘 설치 했는데, 어떤 문제인지 모르겠습니다.(전 Mac 사용 중이고, 파이썬 버젼은 3.11 씁니다) 파이썬 실행하면, 아래와 같은 에러메시지가 나옵니다. Traceback (most recent call last):File "/Users/mati/coding/wp_auto/3.upload.py", line 14, in <module>client = Client(site_url, username, password)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/Users/mati/coding/wp_auto/coding/wp_auto/lib/python3.11/site-packages/wordpress_xmlrpc/base.py", line 24, in initself.supported_methods = self.server.mt.supportedMethods()^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/xmlrpc/client.py", line 1122, in callreturn self.__send(self.__name, args)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/xmlrpc/client.py", line 1464, in __requestresponse = self.__transport.request(^^^^^^^^^^^^^^^^^^^^^^^^^File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/xmlrpc/client.py", line 1166, in requestreturn self.single_request(host, handler, request_body, verbose)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/xmlrpc/client.py", line 1179, in single_requestresp = http_conn.getresponse()^^^^^^^^^^^^^^^^^^^^^^^File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/http/client.py", line 1378, in getresponseresponse.begin()File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/http/client.py", line 318, in beginversion, status, reason = self._read_status()^^^^^^^^^^^^^^^^^^^File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/http/client.py", line 287, in readstatusraise RemoteDisconnected("Remote end closed connection without"http.client.RemoteDisconnected: Remote end closed connection without response답글 달기수정삭제
-
미해결스타트업 성장과 함께하는 AWS 클라우드 아키텍쳐 올인원
ACM 인증서 검증 대기 중
계속 검증 대기 입니다 ㅠ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-A: 맞왜틀 질문
안녕하세요 선생님.#2178 문제 중, 질문이 있습니다.사실 ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); 를 습관처럼 사용했습니다.코드 실행 성능을 늘릴 수 있다는 생각 하에 아무생각없이 넣었었는데요.#2178 문제의 경우 이 코드 라인 존재 유무에 따라 정답 오답 차이가 발생하게 되었습니다.정답코드: http://boj.kr/a38836f77c014af59c41c4d52b8416bc오답코드: http://boj.kr/b698e25e27b84232901cd3ee8f0dc037정답/오답의 판별이 아래 코드의 존재 유무에 기인한 것인지, 아니면 다른 부분에 있는 것인지 질문 드립니다.int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); ... }
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
제 학습방법이 맞는지 궁금합니다..
만약 강의보기전에 알고리즘 문제 풀 때, 아무것도 쓰지 못할 경우에는일단 어떻게 접근할지 생각해본다 (한 자라도 쓸 수 없더라도) 강의를 본다. 모르는 개념이 나왔을때, 따로 공부하고 코드를 계속 외울때까지 써본다.이런 방식으로 해도 괜찮을까요??
-
해결됨김영한의 실전 자바 - 기본편
[기본형과 참조형 문제풀이] 코드에 관한 질문이 있습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요!항상 선생님께서 진행하시는 문제 풀이를 수강한 이후에, 혼자 좀 더 나은 방식으로 만들 수는 없을까 고민을 하는데요,Method를 배우고 난 이후로, 코드를 대부분 Method로 넘겨서 작성하다 보니 '기능을 전부 Method로 넘겨서 작성하는 것이 진짜 잘 작성한 코드가 맞을까?' 하는 의문이 들었습니다. 아래는 마지막 문제를 제가 코딩한 내용인데요, 두 가지 질문이 있습니다.실무적인 관점과 비교해서 아래의 코드처럼 작성하는 방식(모든 기능을 Method에 집약한 방식)이 괜찮은 방식인가요?코드의 개선점이 있다면 어떤 점을 개선하면 좋을까요?항상 좋은 강의 해주셔서 감사합니다!package ref.ex; import java.util.Scanner; public class ProductOrderMain2 { public static void main(String[] args) { int num = orderCount(); ProductOrder[] orders = new ProductOrder[num]; createOrder(orders); orderPrint(orders); } static int orderCount() { Scanner scan = new Scanner(System.in); System.out.println("-----------------------------------"); System.out.println(" 상품 등록 시스템 "); System.out.println("-----------------------------------"); System.out.print("입력할 주문의 개수를 입력하세요: "); int num = scan.nextInt(); System.out.println(); return num; } static void createOrder(ProductOrder[] orders) { Scanner scan = new Scanner(System.in); for(int i = 0; i < orders.length; i++) { orders[i] = new ProductOrder(); System.out.println((i+1) + "번째 주문 정보를 입력하세요"); System.out.print("상품명: "); orders[i].productName = scan.nextLine(); System.out.print("가격: "); orders[i].price = scan.nextInt(); System.out.print("수량: "); orders[i].quantity = scan.nextInt(); scan.nextLine(); System.out.println(); } } static void orderPrint(ProductOrder[] orders) { int total = 0; for(ProductOrder P : orders) { System.out.println("상품명: " + P.productName + ", 가격: " + P.price + ", 수량: " + P.quantity); total += (P.price * P.quantity); } System.out.println("총 결제금액: " + total); } }