묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결윤재성의 만들면서 배우는 Spring MVC 5
Dynamic web 프로젝트를 메이븐 프로젝트로 컨버트해서 사용하는 이유가 궁굼합니다.
윤재성 강사님 스프링 프레임워크 개발자를 위한 실습을 통한 입문 과정도 수강을 하였는데요.거기서는 maven 프로젝트로 생성해서 Create a Simple project로 프로젝트를 생성했었습니다.Spring MVC5 강의에서는 Dynamic web 프로젝트를 생성하고 메이븐 프로젝트로 convert 해서 사용하시던데 메이븐 프로젝트로 처음부터 만들지 않고 컨버트해서 강의하신 이유가 궁굼합니다! 또 그 둘의 차이점도 궁굼해요!
-
미해결자바 프로그래밍 입문 : 선수 수업
반복문 사용하기
반복문에서 2단 할때 =========위에 있는 2단은 잘 왔는데 =======밑에 있는 2단은 다 동일하게 2만 나와요.밑에 3단으로 바꿔도 3만 나오구요똑같이 했는데 왜 안될까요??
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
사지방에서 자바를 공부하고 있는 군인입니다
저는 매번 자바 프로그램을 설치할 수 없어서 "구름 IDE"라는 클라우드 개발 환경을 사용하여 개발하고 있습니다. 그러나 첫 장인 "HelloWorld"부터 실행이 되지 않고 오류가 떠서 온라인 컴파일러를 이용해서 결과값을 보고 있었습니다. 그러나 이번 강의부터는 "BlackBox"라는 클래스로부터 불러오는 값을 적용시켜야 하는데 일반적인 온라인 컴파일러에서는 이 기능까지는 지원하지 않는 것 같습니다. 이러한 경우에는 어떻게 컴파일 하는게 좋을까요? 참고로 컴파일할 때 ChatGPT와 온라인 컴파일러를 둘 다 사용해왔습니다. 다시 한 번 말씀드리지만 어떠한 이유에서인지 자바가 컴파일되지 않고 있습니다.아니면 다른 클라우드 개발 환경을 추천해주셔도 좋습니다!(개발 환경은 윈도우10 이며 재부팅마다 컴퓨터는 초기화됩니다)
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
accessToken 저장 관련 질문
안녕하세요! accessToken 저장 관련하여 궁금한 점이 생겨 질문드립니다.로그인의 결과로 accessToken을 받아오고 이것을 보안 문제를 해결하고자 로컬/세션 스토리지가 아닌 변수(recoil state)에 저장하셨고 이를 로그인한 사람의 정보를 요청하기 위해 쿠키를 통해 headers에 연동 시키셨는데, 이러면 변수에 저장한 값을 어쨌든 headers의 쿠키에서 확인할 수 있게 되어 글로벌 변수에 저장한 의미가 없어진 것 아닐까 하는 생각이 들어서 질문드리게 되었습니다.항상 좋은 강의 감사드립니다.
-
해결됨반응형 웹사이트 포트폴리오(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 객체 질문입니다.
검사하기 창을 불러왔을 때,선생님 따라서 계속 코드 작성해놓고 강의보다가 다시 코드 치려고 보면 계속해서 작성해둔 코드가 삭제가 됩니다 ㅜㅜ 이거 방법이 없을까요?
-
미해결[2024 최신] [코드팩토리] [초급] 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. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 상품등록은 언제나 같은 폼인데 경로를 변경하는 이유가 무엇인가용 정적경로 그대로 서비스해도 되지않나요