묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
초초보를 위한 전처리 인코딩 가이드 너무 너무 감사합니다.
시험 앞두고 이런 뽀나스 영상이 정말 큰 힘이 됩니다!! ^^ 감사합니다. 작업형 3유형 ...도 필승전략.. 알려주심 너무나 감사하겠습니다. ㅜㅜ 더 많은 것을 원해서 죄송함돠 ㅠ
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
훈훈한 자바스크립트_eventListener를 활용한 태그 삭제
아래코드를 입력했는데, newLi dblclick했을때 삭제처리가 되지 않습니다. 문제가 뭘까요? const todoInput = document.querySelector("#todo-input"); const createTodo = function () { const todoList = document.querySelector("#todo-list"); //List자체를 받아오기 const newLi = document.createElement("li"); const newSpan = document.createElement("span"); /** * pseudo: (addEventListner) * 할일이 완료가 된지 안된 일인지 알 수가 없음 -> EventListner를 추가 * 버튼태그와 함께 온클릭 이벤트를 생성 */ //02-addEventListner파트: 버튼태그 추가 및 Event속성(onClick 추가) const newBtn = document.createElement("button"); newBtn.addEventListener("click", () => { //클릭을 했을 때 어떻게 할지에 대한 내용을 익명 함수로 지정 newLi.classList.toggle("complete"); //버튼을 눌렀을 때 새로운 클래스를 추가해준다 }); //02-addEventListner: 당연히 삭제도 되어야할텐데... (더블클릭 -> 삭제) newLi.addEventListener("dblclick", () => { newLi.remove(); }); newSpan.textContent = todoInput.value; newLi.append(newBtn); newLi.appendChild(newSpan); todoList.appendChild(newLi); //왜 굳이 span태그를 만들고 span 태그를 List에 추가한 건지는 알 수가 없으나.. 나중에 알려주겠지.. todoInput.value = " "; console.log(newLi); }; //여기까지만 했을때는 기능상 부족한 부분이 상당히 많음 const keyCodeCheck = function () { if (window.event.keyCode === 13 && todoInput.value) { //만약 키보드값에 대해 enter값이 눌리면 -> createTodo(); } };
-
해결됨배달앱은 어떻게 내 주변의 맛집을 찾을까?
테스트를 실행했을 때 RuntimeError: Event loop is closed 에러가 발생합니다.
질문하실 땐 https://gist.github.com/ 를 사용하시면 코드를 쉽게 공유할 수 있습니다!원하고자 하는 것실제 작성한 코드실행한 결과원하는 결과 이렇게 4가지를 꼭 적어주셔야 도와드릴 수 있습니다 :) test_shop_insert_one() 함수를 추가하여 테스트를 실행했을 때 RuntimeError: Event loop is closed 에러가 발생하여 테스트가 실패합니다. app/tests/entities/collections/shop/test_shop_collection.py F [100%] ============================================================================= FAILURES ============================================================================= _______________________________________________________________________ test_shop_insert_one _______________________________________________________________________ @pytest.mark.asyncio async def test_shop_insert_one() -> None: # Given name = "치킨집" category_codes = [CategoryCode.CHICKEN] delivery_areas = [ ShopDeliveryAreaSubDocument( poly=GeoJsonPolygon(coordinates=[[[0, 0], [0, 10], [10, 10], [10, 0], [0, 0]]]), ) ] # When > shop = await ShopCollection.insert_one(name, category_codes, delivery_areas) app/tests/entities/collections/shop/test_shop_collection.py:21: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ app/entities/collections/shop/shop_collection.py:20: in insert_one result = await cls._collection.insert_one( /PATH/OF/POETRY/CACHE/lib/python3.11/site-packages/motor/metaprogramming.py:73: in method return framework.run_on_executor( /PATH/OF/POETRY/CACHE/lib/python3.11/site-packages/motor/frameworks/asyncio/__init__.py:85: in run_on_executor return loop.run_in_executor(_EXECUTOR, functools.partial(fn, *args, **kwargs)) /PATH/OF/PYTHON/lib/python3.11/asyncio/base_events.py:816: in run_in_executor self._check_closed() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <_UnixSelectorEventLoop running=False closed=True debug=False> def _check_closed(self): if self._closed: > raise RuntimeError('Event loop is closed') E RuntimeError: Event loop is closed /PATH/OF/PYTHON/lib/python3.11/asyncio/base_events.py:519: RuntimeError ===================================================================== short test summary info ====================================================================== FAILED app/tests/entities/collections/shop/test_shop_collection.py::test_shop_insert_one - RuntimeError: Event loop is closed =================================================================== 1 failed, 1 passed in 0.55s ====================================================================에러로그는 위와 같습니다. --async-mode 를 test로 변경해보면 저 단계까지 가기 전에 에러가 발생하고@pytest.mark.asyncio 어노테이션을 추가해줘도 결과는 같습니다.poetry 를 이용한 환경 구성이 처음이라 해당 지식이 많이 부족하여 이 문제를 어떻게 해결해야하는지 잘 모르겠습니다. 파이썬 버전은 3.11.3poetry 버전은 1.4.2mongodb 버전은 6.0.11 입니다. [tool.poetry.dependencies] fastapi = "^0.95.2" gunicorn = "^20.1.0" httpx = "^0.24.1" motor = "^3.1.2" orjson = "^3.8.14" python = "^3.11" uvicorn = "^0.22.0" [tool.poetry.group.dev.dependencies] black = {extras = ["d"], version = "^23.3.0"} coverage = "^7.2.3" isort = "^5.12.0" mypy = "^1.3.0" pytest = "^7.3.1" pytest-asyncio = "^0.21.0" toml-sort = "^0.23.0" 작성한 코드의 차이점은 db가 로컬에 있지 않고 외부에 있는 관계로def create_mongo_url(host: str = "localhost", port: int = 27017) -> str: return f"mongodb://{host}:{port}" DATABASE_NAME = os.environ.get("MONGO_DATABASE", "yorigin") HOST = os.environ.get("MONGO_HOST", "localhost") PORT = os.environ.get("MONGO_PORT", 27017) client = AsyncIOMotorClient(create_mongo_url(HOST, int(PORT)))이와 같은 코드를 추가하여 지정된 host의 mongodb와 통신할 수 있도록 한 것이 전부입니다. 확인 부탁드릴 수 있을까요?
-
해결됨[Bloc 응용] 실전 앱 만들기 (책 리뷰 앱) : SNS 로그인, Firebase 적용, Bloc 상태 관리, GoRouter
즐겨찾기 기능 질문 요청드립니다..
페이지 처음진입시 즐겨찾기 클릭하면정상적으로 별이 on 으로 바뀌게 되는데" 한번끄고 다시 키면 on으로 바뀌지않고 off 형태의 아이콘이되어있고 다시 뒤로갔다가 들어오면 정상적으로 on 으로 바껴있습니다 !!= 파이어베이스 db 상에는 데이터가 들어오지만상태가 바뀌지않아서 off 상태일때 10번누르면10번이 다 firebase db에 insert 되는현상이 나타납니다 ㅠㅠprofilePageactions: [ GestureDetector( onTap: () { var myUid = context.read<AuthenticationCubit>().state.user!.uid; context.read<UserProfileCubit>().followToggleEvent(myUid!); }, child: Padding( padding: const EdgeInsets.only(right: 20), child: BlocBuilder<UserProfileCubit,UserProfileState>( builder: (context,state) { var myUid = context.read<AuthenticationCubit>().state.user!.uid; var isFollowing = state.userModel?.followers?.contains(myUid) ?? false; return SvgPicture.asset(isFollowing ? 'assets/svg/icons/icon_follow_on.svg' :'assets/svg/icons/icon_follow_off.svg'); } ), ),user profile cubit void followToggleEvent(String myUid) async { if (state.userModel!.followers != null && state.userModel!.followers!.contains(myUid)) { // 즐겨찾기 취소 언팔 var result = await userRepository.followEvent(false,state.userModel!.uid!,myUid); if (result) { await _unfollow(myUid); } } else { // 즐겨 찾기 하기 var result = await userRepository.followEvent(true,state.userModel!.uid!, myUid); if (result) { await _follow(myUid); } } } _unfollow(myUid) async { emit( await state.copyWith( userModel: state.userModel!.copyWith( followers: List.unmodifiable( [...state.userModel!.followers!.where((targetUid) => targetUid != myUid)], ), ), ), ); } _follow(myUid) async { print(state.userModel!.followers); if (state.userModel!.followers == null) { // 최초 팔로워 대상 emit( await state.copyWith( userModel: state.userModel!.copyWith( followers: List.unmodifiable( [myUid], ), ), ), ); } else { // 다른사람이 이미 팔로워 한사람 emit( await state.copyWith( userModel: state.userModel!.copyWith( followers: List.unmodifiable( [ ...state.userModel!.followers!, uid ], ), ), ), ); } } }user-repositoryFuture<bool> followEvent(bool isFollow,String targetUid, String myUid) async { try { // 2 가지 업데이트 ( 트랜잭션 실행 필요 ) final batch = db.batch(); // Type1 . 상대방 팔로워에 내가 들어가는건다.. var targetUserDoc = await db.collection("users").where("uid", isEqualTo: targetUid).get(); UserModel targetUserInfo = UserModel.fromJson(targetUserDoc.docs.first.data()); var followers = targetUserInfo.followers ?? []; // 최초사람 if (isFollow) { followers.add(myUid); } else { followers.remove(myUid); } var targetRef = db.collection("users").doc(targetUserDoc.docs.first.id); batch.update(targetRef, {'followers': followers}); // Type1 . 내 팔로워에 상대방이 들어간다... var myUserDoc = await db.collection("users").where("uid", isEqualTo: myUid).get(); UserModel myUserInfo = UserModel.fromJson(myUserDoc.docs.first.data()); var followings = myUserInfo.followings ?? []; if (isFollow) { followings.add(targetUid); } else { followings.remove(targetUid); } var MyRef = db.collection("users").doc(myUserDoc.docs.first.id); batch.update(MyRef, {'followings': followings}); await batch.commit(); return true; } catch (e) { return false; } }
-
해결됨이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
회사에서도 헤더 파일을 수정할 때 엔진을 종료하고 진행하는지 궁금합니다!
안녕하세요. 양질의 강의 정말 잘 듣고 있습니다!언리얼 C++ 과 관련하여 이 강의 만큼 이해하기 좋고, 상세하게 설명해주는 수업이 없다고 생각합니다..!!! 다름이 아니라 '설계의 변경을 위해 헤더 파일을 수정할 땐 엔진을 끈다' 라는 것을 이 강좌에서 처음 알게 되었는데실제로 라이브 서비스 중인 팀에서도 이와 같은 방식으로작업을 하는지 정말 궁금합니다! 유니티 팀의 경우 라이브 서비스 한지 3~4년 쯤 되면 전처리 할 리소스나 플러그인 같은 것도 덕지덕지 붙다보니 엔진을 한 번 껐다 켜는데 10~15분 정도 걸려서 '코드 추가/삭제를 위해 껐다 켠다' 라는 생각이 잘 안 드는데 언리얼 엔진은 프로젝트 폴더 사이즈가 수 십 ~ 백단위 GB 가 넘어가도 껐다 켜면서 작업을 하는데 지장이 없는지 궁금합니다. 물론, 클래스 추가/삭제나 헤더 파일 수정은 빈번하게 일어나는 작업은 아니지만 그럼에도 불구하고 무언가를 수정하는 작업에 있어서 엔진을 껐다 켰다 해야하는 게 꽤나 번거로울 것 같아 보여서요. 😁
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
실험환경 메모장에서 ctrl+f 제컴퓨터에서는 됩니다.
dir 기능 활용 해서 메모장에 담고 ctrl+f 찾아 보니 검색이 됩니다.
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
스프링 이니셜라이저 사용 제보입니다
며칠 전부터 자바 11기반의 2.7.X 버전이 이니셜라이저에 안 뜨길래공식 사이트를 찾아보니 11월 24일 부로 지원이 종료되었다고 뜨네요 이제는 강의 내용처럼 자바 11을 쓰려면build.gradle에 구버전 의존성들을 직접 작성해야 하는 건가요?? 일단은 자바 17, 스프링부트 3.2.0으로 진행 중인 상태입니다
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강연장문의드려요
안녕하세요, 다름이 아니라 수강기간 연장 문의드립니다...수강기간이 있는걸 인지 하지 못하여남은 시간내에 다 듣지못할 것 같아서 요청드립니다..강의 너무 잘듣고있습니다 남은 강의 열심히 들어서 자격증 꼭 취득하도록 노력하겠습니다.
-
해결됨독하게 시작하는 C 프로그래밍
static 변수에 관해서 질문이 있습니다.
int TestFunc(){ static int a = 10; ++a; return a; } int main(){ printf("%d\n",TestFunc()); printf("%d\n",TestFunc()); printf("%d\n",TestFunc()); }위 예제에서의 질문입니다. 1. Compile시에 정적영역이 결정되는 건가요?질문이유 : a의 주소에 코드가 실행되지 않았음에도 이미 10이라는 값이 들어가있어서 질문을 드립니다. 2. TestFunc()이 실행될 때 static int a = 10가 매번 평가되는게 아닌건가요? 질문이유 : 제 생각으로는 정적영역에 있더라도, 할당 연산자 때문에 10을 매번 넣어서, 출력값이 11 ,11 ,11이 될거라고 생각했습니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 2유형 코드
col_id = ['id'] col_num = ['Age','Work_Experience','Family_Size'] col_cat = ['Gender','Ever_Married','Graduated','Profession','Spending_Score','Var_1'] col_y = ['Segmentation'] from sklearn.preprocessing import StandardScaler scaler = StandardScaler() train[col_num] = scaler.fit_transform(train[col_num]) test[col_num] = scaler.transform(test[col_num]) from sklearn.preprocessing import LabelEncoder le = LabelEncoder() for col in col_cat: train[col] = le.fit_transform(train[col]) test[col] = le.transform(test[col]) from sklearn.model_selection import train_test_split X_tr, X_val, y_tr, y_val = train_test_split(train[col_cat + col_num], train['Segmentation'], test_size = 0.3, random_state = 123 )수업내용을 제가 편한 방식으로 조금 바꿔봤는데 이런 식으로 스케일링이랑 인코딩 진행해도 문제없을까요?아래 내용으로 계속 진행했을때 결과는 나오는데 제대로 한게 맞는지 잘 모르겠습니다...from sklearn.ensemble import RandomForestClassifier RF = RandomForestClassifier(n_estimators=300, max_depth =9 ,random_state = 123) RF.fit(X_tr, y_tr) pred = RF.predict(X_val) import lightgbm as lgb lgb = lgb.LGBMClassifier(learning_rate = 0.02, n_estimators = 400, max_depth = 5, random_state=123) lgb.fit(X_tr, y_tr) pred = lgb.predict(X_val) from sklearn.metrics import f1_score print(f1_score(y_val, pred, average = 'macro')) pred = RF.predict(test[col_cat + col_num]) pred submit = pd.DataFrame({ 'ID': test.ID, 'Segmentation': pred }) submit.to_csv("result.csv", index=False)
-
해결됨데이터 분석 SQL Fundamentals
MSSQL
안녕하세요,MSSQL 를 사용하는 경우도만들어주신 두 SQL 강의가 도움이 될까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
다중회귀에서 잔차를 resid로 구하셨는데 ..
단순선형회귀 잔차도 역시(model.resid**2).mean() 로 구하면 되나요 ?
-
미해결따라하며 배우는 리액트 네이티브 기초
윈도우로 개발시 시뮬레이터를 사용할 방법이 없을까요 ?
안녕하세요 저는 윈도우로 학습중이고, 아이폰의 expo go 어플을 사용해 코드 작성결과를 확인하고 있습니다.시뮬레이터는 반드시 맥OS에서만 사용 가능한가요 ?만약 맥 OS에서만 사용이 가능하다면 윈도우에서 ios 화면을 확인할 방법이 없을까요 ?expo go 어플 사용시 연결이 뒤로가기 버튼이 없는 것 같은데 매번 qr코드를 사용해 로드해야하나요 ?확인 부탁드립니다.
-
해결됨스프링 핵심 원리 - 기본편
isEqulaTo / isSameAs
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]isEqulaTo는 값을 비교 / isSameAs는 참조(주소)값을 비교하는 걸로 알고 있습니다. 허나, 아래 질문게시글의 답변과 같이 객체의 경우, isEqulaTo는 isSameAs와 같이 참조를 비교하는 것을 알 수가 있습니다.그렇다면 아래 예시와 같이 String도 객체인데 왜 이 경우는 참조가 아닌 값을 비교하나요? (이 경우 테스트가 통과됩니다!)String a = new String("aa"); String b = new String("aa"); assertThat(a).isEqualTo(b);
-
해결됨스프링 핵심 원리 - 기본편
static관련 질문드립니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]"static method에 @Bean을 사용하게 되면 싱글톤 보장을 위한 지원을 받지 못한다" 그 이유에 대해서 자세히 알 수 있을까요? 비슷한 질문글들을 봐도 이유에 대한 정확한 설명은 없는 것 같아서요. 제가 찾아본 바로는 bean의 라이프사이클관리, 의존성 주입, 프록시 등등 있는데 무엇이 정확한 이유인지 잘 모르겠어서 질문남깁니다!!
-
미해결Vue.js 시작하기 - Age of Vue.js
.vue파일 열기
localhost:8080으로 들어갔는데 이런 페이지 밖에 안 뜨네요.. 제가 .vue파일에 만든것은 안뜨고 어떻게 해야 할까요?ㅠㅠ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
예시문제 작업형2(신버젼)
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요레이블 인코딩을 사용하면 잘 작동하는데 원핫 인코딩을 사용하면 에러가 뜨네요 혹시 이유가 컬럼갯수가 너무 많아져서 그런거일까요?ValueError: X has 72 features, but DecisionTreeClassifier is expecting 73 features as input.
-
미해결[입문자를 위한 UE5] Part3. 언리얼 엔진 3D 게임 개발 입문
애니메이션 커브 root yaw offset clamping
애니메이션 커브 강의에서 한가지 의문이 생겨 질문드립니다.root yaw offset을 clamp 시켜줄 때 offset을 정해 줄 때 같이 clamp를 한 후 set을 해주는게 아니라 굳이 순서를 시퀀스로 나눠서 clamping을 해주는 이유가 있을까요?질 좋은 강의 덕에 언리얼 정말 쉽고 재밌게 배우고 있습니다. 감사합니다.
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
도커에서 NginX 이미지 사용시 CMD로 nginx start가 없는 이유
[섹션 6 : 운영환경 도커 이미지를 위한 Dockerfile 작성하기]에서 도커에서 NginX 이미지 실행시, CMD로 nginx start를 Dockerfile에 작성하지 않았는데요.리액트의 경우 Dockerfile에서 CMD 로 'npm run start' 를 사용 했었는데, nginx의 경우에는 CMD 없이 도커를 실행하기만 하면 자동시작이 맞는건지 궁금합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
섹션5 작업형2 모의문제1
제출하기 전에 출려해 보니 값이 이렇게 나왔는데 이렇게 나와도 괜찮은 걸까요?