묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨코틀린 코루틴 완전 정복
실무에서 runBlocking 와 CoroutineScope 실무 사용에 대해
실무에서 코루틴을 사용해야할 때runBlocking 으로 코루틴 영역을 생성해야 할지 CoroutineScope로 생성해야 할지 또 어떻게 코루틴을 활용해야할지 감이 살짝 오시 않습니다.물론 호출부의 스레드를 블럭킹해야 한다면 runBlocking 일 것 같지만 보통 이렇게 사용한다라는 지향점이 궁금합니다. 실무에서 사용하기 위해 추천할만한 깃헙 레파지토리나 베스트프랙티스가 있을까요? - 학습 관련 질문을 남겨주세요. 질문을 상세히 작성하면 더 좋습니다.- 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결
vscode 관련 오류 한 번만 도와주세요 ㅠㅠ
맥에서 터미널 사용중이고 vscode에서 모듈 설치해서 여러가지 해보려고했는데 모듈에서부터 막혔습니다 ㅠㅠ아래는 제가 혼자 해결하려고 시도한 것들입니다vscode에서 가상환경 다시 설정하고 파이썬 버전 확인을 완료했습니다homebrew와 pip업데이트하고 pygame 정상 설치까지 확인했습니다혹시몰라서 뒤에 --pre도 넣어봤지만 그대로였습니다계속 이결과만 나옵니다 ㅠㅠ 도움 부탁드립니다 ㅠㅠ
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-c 코드 질문이 있습니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요! 큰돌님 다름이 아니라 해당문제를 잘 못 풀겠어서 큰돌님 풀이를 봤는데요저는 맨처음에 문제를 풀때 좌표를 벗어나는지와 구멍인지를 for문 안에서 체크했는데요for(int i = 0; i < 4; i++){ // 해당 좌표만큼 이동한다 int ny = y + dy[i] * value; int nx = x + dx[i] * value; if(!in(y, x) || b[y][x] == 'H') continue; ret= max(ret, down(ny, nx) + 1); }이렇게 제출하니까 틀렸다고 떴습니다. 왜 for문 안에 넣으면 안되는 걸까요?아래는 제출한 전체 코드입니다.#include <bits/stdc++.h> using namespace std; int t,a,d[54][54]; string s; char b[54][54]; bool check[54][54]; const int dy[4] = {-1, 0, 1, 0}; const int dx[4] = {0, 1, 0, -1}; // 좌표 내에 포함하는 지 체크한다 bool in(int aa,int bb){ return(1<=aa && aa<=t && 1<=bb && bb<=a); } int down(int y,int x){ // 이미 갔던 곳이라면 순회를 하는 코드이니까 -1을 출력하고 main함수 종료 if(check[y][x]){ cout << -1 << "\n"; exit(0); } //현재 좌표로 이동한 횟수 -> 이미 해당 위치에 숫자가 있다면 int &ret = d[y][x]; if(ret) return ret; check[y][x] = 1; int value = (int)b[y][x] - '0'; for(int i = 0; i < 4; i++){ // 해당 좌표만큼 이동한다 int ny = y + dy[i] * value; int nx = x + dx[i] * value; // 좌표를 벗어나거나 구멍이면 return 0 -> 갈 수 없음 if(!in(y, x) || b[y][x] == 'H') continue; ret= max(ret, down(ny, nx) + 1); } // 원복을 해준다 check[y][x] = 0; return ret; } int main(){ cin >> t >> a; for(int i = 1; i <= t; i++){ cin >> s; for(int j = 1; j <= a; j++){ b[i][j] = s[j - 1]; } } cout << down(1, 1) << "\n"; }
-
해결됨[리뉴얼] 맛집 지도앱 만들기 (React Native & NestJS)
로그아웃 코드 관련해서 질문드립니다
function useLogout(mutationOptions?: UseMutationCustomOptions) { return useMutation({ mutationFn: logout, onSuccess: () => { console.log("before storage empty: ", getEncryptStorage(storageKeys.ACCESS_TOKEN)); removeHeader('Authorization'); removeEncryptStorage(storageKeys.REFRESH_TOKEN); queryClient.resetQueries({queryKey: [queryKeys.AUTH]}); console.log("storage empty: ", getEncryptStorage(storageKeys.ACCESS_TOKEN)); }, ...mutationOptions, }); } 이게 강사님께서 쓰신 로그아웃 코드인데 removeEncryptStorage를 비동기 함수로 구현하셨었습니다.제가 로그아웃 버튼을 누르는데 'localhost:제가 만든 서버 포트':auth/logout 이런식으로 클라이언트에 요청했을 때로그를 살펴보니깐 LOG Access token after remove: {"_h": 0, "_i": 0, "_j": null, "_k": null}LOG Access token removed: falseLOG isLogIn: false //이건 Navigation/root/RootNavigator.tsx에 isLogin값이 false인지 true인지 확인하기 위해 콘솔로그 찍음이런식으로 출력되었었습니다.로그아웃 직후에 바로 로그인이 된 상태로 작동했습니다. removeEncryptStorage는 비동기 함수이기 때문에 await 없이 호출되면 로그아웃 관련된 비동기 작업이 완려되기 전에onSuccess내의 코드들이 실행된거 같습니다.function useLogout(mutationOptions?: UseMutationCustomOptions) { return useMutation({ mutationFn: async () => { removeHeader('Authorization'); await removeEncryptStorage(storageKeys.REFRESH_TOKEN); }, onSettled: () => { // 관련 쿼리 무효화하여 캐시 초기화 queryClient.invalidateQueries({queryKey: [queryKeys.AUTH]}); }, ...mutationOptions }); } 그래서 이런식으로 await async로 토큰 제거 작업이 완료된 후 까지 기다리게 만들어서 하니깐 로그아웃이 잘 작동되고서버 내에 db랑 연결된 users 테이블 내의 refresh_token도 사라진걸 확인할 수 있었습니다. 제가 혹시 놓친 부분이 있었는지 왜 이런 차이가 나는지 정확한 이유를 몰라서 질문 남깁니다.
-
해결됨김영한의 실전 자바 - 기본편
final 참조형 변수
[질문 내용]섹션9 final 변수와 참조 에서 final을 참조형 변수에 붙었을 때 참조 대상 자체를 다른 대상으로 변경하지 못한다는 점에서 이 참조형 변수는 싱글톤(singleton) 패턴이라고 동일시해도 되는 것인가요?
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
15:22에서 TopStudent 가 보이지 않는 문제가 있습니다.
출력로그까지 정상적으로 뜨는데, contents 폴더에서 TopStudent가 보이지 않습니다. TopStudent 가 나타나지 않는 이유가 궁금합니다.일단 코드를 강의코드와 비교하며 개인적으로 재검토를 하였는데, 제가 다시 놓친 무언가가 있는 것인지, 아니며ㅑㄴ 현재 버전에서는 보이지 않게 된 것인지 궁금합니다.DebugGame Editor로 실행하였으며, 출력로그 및 코드 내용은 다음과 같습니다.(출력로그)LogTemp: 저장할 파일 폴더 : ../../../../../../Users/qkrwo/Documents/Unreal Projects/UnrealSerialization/SavedLogTemp: 저장할 파일 전체 경로 : ../../../../../../Users/qkrwo/Documents/Unreal Projects/UnrealSerialization/Saved/RawData.binLogTemp: 변경할 파일 전체 경로 : C:/Users/qkrwo/Documents/Unreal Projects/UnrealSerialization/Saved/RawData.binLogTemp: [RawData] 이름 이득우 순번 16LogTemp: [ObjectData] 이름 이득우 순번 59LogTemp: [JsonData] 이름 이득우 순번 59LogTemp: 패키지가 성공적으로 저장되었습니다. (Student.h)// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#include "UObject/NoExportTypes.h"#include "Student.generated.h"/****/UCLASS()class UNREALSERIALIZATION_API UStudent : public UObject{GENERATED_BODY()public:UStudent();int32 GetOrder() const { return Order; }void SetOrder(int32 InOrder) { Order = InOrder; }const FString& GetName() const { return Name; }void SetName(const FString& InName) { Name = InName; }virtual void Serialize(FArchive& Ar) override;private:UPROPERTY()int32 Order;UPROPERTY()FString Name;};(Student.cpp)// Fill out your copyright notice in the Description page of Project Settings.#include "Student.h"UStudent::UStudent(){Order = -1;Name = TEXT("홍길동");}void UStudent::Serialize(FArchive& Ar){Super::Serialize(Ar); Ar << Name;Ar << Order;}(MyGameInstance.h)// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#include "Engine/GameInstance.h"#include "MyGameInstance.generated.h"struct FStudentData{FStudentData() {}FStudentData(int32 InOrder, const FString& InName) : Order(InOrder), Name(InName) {} friend FArchive& operator<<(FArchive& Ar, FStudentData& InStudentData){Ar << InStudentData.Order;Ar << InStudentData.Name;return Ar;}int32 Order = -1;FString Name = TEXT("홍길동");};/****/UCLASS()class UNREALSERIALIZATION_API UMyGameInstance : public UGameInstance{GENERATED_BODY()public:UMyGameInstance();virtual void Init() override;void SaveStudentPackage() const;private:static const FString PackageName;static const FString AssetName;UPROPERTY()TObjectPtr<class UStudent> StudentSrc;};(MyGameInstance.cpp)// Fill out your copyright notice in the Description page of Project Settings.#include "MyGameInstance.h"#include "Student.h"#include "JsonObjectConverter.h"#include "UObject/SavePackage.h"const FString UMyGameInstance::PackageName = TEXT("/Game/Student");const FString UMyGameInstance::AssetName = TEXT("TopStudent");void PrintStudentInfo(const UStudent* InStudent, const FString& InTag){UE_LOG(LogTemp, Log, TEXT("[%s] 이름 %s 순번 %d"), InTag, InStudent->GetName(), InStudent->GetOrder());}UMyGameInstance::UMyGameInstance(){}void UMyGameInstance::Init(){Super::Init();FStudentData RawDataSrc(16, TEXT("이득우"));const FString SavedDir = FPaths::Combine(FPlatformMisc::ProjectDir(), TEXT("Saved"));UE_LOG(LogTemp, Log, TEXT("저장할 파일 폴더 : %s"), *SavedDir);{const FString RawDataFileName(TEXT("RawData.bin"));FString RawDataAbsolutePath = FPaths::Combine(*SavedDir, *RawDataFileName);UE_LOG(LogTemp, Log, TEXT("저장할 파일 전체 경로 : %s"), *RawDataAbsolutePath);FPaths::MakeStandardFilename(RawDataAbsolutePath);UE_LOG(LogTemp, Log, TEXT("변경할 파일 전체 경로 : %s"), *RawDataAbsolutePath);FArchive* RawFileWriterAr = IFileManager::Get().CreateFileWriter(*RawDataAbsolutePath);if (nullptr != RawFileWriterAr){*RawFileWriterAr << RawDataSrc;RawFileWriterAr->Close();delete RawFileWriterAr;RawFileWriterAr = nullptr; }FStudentData RawDataDest;FArchive* RawFileReaderAr = IFileManager::Get().CreateFileReader(*RawDataAbsolutePath);if (nullptr != RawFileReaderAr){*RawFileReaderAr << RawDataDest;RawFileReaderAr->Close();delete RawFileReaderAr;RawFileReaderAr = nullptr;UE_LOG(LogTemp, Log, TEXT("[RawData] 이름 %s 순번 %d"), *RawDataDest.Name, RawDataDest.Order);}}StudentSrc = NewObject<UStudent>();StudentSrc->SetName(TEXT("이득우"));StudentSrc->SetOrder(59);{const FString ObjectDataFileName(TEXT("ObjectData.bin"));FString ObjectDataAbsolutePath = FPaths::Combine(*SavedDir, *ObjectDataFileName);FPaths::MakeStandardFilename(ObjectDataAbsolutePath);TArray<uint8> BufferArray;FMemoryWriter MemoryWriterAr(BufferArray);StudentSrc->Serialize(MemoryWriterAr);if (TUniquePtr<FArchive> FileWriterAr = TUniquePtr<FArchive>(IFileManager::Get().CreateFileWriter(*ObjectDataAbsolutePath))){*FileWriterAr << BufferArray;FileWriterAr->Close();}TArray<uint8> BufferArrayFromFile;if (TUniquePtr<FArchive> FileReaderAr = TUniquePtr<FArchive>(IFileManager::Get().CreateFileReader(*ObjectDataAbsolutePath))){*FileReaderAr << BufferArrayFromFile;FileReaderAr->Close();}FMemoryReader MemoryReaderAr(BufferArrayFromFile);UStudent* StudentDest = NewObject<UStudent>();StudentDest->Serialize(MemoryReaderAr);PrintStudentInfo(StudentDest, TEXT("ObjectData"));}{const FString JsonDataFileName(TEXT("StudentJsonData.txt"));FString JsonDataAbsolutePath = FPaths::Combine(*SavedDir, *JsonDataFileName);FPaths::MakeStandardFilename(JsonDataAbsolutePath);TSharedRef<FJsonObject> JsonObjectSrc = MakeShared<FJsonObject>();FJsonObjectConverter::UStructToJsonObject(StudentSrc->GetClass(), StudentSrc, JsonObjectSrc);FString JsonOutString;TSharedRef<TJsonWriter<TCHAR>> JsonWriterAr = TJsonWriterFactory<TCHAR>::Create(&JsonOutString);if (FJsonSerializer::Serialize(JsonObjectSrc, JsonWriterAr)){FFileHelper::SaveStringToFile(JsonOutString, *JsonDataAbsolutePath);}FString JsonInString;FFileHelper::LoadFileToString(JsonInString, *JsonDataAbsolutePath);TSharedRef<TJsonReader<TCHAR>> JsonReaderAr = TJsonReaderFactory<TCHAR>::Create(JsonInString); TSharedPtr<FJsonObject> JsonObjectDest;if (FJsonSerializer::Deserialize(JsonReaderAr, JsonObjectDest)){UStudent* JsonStudentDest = NewObject<UStudent>();if (FJsonObjectConverter::JsonObjectToUStruct(JsonObjectDest.ToSharedRef(), JsonStudentDest->GetClass(), JsonStudentDest)){PrintStudentInfo(JsonStudentDest, TEXT("JsonData"));}}} SaveStudentPackage();}void UMyGameInstance::SaveStudentPackage() const{UPackage* StudentPackage = CreatePackage(*PackageName);EObjectFlags ObjectFlag = RF_Public | RF_Standalone;UStudent* TopStudent = NewObject<UStudent>(StudentPackage, UStudent::StaticClass(), *AssetName, ObjectFlag);TopStudent->SetName(TEXT("이득우"));TopStudent->SetOrder(36);const int32 NumofSubs = 10;for (int32 ix = 1; ix <= NumofSubs; ++ix){FString SubObjectName = FString::Printf(TEXT("Student%d"), ix);UStudent* SubStudent = NewObject<UStudent>(TopStudent, UStudent::StaticClass(), *SubObjectName, ObjectFlag);SubStudent->SetName(FString::Printf(TEXT("학생%d"), ix));SubStudent->SetOrder(ix);}const FString PackageFileName = FPackageName::LongPackageNameToFilename(PackageName, FPackageName::GetAssetPackageExtension());//UE_LOG(LogTemp, Log, TEXT("PakageFileName : %s"), *PackageFileName);FSavePackageArgs SaveArgs;SaveArgs.TopLevelFlags = ObjectFlag; if (UPackage::SavePackage(StudentPackage, nullptr, *PackageFileName, SaveArgs)){UE_LOG(LogTemp, Log, TEXT("패키지가 성공적으로 저장되었습니다."));}}UnrealSerialization.Build.cs 에서PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "EnhancedInput", "Json", "JsonUtilities" });를 정상적으로 삽입하였습니다.
-
미해결
vagrant up 에러
vagrant up을 실행하면 vmware 실행을 실패했다고 나오는데 vmnet7만 빼고 실행이 되는데 어떻게 해야하나요..?(base) bomi@bomiui-MacBookPro k8s % vagrant upBringing machine 'cp-k8s-1.30.0' up with 'vmware_desktop' provider...Bringing machine 'w1-k8s-1.30.0' up with 'vmware_desktop' provider...Bringing machine 'w2-k8s-1.30.0' up with 'vmware_desktop' provider...Bringing machine 'w3-k8s-1.30.0' up with 'vmware_desktop' provider...==> cp-k8s-1.30.0: Checking if box 'sysnet4admin/Ubuntu-k8s' version '0.8.6' is up to date...==> cp-k8s-1.30.0: Verifying vmnet devices are healthy...The VMware "vmnet" devices are failing to start. The most commonreason for this is collisions with existing network services. Forexample, if a hostonly network space collides with another hostonlynetwork (such as with VirtualBox), it will fail to start. Likewise,if forwarded ports collide with other listening ports, it willfail to start. Vagrant does its best to fix these issues, but in some cases itcannot determine the root cause of these failures. Please verify you have no other colliding network services running.As a last resort, restarting your computer often fixes this issue.
-
미해결RAG 마스터: 기초부터 고급기법까지 (feat. LangChain)
임베딩 모델 실행 오류
가상환경에서 버전을 일치 시키고API키 환경변수로 설정했는데...openAI apiㅏkey 가 없다고 나옵니다.혹시 어느 부분에서 문제가 있을까요?
-
미해결
my sql work brench
안녕하세요 mysql work brench 다운로드 중 질문입니다.윈도우에서 mysql sever 9.1.0 버전 installer 설치했습니다.문제는 installer 설치 후 type and networking 단계에서 next 버튼이 비활성화 되어 있습니다.다른 설정으로 바꿔봐도 계속 비활성화 상태입니다.확인 부탁드립니다.
-
미해결자바 코딩테스트 - it 대기업 유제
송아지를 잡자
홀수 레벨만 본다고 했을 때 이전 홀수 레벨에서 방문한 노드를 이후 홀수 레벨에서는 왜 그냥 넘어가는 건가요?? 말씀하신 것처럼 송아지가 움직이니까 이전 홀수 레벨에서 만나지 않았더라도 이후 홀수 레벨에서 만날 수 있는 거 아닌가요??
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
여러 태그 제어하는 방법 강의 질문입니다
여러 태그 제어하는 방법 강의 질문입니다해당 강의에서 알려주신대로 gmarket 에서 작업하면 봇으로 인식해서진행이 안 됩니다.강의를 위해서 만드신 사이트 말고 실제 gmarket 같은 곳에서할 수 있는 방법을 알려주세요
-
미해결FreeRTOS 프로그래밍
질문있습니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. TASKMAN 에서 ioc파일에서 몇개의 입출력을 건들면 바로 테스크1만 실행이 됩니다이 코드가 추가되는거 같아서 수정했는데도 이러네요 ㅜㅜ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
host_name, name 삭제 이유
단순 데이터가 많다는 이유로 삭제를 해야하는 건가요?
-
해결됨김영한의 실전 자바 - 기본편
메소드 영역, 힙 영역
[질문 내용]섹션8. 자바 메모리 구조와 static 강의 1분 42초 쯤에 김영한 강사님께서 static영역에서 변수 데이터, 변수 선언해서 스태틱을 해버리면 힙 영역의 참조값을 참조할 수 있다고 그러셨는데,이 말인 즉슨, static 메소드에서 매개변수로 변수 데이터를 선언해서 그 매개변수를 통해 참조값을 참조할 수 있다고 얘기하신게 같은 의미인지 궁금해서 질문합니다.
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
강의를 mvc1 까지 듣고 작은 프로잭트를 하는중인데 고민있습니다!
영한님의 강의를 듣고 작은 프로잭트를 하고 있는데 기본적인 내용을 바탕으로 검색해 가면서 하고 있습니다 하는 도중에 하는 김에 조금 이쁘게 만들기 위해서 프론트 쪽 코드는 AI한테 물어보면서 하고 있습니다 아직은 프론트엔드는 모르기때문에 대부분의 코드를 복사 해서 사용중인데 괜찮을까요 ..?
-
해결됨프로그래밍 시작하기 : 도전! 45가지 파이썬 기초 문법 실습 (Inflearn Original)
random.choices random.saple 중복 유무
1. 질문하시기 전 유사한 질문이 있는지 검색을 먼저 부탁드려요!전체 소스코드를 올려주시면 답변을 빠르게 드릴 수 있어요!(글보다 빨라요)기초적인 질문은 이미 검색해보시면 사례가 많이 있어요!문법적인 궁금증은 먼저 구글 검색을 통해서 레퍼런스(메뉴얼)을 읽어보시고 해결하시면 실력 향상 100%너무 잦은 질문이나 강의와 관련 없는 질문은 가급적 자제 부탁드려요 ㅠ.ㅠ2. 답변이 다소 늦을 수도 있어요!일반적인 근무시간(9 TO 6) 안에는 답변을 드리도록 노력하고 있어요!문법적인 질문은 먼저 검색을 통해 해결해 보세요!정확하게 질문해주시면 정확한 답변을 받으실 수 있어요!늦더라도 꼭 응답은 드리고 있으니, 먼저 검색을 통해 해결해 보세요!random.sample(population, k, *, counts=None)Return a k length list of unique elements chosen from the population sequence. Used for random sampling without replacement. random.choices(population, weights=None, *, cum_weights=None, k=1)Return a k sized list of elements chosen from the population with replacement. python 공식 문서에는 sample 함수가 중복 없이 생성한다고 적혀 있는 것 같은데, 강의 자료나 강의 내에서는 choices 함수가 중복 없이 생성한다고 적혀 있어서 문의 드립니다
-
미해결장래쌤과 함께하는 쉽고 재미있는 SQL 이야기
array_agg 배열 해제
안녕하세요 array_agg 처리해서 여러 값이 묶인 배열 형태로된 컬럼에 있는 값을다시 꺼내는 방법이 있을까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
정적리소스의 클래스패스 질문
정적리소스에 대한 동작원리와클래스패스에 대한 개념이 많이 어렵게 느껴집니다.강사님께서 다른 강의에서 가르처주는 개념인지 궁금합니다.
-
미해결
김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성 강의 재생이 되지 않습니다. 확인 부탁드립니다.
김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성강의 재생이 되지 않습니다. 확인 부탁드립니다.
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
KeyError: "['name', 'host_name', 'last_review', 'host_id'] not found in axis"
아래의 코드를 입력하면 다음과 같은 에러가 발생합니다 KeyError: "['name', 'host_name', 'last_review', 'host_id'] not found in axis"왜 이런 건가요?ㅠㅠcols = ['name','host_name','last_review','host_id'] print(train.shape) train = train.drop(cols, axis=1) test = test.drop(cols, axis=1) print(train.shape)