묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
unlock()을 호출 했을 때
ReentrantLock에서 lock.unlock()을 호출하면, 대기 중인 스레드들이 락을 획득하려고 서로 경쟁하게 됩니다. 제가 이해한 바로는, unlock이 호출된 후 스레드들중 락을 획득한 한개의 스레드는 RUNNABLE 상태로 전환되고, 나머지 락을 획득하지 못한 스레드들은 다시 WAITING 상태로 돌아가는 것이라고 알고 있습니다. 이 과정에서 스레드들이 경쟁하는 순간의 상태가 정확히 어떻게 되는지 궁금합니다. 경쟁순간에는 락을 획득하려는 스레드들 모두 RUNNABLE 상태인가요?
-
미해결Next + React Query로 SNS 서비스 만들기
렌더링
안녕하세요. useQuery로 가져온 data가 console로 찍어보면 두번찍히는데 왜 렌더링이 두번도는지 알 수 있을까요?
-
해결됨[개정판] 파이썬 머신러닝 완벽 가이드
안녕하세요(머린이 질문)
안녕하세요 선생님다름이 아니라, 머신러닝 수강중 궁금한게 있어 질문드립니다X1, X2 ,X3 ,X4 ~... Y가 있을 때 회귀예측을 진행한다고 하면만약 타겟 Y값 목표가 100이라고 가정 했을 때X1,X2,X3,X4들이 어느정도 값에 있는걸 추천한다 ? , 권장한다 ? 라는 분석기법도 있을까요 ? Q1) Y가 목표값이 있을 때, 각 X1~X4 범위 , 그에 따른 Y값의 신뢰구간 ㅠ 그냥 이 질문은 ML이 아니고 회귀분석 일까요 ??
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-A 질문있습니다.
제 방식대로 풀었을 떄 왜 틀렸는지 잘 모르겠어서 질문 남겨요#include <bits/stdc++.h> using namespace std; int arr[9]; vector<int> v; // 9명중 7명 선택 // 키의 합 100 // 키가 주어 졌을 때 일곱 난장이 찾기 // 키를 오름차순으로 출력하기 bool Check() { int sum = 0; for (int a : v) sum += a; if (sum == 100) return true; return false; } void Print() { vector<int> ret = v; sort(ret.begin(), ret.end()); for (int a : ret) cout << a << '\n'; } void Combi(int start) { if (v.size() == 7) { if (Check()) Print(); return; } for (int i = start + 1; i < 9; i++) { v.push_back(arr[i]); Combi(i); v.pop_back(); } } int main() { // input for (int i = 0; i < 9; i++) cin >> arr[i]; // 9명중 7명 선택 Combi(-1); return 0; }
-
미해결프론트엔드 개발환경의 이해와 실습 (webpack, babel, eslint..)
eslint no-extra-semi 관련 질문
안녕하세요. eslint 강의를 듣고 있습니다. 답변해주시면 감사하겠습니다!버전은 아래와 같습니다."@eslint/js": "^9.9.1", "@stylistic/eslint-plugin-js": "^2.6.4", "webpack": "^5.93.0", "webpack-cli": "^5.1.4" eslint 공식홈에 no-extra-semi 사용법을 확인하면 아래와 같이 나와있습니다.https://eslint.org/docs/latest/rules/no-extra-semi#rule-detailsThis rule was deprecated in ESLint v8.53.0. Please use the corresponding rule in @stylistic/eslint-plugin-js.8.53.0 버전부터 deprecated가 되어서 stylistic 플러그인을 사용해서 쓰라고 되어 있습니다. 그래서 아래와 같이 설정을 했습니다.// eslint.config.js import js from "@eslint/js"; import stylisticJs from '@stylistic/eslint-plugin-js' export default [ js.configs.recommended, { plugins: { '@stylistic/js': stylisticJs, }, } ];그런데, no-extra-semi rule이 동작을 하지 않고 아래와 같이 rules안에 명시를 해줘야만 동작을 합니다. 플러그인만 명시하면 되는게 아니라 사용할 rule을 하나하나 명시해줘야만 하는건가요?// eslint.config.js import js from "@eslint/js"; import stylisticJs from '@stylistic/eslint-plugin-js' export default [ js.configs.recommended, { plugins: { '@stylistic/js': stylisticJs, }, rules: { "@stylistic/js/no-extra-semi": "error" } } ]; 그리고 추가적으로 궁금한 것은 deprecated 되었다고 했는데 왜 아래와 같이 eslint에서 "no-extra-semi" 를 사용할 수 있는걸까요?// eslint.config.js import js from "@eslint/js"; import stylisticJs from '@stylistic/eslint-plugin-js' export default [ js.configs.recommended, { rules: { "no-extra-semi": "error" } } ];
-
미해결[하루 10분|GA] Google Analytics(GA) 보고서 살펴보기
계정 만들기_고급 옵션
안녕하세요!강의에서 계정 만들기 → 고급옵션에서 유니버셜 만들기로 체크하라고 하셨는데 고급 옵션 자체가 없어서요ㅠ해결 방법 아시는 분 계실까요?
-
해결됨외워서 끝내는 네트워크 핵심이론 - 응용
Out of Path 장치로 거짓 응답으로 보내는 경우
Out of Path 장치로 유해 사이트로 바로 응답하는 경우에도실제 해당 사이트에서는 응답을 보내주는데ISP단에서 해당 응답은 차단 안하는건가요? 그러면 실제로 브라우저에 뜨지는 않지만 클라이언트에서는 해당 응답을 받긴 하는건가요? 더 자세히 보자면 TCP 3-way handshake단계가 먼저 들어갈 것 같은데, 이 3-way handshake의 응답을 ISP단의 Out of Path 장치가 먼저 수행해서 실제 서버와 3-way handshake를 못하게 막는건가요? 만약 응답을 차단하지 않는다면, 여러 응답들을 모두 볼 수 있는 프로그램을 만들어내면 실제 서버의 응답 역시 볼 수 있는지 궁금합니다.(아마 ISP에서 해당 서버의 ISP로의 Inbound를 막아서 못들어올 것 같기도 합니다. 잘 모르겠습니다.) 이상입니다.오늘도 좋은 하루 되십시오. 감사합니다.
-
미해결스프링 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에서 문제되는 부분을 주석 처리하고 진행하면 정상적으로 진행이 되긴합니다...실습 시 주석 처리 후 진행하면 될까요? 감사합니다.