묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결CUDA 프로그래밍 (3) - C/C++/GPU 병렬 컴퓨팅 - 메모리 구조
pitch값에 따른 alignement boundary(size) 질문
안녕하세요, 선생님의 좋은 강의 덕분에 잘 공부하고 있습니다.강의 내용 복기 중에 한가지 의문이 생겨 질문 남깁니다.강의 17-8 matrix addition, pitched의 4분 07초 부분에서 device pitch (dev_pitch) 값이 40448 byte로 나온 것을 확인할 수 있고, 이어서 이 경우에 CUDA GPU 메모리 alignment boundary가 256 byte라고 설명 주셨습니다.여기서, 만약 alignment boundary가 256 byte 라면 device pitch 값은 40448 byte가 아닌 40192 byte 가 나와야 하지 않는지 의문이 들었습니다. 40192 byte가 40000 byte(10000개 elements) 에서 가장 가까운 256의 배수임과 동시에 40000 byte를 모두 커버할 수 있다는 근거로 이렇게 생각을 했습니다.그래서 alignment boundary 값을 512 byte로 계산을 해보니, 40448 byte가 40000 byte로부터 가장 가까운 512 배수로 계산이 되는데요. 이 경우에, 어떤 값이 맞는지 확신이 서지 않아 질문 글을 작성하게 되었습니다.제가 사용한 계산식은 pitch = ceil(row_size_in_byte / alignment_boundary_in_byte) * alignment_boundary_in_byte 입니다. 제가 아직 공부하는 단계이고, 이해가 부족했을 가능성이 큽니다. 답변에 소중한 시간 내어주시면 정말 감사드립니다. 다시 한번 멋진 강의 만들어주셔서 감사합니다.
-
미해결스프링 시큐리티 OAuth2
인증과정 질문입니다.
이전 챕터중 OAuth2Login api를 사용했을때는 인가서버로부터 accessToken을 받은후 인증처리를 하기 위해서 다시 인가서버에 userinfo endpoint로 요청을 보내서 유저정보를 가져오고 이 정보를 바탕으로 OAuth2User 객체를 만들어서 인증객체를 만들고 인증과정을 완료했습니다. 근데 지금 ResouceServer api를 사용했을때는 accessToken, 즉 jwtToken 만으로도 인증객체를 만들고 인증처리를 완료하는데 그러면 이전에는 accessToken을 받고 왜 이것만으로 인증처리를 완료하지 않은건가요?
-
미해결MERN STACK 커뮤니티 : 시작부터 배포까지 알려주는 React
No routes matched location Error Component Stack error 질문입니다.
질문 있어서 남깁니다.메인페이지에서 Link를 타고 upload, list 들어가서 화면이 로드 돼야하는데 돼지 않고 하얀바탕으로 돼면서 Error표시 없이 No routes matched location "/list" Error Component Stack가 표시 됍니다. 어떤문제이고 해결 방법이 무엇인지 궁금합니다.Ps. 질문이 이해 안가실것 같아서 스샷 올려놨습니다.
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
Java에서 this와 super 키워드
21:01초에서 최종 결과가 x=10, y=20 x=30, y=0이 개행되는 이유가 뭘까요? 일자로 쭉 출력되고 그 다음에 개행되는 게 아닌걸까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-p 질문 있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요 선생님 저도 선생님의 생각처럼 코드를 이렇게 작성하면 되겠구나 라는 생각을 했습니다. 하지만 결국 코드가 생각처럼 구현 되지 않았습니다.이코드에서 제 생각이 뭐가 틀렸고 어떤 부분이 미숙했던 걸까요? ㅜㅜ코드 사고 과정1. 전체 맵에서 조합으로 씨앗을 심고 visited 처리2. 3개 의visited 에서 위 아래 로 꽃이 펴지기3. 그중에서 합이 제일 작은거 출력 하기#include <bits/stdc++.h> using namespace std; bool visited[101][101]; int n,a[101][101], ret=987654321; const int dy[] = {-1, 0 , 1, 0}; const int dx[] = {0 , 1, 0 , -1}; vector<pair<int, int>> v; int solve(){ int sum = 0; for(int i =1; i < n; i++){ for(int j =1; j < n; j++){ if(visited[i][j]){ sum += a[i][j]; for(int i = 0; i < 4; i++){ int ny = i + dy[i]; int nx = j + dx[i]; if(ny < 0 || nx < 0 || ny >= n || nx >= n || visited[ny][nx]) { return 987654321; }; visited[ny][nx] = 1; sum += a[ny][nx]; } } } } return sum; } int main(){ ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); cin >> n; for(int i = 0; i < n; i++){ for(int j = 0; j < n; j++){ cin >> a[i][j]; if(i >=1 && j >=1) v.push_back({i,j}); } } for(int i =1; i < n; i++){ for(int j =1; j < i; j++){ for(int k =1; k <j; k++){ visited[v[i].first][v[i].second] = 1; visited[v[j].first][v[j].second] = 1; visited[v[k].first][v[k].second] = 1; ret = min(ret, solve()); memset(visited, 0,sizeof(visited)); // visited[v[i].first][v[i].second] = 0; // visited[v[j].first][v[j].second] = 0; // visited[v[k].first][v[k].second] = 0; } } } cout << ret << "\n"; return 0; }
-
해결됨
강화학습 DDQN에 대한 질문있습니다.
DQN과 DDQN의 차이점을 정확히 알고싶습니다. argmax연산에서 차이가 난다는데DQN이 최댓값연산으로 통해 Q함수가 최댓값을 통해 오버피팅이 된다는건 어느 정도 이해를했습니다.DDQN에서는 argmax연산을 풀어 쓴다고 되어있는데 이게 무슨 차이인지 정확히 모르겠습니다.이 풀어씀으로써 어떤 이득을 볼수있는지 정확하게 모르겠습니다. 제가 고졸이라 아직 미흡한 부분이 많습니다. 글을 여러번 읽어도 무슨소리인지 모르겠습니다.그래서 혹시 상세히 설명 해주실분 혹시 있나요..?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
세션 레퍼런스 카운트 관련 질문입니다.
void Session::ProcessConnect() { _connectEvent.owner = nullptr; // (1) _connected.store(true); // (2) // 세션 등록 GetService()->AddSession(GetSessionRef()); // 컨텐츠 코드에서 재정의 OnConnected(); // 수신 등록 RegisterRecv(); }5장 Session#3 강의를 듣고 따라해보다가 클라이언트 프로그램이 위 함수를 실행하다가 터지는 문제가 발생했습니다. 디버깅을 해보니(1)에서 _connectEvent.owner의 strong ref가 1에서 0으로 줄어들면서 세션(this)이 삭제되고(2)에서 this를 참조하면서 문제가 생긴 것이었습니다. bool IocpCore::Dispatch(uint32 timeoutMs) { DWORD numOfBytes = 0; ULONG_PTR key = 0; IocpEvent* iocpEvent = nullptr; if (::GetQueuedCompletionStatus(_iocpHandle, OUT &numOfBytes, OUT &key, OUT reinterpret_cast<LPOVERLAPPED*>(&iocpEvent), timeoutMs)) { // (A): 강사님 코드 // strong ref: 1 IocpObjectRef iocpObject = iocpEvent->owner; // strong ref: 2 iocpObject->Dispatch(iocpEvent, numOfBytes); // (B): 제 코드 // strong ref: 1 //iocpEvent->owner->Dispatch(iocpEvent, numOfBytes); } else { int32 errCode = ::WSAGetLastError(); switch (errCode) { case WAIT_TIMEOUT: return false; default: // TODO : 로그 찍기 IocpObjectRef iocpObject = iocpEvent->owner; iocpObject->Dispatch(iocpEvent, numOfBytes); break; } } return true; }강사님 코드와 제 코드에서 어떤 부분이 다른지 확인해 본 결과 위와 같은 차이가 있었습니다. 강사님은 지역 변수로 스마트 포인터를 하나 만들어서 레퍼런스 카운트가 2인 상태로 세션->Dispatch 함수를 호출하는 반면, 저는 레퍼런스 카운트가 1인 상태로 세션->Dispatch 함수를 호출하는 차이가 있었습니다. [질문 1] 혹시 강사님은 코드를 짜실 때 (B)와 같이 코드를 짜면 문제가 생긴다는 걸 인지하고 (A)와 같이 짜신 걸까요? 레퍼런스 카운트를 어느 정도까지 고려하면서 프로그래밍을 하는 것이 좋은지 궁금합니다. [질문 2] 아래와 같이 코드를 수정해서 문제를 해결해도 별 문제가 없을까요?// 원본 코드 void Session::ProcessConnect() { // RELEASE_REF _connectEvent.owner = nullptr; _connected.store(true); // 세션 등록 GetService()->AddSession(GetSessionRef()); // 컨텐츠 코드에서 재정의 OnConnected(); // 수신 등록 RegisterRecv(); }// 수정된 코드 void Session::ProcessConnect() { _connected.store(true); // 세션 등록 GetService()->AddSession(GetSessionRef()); // RELEASE_REF _connectEvent.owner = nullptr; // 컨텐츠 코드에서 재정의 OnConnected(); // 수신 등록 RegisterRecv(); }
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
C언어 기출문제의 변형 질문
26분대에 나오는 빈칸 채우기 문제 정답을 a%b 라고 해주셨는데요.제가 혼자 풀었을 때는 정답을 b-6으로 했는데 시험장에서 이렇게 풀면 출제자의 의도대로 문제를 푼 게 아니라서 오답처리가 되겠죠?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
[팁] 2024년 기준 버전 이슈?
VS2022 사용자분들 중, 강의 내용을 제대로 따라 갔음에도 클라에서 로그가 안 찍히는 경우가 있을 거에요.삽질해본 결과 유니티에서 최대로 지원하는 .Netcore 버전보다 높은 버전으로 프로젝트를 생성하여 뽑혀나오는 dll 이 유니티 프로젝트와 호환되지 않기 때문인 것 같았어요.따로 신경 쓰지 않으면 VS2022 로 프로젝트를 만들 때, .NetCore 버전이 6.0 이상으로 생성하실텐데, 강의와 동일한 버전으로 맞추면 다소 찝찝하긴 해도 문제가 해결되긴 합니다. ( 현 시점기준 3.1 은 유지보수가 중단됐어요... )ServerCore.dll 도 3.1 로 뽑히고, nuget 으로 받아온 dll 도 프로젝트 버전에 맞게 바이너리에 잘 복사되더라구요.추가) 혹시나 NetCore 6.0 에서 3.1로 변경 후 자동 생성된 static using 코드들로 인해 컴파일 에러가 자꾸 발생한다면, 해당 프로젝트의 proj 파일을 열어서<ImplicitUsings>disable</ImplicitUsings>로 바꿔주고, namespace 때문에 컴파일 에러 나는 부분들을 하나씩 수정해주면 해결됩니다.
-
미해결Part1: 진짜 왕초보 iOS 배우기(SwiftUI, SwiftData, 2024)
ToDo 앱 @Observable 기능(?) 질문입니다
안녕하세요 강사님 좋은 강의 잘 수강하고 있습니다!강의에서 @Observable 사용시 큰 설명 없이 넘어가셔서 개인적으로 알아보는 중입니다[SwiftUI] Observable macro를 통해 모델 데이터를 만들고 관리하는 방법 (tistory.com)[SwiftUI] iOS17 이후의 상태 관리 (velog.io)[SwiftUI] @Observable 매크로 (1) (tistory.com)Discover Observation in SwiftUI (feat. WWDC 2023) :: iOYES (tistory.com)등 위의 링크들을 살펴보았지만 초보자인 제가 이해하기엔 어려운 내용들이었습니다그래서 강사님 강의 중 SwiftUI의 Property Wrapper(@State, @Binding...)를 구입해봤지만 아쉽게도 @Observable이 아닌 구 버전의 프로퍼티 래퍼인 @ObservableObject를 설명해주시더라구요(이 부분은 아쉬웠지만 나머지 래퍼들을 공부하는 데에는 정말 좋은 강의라고 생각합니다!)일단 강의의 흐름을 보면 @State와 묶어서 설명하시길래 @State는 변수의 변화를 감지하기 위한 래퍼이고 @Observable은 class나 구조체 내 멤버 프로퍼티 값들이 변경되는 걸 감지하기 위한 래퍼라고 이해했는데 맞게 이해한 걸까요..? 답변 주시면 감사하겠습니다!!좋은 하루 보내세요!
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
SQL기출 31:20
select 제조자, 제품명, 단가 from 제품where ABG(단가) > (select 단가 from 제품)ㅇ;렇게는 안되는것인가요?
-
해결됨하루만에 배우는 AWS OpenSearch
강의에서 사용학신 블로그 url 질문 드립니다
다음과 같은 양식으로 남겨주세요.질문을 한 배경 : 강의 자료에서 찾을 수 없음질문내용 : 강의에서 사용하신 블로그 url을 요청 드립니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-F 1062번 문제 답안코드에서 이해가 가지 않는 부분이 있습니다.
int go(int index, int k, int mask) { if (k < 0) return 0; if (index == 26) return count(mask); int ret = go(index+1, k-1, mask | (1 << index)); if (index != 'a'-'a' && index != 'n'-'a' && index != 't'-'a' && index != 'i'-'a' && index != 'c'-'a') { ret = max(ret, go(index+1, k, mask)); } return ret; }답안에서 go 함수의 기저사례 처리 부분이 이해가 가지 않습니다.if (k < 0) return 0; if (index == 26) return count(mask); 이렇게 k < 0 일때는 0을 리턴해주고 index==26일때 읽을 수 있는 단어갯수를 리턴해주고 있는데요,문제의 조건이 K개의 글자를 가르쳤을때 읽을 수 있는 단어의 갯수의 최대값을 구하는 것인데위와 같이 index==26 일때 count(mask)를 리턴해주면 k개를 모두 고르지 않은, 예를 들어 k-2만을 고른, 상태일때 읽을 수 있는 단어를 리턴해주게 되지 않나요? 저는 그래서 if(k==0) return count(mask); if(index == 26 && k > 0 ) return 0;이렇게 k==0일때 (즉, k가지를 모두 골랐을때) count(mask)로 읽을 수 있는 단어의 갯수를 리턴해주고index가 끝까지 갔음에도 불구하고 k가 아직 0이 안되었을 경우에는 k개의 글자를 가르치지 못한경우이므로 0을 리턴하게 해주었는데이렇게 하니 틀렸다고 나오네요. 왜 이렇게 하면 안되는것인지, 그리고 왜 큰돌님께서 작성해주신 답안대로 해야되는지 이해가 가지 않아서 이렇게 질문드립니다. 답변해주시면 감사하겠습니다
-
해결됨실리콘밸리 빅테크 29개의 실습으로 배우는 시스템 디자인 설계
메세지 큐 예제 2번 질문있습니다!!
안녕하세요! 강의를 듣다 메시지 큐 예제 2번 그림에서 질문이 생겨 글을 남깁니다!piano cat 검색 요청을 google server(생산자)가 메세지 큐를 이용해서 results store(소비자)로 넘기고 results store(소비자)에서 처리된 요청 결과를 다시 google server(생산자)로 어떻게 넘겨 유저 요청의 응답 결과로 반환할 수 있는지 궁금합니다.. 그림에서 results store -> google server 이 부분 화살표가 어떻게 그어질 수 있는지 궁금합니다!!
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
20분 13초
20분 13초에서 sum 재귀함수는 재정의했으니까 부모가 아닌 자식의 sum으로 가야한다고 하셨는데. 재정의 했을 때 자식한테 가는 경우는 부모를 자식으로 재정의한 업캐스팅 형태일 때 아닌가요? 지금 이 문제는 자식을 자식으로 재정의했으니까 sum이 자식의 sum이 아니라 부모의 sum으로 가야하는거 아닌가요..?
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
상호작용이 있어도 동적인 페이지라면 RSC만 보내나요?
3.6 네비게이팅 18분 10초 관련해서 질문있습니다. 이전 서버 컴포넌트 강의에서는 상호작용이 없는 페이지는 JS가 없기 때문에 RSC로 HTML을 만들어 보내고, JS 번들은 보내지 않는다고 이해했습니다.그래서 프로젝트상 /book1/1 페이지는 상호작용이 없는 페이지라 프리페칭 받아도 RSC Payload만 받는게 맞지 않나?라 생각했습니다. 그런데 /book/1 페이지가 동적인 페이지라서 JS 번들을 안 받는다고 말씀하셔서 좀 헷갈립니다.즉, 말씀하시는 부분이 상호작용이 있는 페이지라도 동적인 페이지라면 RSC만 보내주신다는 말씀인가요??
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-K 시간초과 질문입니다
영상 보기전에 문제를 먼저 풀어보았는데로직 arr에 L 하나! 좌표를 p_y, p_x 담기반복 {한번 반복될때 마다 ans++del_y, del_x 두 queue를 만들고2중 for문 돌면서 빙산깍습니다 만약 빙산"X" 라면 del_y, del_x 에 push 합니다2중 for문이 끝나면 del_y, del_x에 있는 좌표들을 "." 로 수정합니다맵 bfs 돌면서 L 2개가 만날수 있는지 체크합니다방문배열 초기화!만날수 있다면 ans 변수 출력 }http://boj.kr/e5a6ee722f5b467ea793402242eb25f02% 시간초과가 뜨는데 어떻게 최적화를 해야할까요..
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
ArgumentResolver 지정타입
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]@ModelAttribute 에서 argumentResolver로 지정해둔 타입은 제외라고 했는데,이해가 안되는점은 @ModelAttribute도 argumentResolver로 파라미터를 받는다고 배웠는데그럼 컨버터 실행하는 파라미터(@RequestBody, HttpEntity)가 존재할때 제외된다는 말씀인가요?
-
해결됨입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
Docker 데스크탑에서 push to Docker hub 를 클릭한 후 오류가 납니다...
Engine runningRAM 1.08 GBCPU --.-- %Disk --.-- GB avail. of --.-- GBBETATerminalv4.34.3 (HTTP code 400) unexpected - invalid tag format위와 같은 오류가 나는데 왜 그런 걸까요? 인텔리제이에서 빌드할 때도 문제가 없었습니다...
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-I 응용 질문있습니다 :)
안녕하세요 선생님 🙂 이 문제에 숨바꼭질 2번의 가장 빠른 시간으로 동생을 찾는 방법의 수와 숨바꼭질 4번의 이동 경로를 출력하는 방법을 넣어보고 싶어서 응용을 해봤습니다. http://boj.kr/140dd82426b947a59d51672a9bda4d0a 가장 빠른 시간으로 동생을 찾는 방법의 수를 출력하는 로직이 올바르게 짜여있는 것인지 궁금합니다. int prv[2][500004]; for (int i = K; i != N; i = prv[cnt%2][i]) { vec.push_back(i); //cnt--; } vec.push_back(N); reverse(vec.begin(), vec.end()); for (const auto& v : vec) { cout << v << " "; }prv배열을 2차원으로 했을 때, 1, 10을 입력하면 올바른 값이 나오지만 5, 17과 17, 5는 출력 자체가 되지 않습니다. prv배열을 1차원으로 했을 때는 5, 17과 17, 5는 출력이 되지만(5, 17만 올바른 값 출력) 1, 10은 출력 자체가 되지 않습니다. 혹시나 해서 for문에 cnt--를 넣어봤지만, 제대로 출력되던 1, 10조차 출력 자체가 되지 않았습니다. 이유와 해결방법이 궁금합니다.17 -> 16, 15, 14, 15 5 -> 6, 8, 11, 15위의 경우처럼 중복되는 경로가 있는 경우는 17 16 15까지만 출력이 됩니다. 14가 출력되지 않는 이유는 16 뒤에 출력되는 15가 첫번째 방문하는 15가 아닌 마지막 15를 방문해서 그런걸로 이해했는데 제대로 이해한게 맞을까요?