묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨반응형 웹사이트 포트폴리오(Architecture Agency)
마우스 휠 감도 문제 / 스크롤시 화면 다다음으로 넘어감
스크롤했을때 한 페이지씩 넘어가다가도가끔씩 2개의 페이지가 샤샥하고 한번에 넘어갈때가 있는데마우스 휠감도 조절해봐도 안되네요 ㅠ방법이 있을까요?
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
TypeList 수집 관련 질문
영상 구현에서는 TypeList를 직접 작성 했는데 실제 사용에서는 inheritance hierarchy를 탐색해서 TypeList를 생성해야 할 것 같다는 생각이 듭니다.일단 template meta programming을 잘 다루지 않아서 hierarchy를 어떻게 수집 할 수 있을지도 감이 오지 않네요.수집이 가능하다 해도 hierarchy가 크다면 hierarchy tree의 클래스 개수 n^2 만큼의 메모리를 점유하게 될 텐데 해당 부분도 우려가 됩니다.메모리 문제를 해결하기 위해서 _typeId 초기화 시점에 parent id도 추가적으로 선언+초기화하고 런타임 비용을 조금 더 쓰더라도 id를 hierarchy를 따라 올라가서 casting 가능 여부를 판단하는 방식은 어떨까요?
-
해결됨두고두고 써먹는 유니티 VR
vr기기로 실행하는데 고개가 돌아가지 않아요
플레이를 하면서 고개를 좌우 상하로 돌려도 정면만 바라보고 있고 아예 뒤를 돌아도 정면 그대로 나오는데 어느 부분이 오류인걸까요?
-
미해결스프링 핵심 원리 - 기본편
Long과 long의 차이
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의를 보다 보면 어떤 경우엔 Long을 쓰고 또 어떤 경우엔 long을 쓰던데 둘의 차이가 있나요?
-
미해결홍정모의 따라하며 배우는 C++
Iterator를 사용하는 이유가 무엇인가요?
제가 생각해본 바로는, 추후 코드의 리팩토링 과정을 더 편하게 만들기 위해(?)같습니다. 많은 STL 의 컨테이너가 동일한 용법을 갖고 있으면 편할테니까요. 혹시 다른 이유가 더 있을까요?
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
뮤직비디오
안녕하세요 선생님! 다름이 아니라 저는 최소용량크기를 곡들의 분을 더한 값 M으로 나눈걸로 시작했는데 안되는 걸까요? 채점사이트에서는 성공했는데 혹시 그렇게 시작하면 안되는 이유가 있을지 궁금해서요!
-
해결됨[코드캠프] 시작은 프리캠프
java 객체 질문입니다.
검사하기 창을 불러왔을 때,선생님 따라서 계속 코드 작성해놓고 강의보다가 다시 코드 치려고 보면 계속해서 작성해둔 코드가 삭제가 됩니다 ㅜㅜ 이거 방법이 없을까요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
이미지 생성?
챕터 10 만난지 며칠 등에서 사용하는 이미지 같은건 어디서 만들거나 가져오는 건가요??
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
Typeorm error: Table already exist
Entity를 변경하고 나서 서버 재 시동 시 Connection Error, Table {Table_name} already exist 에러가 발생하고, Entity와 상관없이 소스를 수정해도 여전히 동일한 에러가 발생합니다. 에러를 찾아봤는데도 명확한 해답을 찾지 못해 질문 드립니다.[Nest] 1860 - 2023. 09. 14. 오후 10:13:42 ERROR [TypeOrmModule] Unable to connect to the database. Retrying (5)...QueryFailedError: Table 'tb_user_info' already exists 변경 전@Column() @Field(() => String) USR_USER_TYPE: boolean변경 후@Column() @Field(() => Boolean) USR_USER_TYPE: boolean 현재 Package는 아래와 같고요."@nestjs/typeorm": "^10.0.0", "typeorm": "^0.3.17" @Entity를 중복 선언하거나 소스가 두개이진 않습니다.(기존에도 똑같은 질문이 있어서 확인했습니다.) 다만 Table명을 다르게 하기 위해 아래처럼 했습니다.@Entity('TB_USER_INFO') @ObjectType() export class UserInfoEntity { ..... 이 에러를 찾아보니...@Entity({ name: 'TB_USER_INFO', schema: 'user_schema'}) 처럼 하라고 하는데....우선 제대로 된 해결법이 맞는지 궁금하고요.만약 맞다면 저기서 얘기하는 schema가 무엇을 말하는지 못찾았습니다.( 혹시 schema명이 database name이 아닌가 싶네요... 그렇게 했을때 별도로 다른 에러가 발생하진 않았거든요) 그리고 어떤 곳에선 synchronize를 false로 하고 직접 수정하는게 낫다는 사람들도 있더라고요. 조금 이해가 안되긴 하지만..... 해결됐습니다.=============================================================이런저런 테스트를 하다가 Stack overflow에서 어떤 사람이 @Entity작성 시 이름을 별도로 지정하지 않고 class명을 그대로 써서 해결됐다고 하길래 저도 그렇게 했더니 해결이 됐습니다. 최초 class명과 table명을 다르게 쓴 이유는 해당 entity클래스가 entity 라는걸 알아보기 쉽게 하려고 class에 entity라는 이름을 붙이고, table명에서는 entity를 쓰지 않았었습니다.지금도 그렇게 하는 것이 더 편하다 생각하는데... 우선 에러를 해결하기 위해서는 이렇게 밖에 방법이 없네요;;;;; 혹시 테이블 명을 별도로 사용하고 에러가 나게 하지 않을 방법이 있을까요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
궁금한점 있습니다
안녕하세요 강사님 궁금한것이 있어서 질문 남깁니다 public void returnBook(String bookName) { UserLoanHistory targetHistory = this.userLoanHistories.stream() .filter(history -> history.getBookName().equals(bookName)) .findFirst() .orElseThrow(IllegalAccessError::new); //findFist()는 옵셔널로 반홚나다 targetHistory.doReturn(); }이 로직에서 만약 한 책을 빌렸다가 반납하면 그 히스토리를 반납완료 상태로 만들어주고 끝내고다시 그 책을 빌리려고 한다면 새로운 히스토리를 만들어서 List에 저장할텐데 그럼 다시 그책을 반납할 경우 findFirst()를 해서 그 히스토리를 찾아왔을때 이미 반납된 책을 다시 반납하는 행위가 되는것이 아닌건지 궁금해서 질문 드립니다!
-
해결됨홍정모의 따라하며 배우는 C++
lock guard를 사용한 쓰레드 연산결과가 inner_product 함수를 사용한 결과와 다릅니다.
오타가 없는 것 같은데 무슨 이유로 다른 값이 나오는지 알수가 없네요. 도움부탁드립니다.아래는 코드 전문입니다.#include <iostream> #include <thread> #include <mutex> #include <utility> #include <future> #include <vector> #include <atomic> #include <chrono> #include <numeric> #include <random> #include <execution> using namespace std; auto dotProductFuture(const vector<int>& v0, const vector<int>& v1, const unsigned i_start, const unsigned i_end) { int sum = 0; for(unsigned i = i_start; i < i_end; ++i) { sum += v0[i] * v1[i]; } return sum; } auto dotProductNaive(const vector<int>& v0, const vector<int>& v1, const unsigned i_start, const unsigned i_end, unsigned long long & sum) { for(unsigned i = i_start; i < i_end; ++i) sum += v0[i] * v1[i]; return sum; } mutex mtx; auto dotProductLock(const vector<int>& v0, const vector<int>& v1, const unsigned i_start, const unsigned i_end, unsigned long long & sum) { for(unsigned i = i_start; i < i_end;++i) { std::scoped_lock lock(mtx); //c++17 sum += v0[i] * v1[i]; } } int main() { const long long n_data = 100'000'000; const unsigned n_threads = 4; //init vectors std::vector<int> v0, v1; v0.reserve(n_data); v1.reserve(n_data); random_device seed; mt19937 engine(seed()); uniform_int_distribution<> uniformDist(1, 10); for(long long i = 0; i < n_data; ++i) { v0.push_back(uniformDist(engine)); v1.push_back(uniformDist(engine)); } cout << "std::inner_product" << endl; { const auto sta = chrono::steady_clock::now(); const auto sum = std::inner_product(v0.begin(), v0.end(), v1.begin(), 0ull);//unsigned long long const chrono::duration<double> dur = chrono::steady_clock::now() - sta; cout << dur.count() << endl; cout << sum << endl; cout << endl; } cout << "Naive" << endl; { const auto sta = std::chrono::steady_clock::now(); std::vector<thread> threads; threads.resize(n_threads); const unsigned n_per_thread = n_data / n_threads; unsigned long long sum = 0; for(unsigned t = 0; t < n_threads; ++t) { threads[t] = std::thread(dotProductNaive, std::ref(v0), std::ref(v1), t*n_per_thread, (t+1)*n_per_thread, std::ref(sum)); } for(unsigned t = 0; t < n_threads; ++t) threads[t].join(); const auto dur = std::chrono::steady_clock::now() - sta; cout << dur.count() << endl; cout << sum << endl; cout << endl; } cout << "Lock Guard" << endl; { const auto sta = std::chrono::steady_clock::now(); unsigned long long sum = 0; std::vector<thread> threads; threads.resize(n_threads); const unsigned n_per_thread = n_data / n_threads; for(unsigned t = 0; t < n_threads; ++t) { threads[t] = std::thread(dotProductLock, std::ref(v0), std::ref(v1), t*n_per_thread, (t+1)*n_per_thread, std::ref(sum)); } // for(unsigned t = 0; t < n_threads; ++t) // threads[t].join(); const chrono::duration<double> dur = std::chrono::steady_clock::now() - sta; cout << dur.count() << endl; cout << sum << endl; cout << endl; } return 0; }
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended 에러
강의 내용대로 코드도 똑같고 위치도 다 똑같이 했는데 다음과 같이 오류가 뜹니다. 구글에 쳐도 안나오고 해결방법좀 알려주세요...
-
미해결CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
JWT 토큰 관련 질문입니다!
안녕하세요!! JWT 토큰 관련해서 강의듣다가 궁금한점이 생겨서 질문드립니다 !그럼 JWT 토큰 구조에서 signature가 인코딩된 Header+인코딩된 Payload+ 비밀키를 헤더에 명시된 알고리즘으로 서명한값이라고 하셨느데, 그럼 서버에서는 (인코딩된 Header+인코딩된 Payload) 값을 암호화하고 뒤에 붙은 signature랑 비교해서 같으면 허용된 유저로 받아 들이는건가요??access Token / refresh Token 방식에서 refresh Token의 탈취는 생각안하는 건가요? 그냥 access Token만 set-cookie로 하는 방식이랑 비교해서 저게 왜 더 안전한지 잘 안와닿습니다!access Token / refresh Token 방식에서 로그인 성공한 클라이언트가 서버에 추가적인 다른 요청을 보낼 때, access Token을 Header에 직접 담아야하고 refresh Token은 계속해서 cookie에 자동으로 담겨서 날라가는건가요??access Token / refresh Token 방식에서 요청을 했을 때, 만약 access token이 만료된 토큰이면 refresh token을 통해 access token을 받은 다음 Header에 담아서 요청을 하는거면 클라이언트 입장에서 2번의 요청을 보내야하는건가요?? 그럼 예를들어 유저는 버튼 2번을 눌러야하는건가요??access Token / refresh Token 방식에서 로그아웃할 때는 어떤식으로 처리를 해줘야하나요?? Spring + react 환경일 때, Spring 서버측에서 access Token / refresh Token 둘 다 없애는 건가요? 아니면 react에서 비워 버리는건가요?? 아니면 refresh Token만 쿠키에서 없애고 access Token은 그냥 만료기한 지나도록 나두는 건가요??마지막으로 이전에 리액트랑 Spring으로 프로젝트를 한 경험이 있는데, 거기서 클라이언트가 리액트에 접속해서 로그인해서 refresh Token을 cookie에 담고 access token은 로컬 스토리지에 저장하고 있었는데, 브라우저 새로고침을 하니깐 refresh Token이랑 access Token이 사라졌던걸로 기억을 하고 있습니다. 원래 쿠키에 저장하면 새로고침해도 남아 있어야하는거 아닌가요?? 아니면 리액트랑 Spring 배포한 환경의 도메인이 달라서 크롬의 쿠키 정책상 때문인지.. 궁금합니다 !적다보니 질문이 엄청 많아졌네요ㅎㅎ.. 요즘 이 강의로 cs공부를 하고 있는데 늘 감사합니다!!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
반례 찾아주세요ㅜㅜ
안녕하세요 강사님 강의 잘 듣고 있습니다.강사님 강의를 보기 전에 제가 스스로 풀었던 내용입니다.https://www.acmicpc.net/source/66606871문제의 예시와 첫 글자 z도 다 잘 출력 되었는데 어디서 실패하는건지 모르겠어서 여쭤봅니다...!
-
미해결
scroll 이벤트에 따른 swiper 동작
react로 개발 중에 모바일 화면에서 스와이퍼를 적용했는데.. 혹시 터치스크롤로 화면을 내리다가 swiper 컨테이너가 화면 중앙에 위치하면, 이후 스크롤 했을때 가로swiper 넘어가도록 할 수 있을까요? 터치는 스크롤을 하지만 swiper가 왼쪽에서 오른쪽으로 넘어가는 이벤트입니다.마지막 슬라이드까지 다 보면 고정이 풀리고 정상적으로 스크롤 하도록 구현하고 싶어요
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
상품등록폼
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 상품등록은 언제나 같은 폼인데 경로를 변경하는 이유가 무엇인가용 정적경로 그대로 서비스해도 되지않나요
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
lower_bound 에 교안과 다른 숫자로 변경하면
처음에는 교안과 동일한 숫자를 넣어봤다가 다르게 숫자를 넣어봤는데.. lower_bound는 그대로 2고 upper_bound는 2로 변해버립니다.. 왜그런걸까요? 그리고 주소값도 변하지가 않습니다.. 실행환경때문에 그런걸까요?그리고 typedef long long 11을 적으면 error: expected unqualified-id before numeric constant 라는 에러가 발생합니다..(그래서 아래 코드보면 안적혀있어요)그리고 제가 이해한것이 맞는지 알려주시면 감사하겠습니다. 교안기준 주소값을 기반으로 몇번째 요소인지를 뽑아낼 수 있다고 적혀있는데 그말은 곧 "0xd21518 - 0xd21510 = 8 이 나오는데, int형이니까 4바이트가 두개와 같으니 2번째 인덱스를 의미한다 " 라고 이해했습니다.. #include <bits/stdc++.h> using namespace std; int main(){ vector<int> a {1,2,5,6,7,3,3,3,4}; cout << lower_bound(a.begin(), a.end(), 3) - a.begin() << "\n"; cout << upper_bound(a.begin(), a.end(), 3) - a.begin() << "\n"; cout << &*lower_bound(a.begin(), a.end(), 3) << "\n"; cout << &*a.begin() << "\n"; cout << &*(a.begin() + 1) << "\n"; return 0; } /* 실행결과 2 2 0xe71d68 0xe71d60 0xe71d64 */
-
해결됨스프링 부트 - 핵심 원리와 활용
프로메테우스 기본 설정
안녕하세요.현재 서비스중인 사이트에 액츄에이터 적용중에 있습니다!웹에서는 /actuator/prometheus 접근은 되는데 프로메테우스 화면에서 보면 상태가 down이고 에러가 납니다. URL 링크 연결은 잘돼요..스프링 시큐리티쪽에서 별도로 처리를 해줘야되는건지... 예측되는 부분이 있을까요?
-
미해결
코랩에서.. 텐서플로 버전이 안바뀌어요
tensorflow가 2.4.0이 필요해서 버전에 맞게 파이썬 3.7.0 버전을 깔았는데!pip install tensorflow==2.4.0 안되고가상환경 만들어서 깔아도 안되고...whl 받아서 설치해도 전부 아래와 같은 오류만 발생하네요버전 변경하는 방법이 있을까요?ERROR: Could not find a version that satisfies the requirement tensorflow==2.4.0 (from versions: 2.8.0rc0, 2.8.0rc1, 2.8.0, 2.8.1, 2.8.2, 2.8.3, 2.8.4, 2.9.0rc0, 2.9.0rc1, 2.9.0rc2, 2.9.0, 2.9.1, 2.9.2, 2.9.3, 2.10.0rc0, 2.10.0rc1, 2.10.0rc2, 2.10.0rc3, 2.10.0, 2.10.1, 2.11.0rc0, 2.11.0rc1, 2.11.0rc2, 2.11.0, 2.11.1, 2.12.0rc0, 2.12.0rc1, 2.12.0, 2.12.1, 2.13.0rc0, 2.13.0rc1, 2.13.0rc2, 2.13.0, 2.14.0rc0, 2.14.0rc1) ERROR: No matching distribution found for tensorflow==2.4.0
-
미해결입문자를 위한 코딩테스트 핵심(이론과 문제풀이) [Python]
이렇게 풀어도 돼나요?
안녕하세요 강사님. 수업 너무 잘 듣고 있습니다.궁금한게 있어 질문 드립니다.제가 딕셔너리를 이용해서 아래와 같이 풀었는데 강사님 코드를 보니 너무 깔끔하더라구요."from collections import defaultdictdef solution(nums, target): answer = [0]*2 dicts = defaultdict(int) for i in nums: dicts[i]=target-i for i in dicts: if i in nums and dicts[i] in nums and i!=dicts[i]: return [min(i,dicts[i]),max(i,dicts[i])] return answer"이렇게 IF문 안에 여러 조건들을 넣어서 풀어도 시간 복잡도가 O(N^2)이 안되고 O(N)이 될까요??