묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
영한님 ReentrantLock 대기상태 다시 질문드려요!
1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]제가 멀티스레드와 동시성 관련해서 제대로 깊게 알아야할거같아서 다시복습으로 듣고있는데 예전에 질문했던 내용과 동일한거같아서 다시 질문드려요 ㅠ 그전에 처음 들어서 헷갈린부분이있었는데 다시들으면서도 설명한 부분이 맞나 싶어서요. 그전에 질문할때도 강의내용이 맞는지에 대한 질문이라 조심스러운부분이고 제가 잘못안다고 생각했는데 짚고넘어가면 좋을거같아서 다시 질문드립니다!이전 질문 링크: https://inf.run/t3Bbm71. 스레드의 대기 강의핵심 질문: 부분(13:30)강의에서 ReentrantLock 락 획득 실패시 대기큐에 WAITING상태라고 설명했는데 BLOCKED 상태가 가맞는지 검토필요.이부분에 대한 검토가 필요할거같고 제가 잘못알고있다면 참고해야할 링크를 주시면 감사하겠습니다. 아니라면 저처럼 이해하는데 오해의 소지가있는부분이 발생할것같습니다. 질문내용:부분(13:30)에서 대기1 락을 획득하기위한 대기큐에 대해서 설명해주셨고 lock()호출시에 이미 다른 스레드가 락을 획득시에는 WAITING상태로 대기하고 synchronized인 경우에만BLOCKED인거고 ReentrantLock은 WAITING 상태로 락획득을 대기큐에서 대기한다 라고 설명해주셧는데 이부분이 락이아닌 큐가 꽉차거나 완전히 비어있을때(특정 조건)는 RUNNABLE에서 await()사용해서 WAITING상태로 만들고 이걸 스레드대기공간(집합)에 넣고 추후 명시적으로 깨울수있게하는데, 락획득 실패시에는 BLOCKED상태로 락대기집합에 있는거고, 얻고나서 RUNNABLE상태에서 특정조건에 부합되지않을때(큐가 꽉차거나, 없을때) await를 써서 다시 WAITING상태로 스레드 대기집합에 넣는게 맞는거같아서 검토부탁드립니다.!그래서 이전강의 notify설명(synchronized 부분이긴하지만)에서도 WAIT -> BLOCKED 설명해주실때 WAIT이던애를 깨우면 바로 RUNNABLE이 되는게아니라 BLOCKED되는 설명부분이랑 ReentrantLock 역시 같은 원리가 맞는거같은데 이부분 다시 검토해주실수있나해서요ㅜ ReentrantLock 이라고해서 lock얻는걸 실패해도 WAITING이라는건 아닌거같아 검토해주시면 감사하겠습니다..!그리고 (17:40) synchronized의 경우 blocked일때는 interrupt로 깨우지못한다고했고(이부분설명은 맞는데)reentrantlock은 lockInterruptibly() 를 사용하면 가능하다고 했는데 이게 WAITING상태여서 가능하다기보단 lockInterruptibly이 BLOCKED상태인 스레드를 InterruptedException가 발생해서 blocked상태에서 빠져나오는게하는 기능인거 같은데 이부분도..reentrantlock역시 lock()만 사용으로는 못깨우고 이게 WAITING인거랑 좀 별게인거같아서 검토해주실수있을까해서요! 아래 참고 링크를 걸긴했는데 강의들 들으면서 사이클을 생각하다가 락을 획득할려다가 실패시 WAITING으로 대기한다라는게 원리상 아닐거같아서 찾아본게 oracle에서는 명시적으로 나타내진않았고 chat gpt에게 물어보면 제가 계속 waiting이 맞지않냐 blocked은 아니지않냐 공식문서 있냐 물어보면 명시적이진 않지만 유추할수있다 라고도 하고 그래서 결국 찾은 링크가 아래인데 공식은 아니고 블로그 내용이긴해서,, 한번더 영한님이 체크해주실수있을까해서요아래 chat gpt 답변과 블로그 링크에서 해당 내용부분 스샷도 일부 남길게요! https://blog.ycrash.io/java-suspended-thread-states-blocked-waiting-timed_waiting/?utm_source=chatgpt.com------질문을 남기니 그때처럼 인프런ai가 답변했는데 저 내용이 맞는거같아서요!
-
미해결C#과 유니티, 실전 게임으로 제대로 시작하기 (저자 직강)
총알발사 Vector3
총알 발사를 위해 Vector3을 왜 쓰신걸까요? Vector2로도 구현 가능하지 않나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 2유형 코드 점검 한번만 부탁드립니다..
import pandas as pdtrain = pd.read_csv("data/customer_train.csv")test = pd.read_csv("data/customer_test.csv")# 사용자 코딩# print(train.shape, test.shape)# print(train.info())# print(test.isnull().sum())y_train = train.pop('총구매액')# print(train.shape, test.shape)m = train['환불금액'].mean()train['환불금액'] = train['환불금액'].fillna(m)test['환불금액'] = test['환불금액'].fillna(m)# 원핫, 라벨링인코더# print(train.info())# print(train.shape, test.shape)#라벨인코더# cols = ['주구매상품', '주구매지점']# from sklearn.preprocessing import LabelEncoder# le = LabelEncoder()# for col in cols:# train[col] = le.fit_transform(train[col])# test[col] = le.transform(test[col])#원핫print(train.shape, test.shape)data = pd.concat([train,test], axis = 0)data_oh = pd.get_dummies(data)train = data_oh.iloc[:len(train)].copy()test = data_oh.iloc[len(train):].copy()print(train.shape, test.shape) # print(train.head())#스플릿from sklearn.model_selection import train_test_splitX_tr, X_var, y_tr, y_var = train_test_split(train,y_train,test_size = 0.15,random_state = 0)#랜포from sklearn.ensemble import RandomForestRegressorrf = RandomForestRegressor(random_state=0)rf.fit(X_tr, y_tr)pred = rf.predict(X_var)import lightgbm as lgblgbmr = lgb.LGBMRegressor(random_state=0)lgbmr.fit(X_tr, y_tr)pred1 = lgbmr.predict(X_var)from sklearn.metrics import root_mean_squared_errorrmse = root_mean_squared_error(y_var, pred1)print(rmse)#라벨 rf 716.2595627489613#라벨 lgb 667.9290102574973#원핫 rf - 762.9476701424611#원핫 lgb - 652.1802049238468#제출pred = lgbmr.predict(test)submit = pd.DataFrame({'pred' : pred})submit.to_csv('result.csv', index=False)print(pd.read_csv('result.csv')) 저렇게 4개 비교해서 원핫 lgb로 제출했는데요 옳게 했는지 코드 점검 한번만 부탁드립니다 그리고 질문이 있는데요 실제 시험 들어가면 import pands as pd랑 트레인 테스트 저거 주나요? 외워야하나요? 저 화면 처럼 실제 시험도 저렇게 구성되어있나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
데이터 이상치 파악
train과 test 데이터 전처리 시, 두 데이터 모두에서 '총구매액' 과 '최대구매액'이 음수이길래 이상치인줄 알고 전처리에 고민을 좀 했습니다.고민하다보니 전액 환불한 경우에는 논리적으로 음수가 맞더라고요. 그래서 별도의 이상치 처리는 안 했습니다. 다만, 제가 궁금한점은 실제 시험에서 이상치가 나왔을 때 대응 방법 (예를 들어, 이상치가 아닌 데이터만 살리는 등) 이 문제처럼 test데이터에서 이상치가 나올 가능성이 있는지와 대응방법 (test데이터의 행은 삭제해서는 안 되는 것으로 알고 있습니다.) 위 두가지가 궁금합니다.
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
테스트 벤치 이슈
안녕하세요 🙂[1. 질문 챕터] : 16장[2. 질문 내용] : 맛비님 제가 버그 픽스했다는 코드랑 원래 코드랑 딜레이쪽에서 어떤 차이가 있는지 확인해보고싶어서 data mover 파일만 16장에서 주신 코드로 바꾸고 15장에서 사용했던 테스트 벤치를 돌려봤는데요 시뮬레이션이 끝나지 않아서 웨이브 폼을 좀 돌려보다가 is_read_done신호랑 is_write_done 신호가 c_state가 RUN일때 X 상태로 변하고 그것때문에 addr cnt가 초기화가 안되는것을 발견했습니다(write read 둘다). 그런데 강의에서 보면 맛비님 컴퓨터에선 테스트벤치가 잘 작동한것처럼 보이고 코드에서 is_read_done이랑 is_write_done 신호를 assign한 부분 체크해보는데 별 문제도 없어보여서 혼란스럽네요 ㅜㅠ 그냥 제 컴퓨터가 이상한 부분일까요? 아니면 예전 파일 테스트벤치용이라 고친 파일에서는 작동을 안하는걸까요? 참고로 코드에는 손대지 않았습니다! [3. 시도했던 내용, 그렇게 생각하는 이유] : ================ 다음 내용은 읽어보시고 지우시면 됩니다.=================질문 내용을 작성해주실 때, 위의 3단계로 제가 이해할 수 있게 작성해주시면 정확한 답변을 드릴 수 있을 것 같아요!!현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.==================
-
해결됨한 번에 끝내는 자바스크립트: 바닐라 자바스크립트로 SPA 개발까지
CityList.js에서 api.js 파일의 API_URL이 렌더링이 안되는 오류가 있습니다!
세션 9. 여행지정보 최종프로젝트 작성 중...CityList 개발 13:25분에서 CityList.js를 작성한 후 localhost:3000을 새로고침해도 전혀 변화없이 빈 화면만 출력이 됩니다!api.js에서 API_URL로 전달받을 https://trip-wiki-api.vercel.app/ 에서 도시 정보 40개 정보가 없더라고요, 그래서 웹 화면에 아무것도 출력되지 않아서 문의드립니다! server.js 파일도 /*splat 로 변경해서 "start server" 노드 명령어로 터미널에서 출력되도록 수정 완료했지만, 홈페이지 이미지가 출력되지 않고 있습니다!const express = require("express"); const path = require("path"); const app = express(); const PORT = 3000; app.use(express.static(path.join(__dirname, ".."))); app.get("/*splat", (req, res) => { res.sendFile(path.join(__dirname, "..", "index.html")); }); app.listen(PORT, () => { console.log("START SEVER"); }); export default function CityList({ $app, initialState }) { this.state = initialState; this.$target = document.createElement("div"); this.$target.className = "city-list"; $app.appendChild(this.$target); this.template = () => { let temp = `<div class="city-items-container">`; if (this.state) { this.state.cities.forEach((elm) => { temp += ` <div class="city-item" id=${elm.id}> <img src=${elm.image}></img> <div class="city-item-info">${elm.city}, ${elm.country}</div> <div class="city-item-score">⭐ ${elm.total}</div> </div> `; }); temp += `</div>`; } return temp; }; this.render = () => { this.$target.innerHTML = this.template(); }; this.setState = (newState) => { this.state = newState; this.render(); }; this.render(); }
-
해결됨언리얼 엔진 5 핵심 용어와 구조, 단숨에 이해하기!
C++과 에디터 로직 기능의 사용처 구분
영상 참조 [2:07]실무에서 게임을 개발할 때 C++을 안쓰고 에디터 기능인 Behavior Tree, Blackboard만으로 로직을 만들어야 하는 경우가 있을까요?두 방식을 각각 어떤 로직에 쓰는 것이 적합할 지 궁금합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
기출3회 작업형2
예측 단계에서 다음과 같은 오류가 발생했는데, 이유가 뭘까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
[기출3회 작업형1 3번]
ValueError Traceback (most recent call last) /usr/local/lib/python3.11/dist-packages/pandas/core/indexes/range.py in get_loc(self, key) 412 try: --> 413 return self._range.index(new_key) 414 except ValueError as err: ValueError: 3 is not in range The above exception was the direct cause of the following exception: KeyError Traceback (most recent call last) 3 frames/usr/local/lib/python3.11/dist-packages/pandas/core/indexes/range.py in get_loc(self, key) 413 return self._range.index(new_key) 414 except ValueError as err: --> 415 raise KeyError(key) from err 416 if isinstance(key, Hashable): 417 raise KeyError(key) KeyError: 3기출3회 작업형1 3번 문제를 풀 때, 맨 처음 데이터를 다시 실행시켜주지 않으면 동일한 코드라도 이런 오류가 뜹니다. 매번 처음 데이터를 실행해줘야하나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
9회 실기 1
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요방법 2인 pivot table을 만든 이후에 기존 방법 1의 grouped['차이'] 항목을 만들어 처리하였는데요.방법 2에서는 grouped라는 변수에 pivot table 결과를 안넣으셨는데, pivot table 결과가 어떻게 grouped에 들어간걸까요??
-
미해결Airflow 마스터 클래스
27. Bash Operators with macros 질문 (START_DATE, END_DATE)
airflow 3.* 를 기준으로 data_interval_start 나 data_interval_end 모두 같은 시간이 나와서 기존 gitHub 코드로 실습하니 기대했던 것과는 다른 log 결과가 반환 되었습니다.이럴 경우 어떻게 코드를 수정해야 하는지 가르쳐주실 수 있을까요?( 혹시 섹션 19에서 다루셨다면 미리 사과드립니다 .. )
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
useEffect와 useMemo 차이가 이해가 안돼요
useEffect와 useMemo 둘 다 의존성 배열이 바뀔때만 실행되도록 하는 훅으로 알고 있는데, 정확한 차이가 와닿지 않습니다..!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
2:00 질문
대응표본검정 코딩할때, alternative='less'를 넣었는데 뮤d가 < 0 인 대립가설을 기준으로 잡으신 이유가 있을까요 ??귀무가설을 기준으로 뮤d >= 0 으로 잡으면 before가 after보다 크게 나와서 less로 안해도 된다는 의문점이 있습니다
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
소문제 3번의 equal_var 값이 True임을 어떻게 확인하나요?
두 그룹이 등분산이라고 문제에 나와있지 않은 것 같은데 미리 구한 것인지 궁금합니다. 감사합니다.
-
미해결베개 투자법: 자면서 돈 버는 AI 주식 자동 매매 머신
MCP - Cursor 등록하는 이유
안녕하세요.MCP 서버를 Cursor에 등록하여 개발 연동하는 이유가 뭔가요?? 이미 Chat Prompt에서 디렉터리 내에 접근이 가능한 것으로 보여지는데 추가적으로 연동하는 이유가 궁금합니다. 강의 시점과 버전 차이가 있어서인지 코드도 다소 다른데다, 강사님 화면처럼 Filesystem은 활성화가 안 되네요..
-
미해결Slack 클론 코딩[실시간 채팅 with React]
함수 정의 패턴
react 개발하다보면 대부분의 파일에서 export default 하나만을 하게 되는데요. 아래 2가지 패턴 중 2번을 주로 사용하시는 것 같아서 이유가 있으신지 궁금합니다export default function ABC()const ABC = () => {}export default ABC; 저는 1번을 강하게 선호하고 왜 굳이 하나의 함수에 대한 정의를 둘로 나눠 거리를 벌리는지 이해가 안 가는데요, 코딩 고수(?)들이 주로 2번 패턴을 사용하셔서 이유가 궁금합니다
-
미해결
Reiple 웹페이지 제작에 관해서
Repit에서 웹페이즈를 만들었는데 문의하기가 있어요 문의받은 내용은 어디서 확인가능한가요?
-
해결됨[Rookiss University] UE5 Lyra 클론 코딩 (Haker)
AssetManager의 함수들 언제 쓰나요?
UHakAssetManager::Get() UHakAssetManager::SynchronousLoadAsset(const FSoftObjectPath& AssetPath) UHakAssetManager::AddLoadedAsset(const UObject* Asset)이거 함수들 override도 없는데 쓰긴 하는건가 싶어서 중단점 찍고 디버그 돌려봤는데 뭐가 없네요. 아직 초반이라 그런걸까요?
-
미해결죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
외부 API 테스트
kill9형 오매불망 테스트만 기다리고있었는데 업로드 되서 너무 좋다. 근데 외부 API 호출이 Step 안에 있는 경우 어떻게 테스트하면 좋을지 알려 줄 수 있을까?호출이 가능한 상황과 호출이 불가능한 상황 2가지 경우에 대해서 설명부탁해
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
stateful 위젯의 라이프사이클 관련 질문입니다.
안녕하세요. 부모 위젯으로부터 새로운 데이터를 받아 StatefulWidget이 재빌드될 때, 기존 State 객체가 유지된다면 Constructor 실행 후에 어떤 함수가 호출될까요? 위 문제에 대한 정답이 didUpdateWidget인데, 부모 위젯으로부터 color를 다시 받는 예제에서의 실행 결과가 아래 사진과 같이 생성 이후 바로 빌드로 넘어가는 이유가 궁금합니다.감사합니다.