묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
동영상 파일같이 파일의 크기가 큰 파일을 업로드 다운로드 하는 것도 같은 방식으로 구현하나요?
강의에서는 이미지랑 작은 크기의 파일만 upload,download 하는 코드 였는데, 동영상 같이 크기가 큰 파일도 똑같이 Multipart이용해서 구현하나요? 그리고 보통 크기가 큰 파일을 업로드 다운로드 할 경우에는 따로 적용하는 방법이 있을까요? 업로드,다운로드만 전용으로 하는 서버를 따로 둔다든가하는..
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Spinlock과 랜덤 메타의 차이
안녕하세요, Rookiss님수업을 듣다가 궁금한 점이 있어서 질문 드립니다. Spinlock의 경우 프로세스 및 쓰레드가 공유 자원에 접근하기 위해 지속적으로 대기하기 때문에 이로 인한 CPU 성능 부하가 발생한다고 저는 이해하였습니다. 따라서 위와 같은 Spinlock의 단점을 보완하기 위해 랜덤 메타에서는 sleep 혹은 yield라는 함수를 사용하였는데, 이는 프로세스 및 쓰레드(?)를 running 상태에서 asleep 상태로 변경하는 것으로 저는 이해하였습니다. 그러면 이 과정에서 자연스럽게 context switching에 의한 오버헤드가 지속적으로 발생하게 되며, 이로 인한 오버헤드가 Spinlock에 의한 오버헤드보다 더 큰 경우도 발생하지 않을까요? 예를 들면 this_thread::sleep_for(std::chrono::milliseconds(100))이라는 함수를 while문 내부에 작성한다면, 프로세스 및 쓰레드는 100ms를 간격으로 지속적으로 running 상태와 asleep 상태를 순회할 것입니다. 이 과정에서 context switching이 발생하게 되고, 이로 인한 오버헤드가 Spinlock에서 while문을 지속적으로 순회하는 오버헤드에 비해 더 큰 경우도 발생하지 않을까요? 감사합니다.
-
미해결[2025년 출제기준] 웹디자인기능사 실기시험 완벽 가이드
(수정) D 타입 메가 메뉴 서브메뉴 높이 설정에 문제가 있습니다
.menu {list-style: none;position:relative;padding: 0;margin:auto;}.menu li {background-color: #fff;text-align: center;}.menu li > a {display:block;padding:5px;}.menu li:hover > a{background-color: #000;color:#fff;}.sub-back{ /* display: none;position:absolute;background-color: #00000060;top:0;left:100%;z-index: 1000;width:100vw; }.mega-menu { / display: flex; /}.sub-menu { / height:calc(128px / 4); / / display:flex; align-items:center; */}.sub-menu a { display:block; padding:5px;}.sub-menu a:hover { background-color: bisque;}
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
순환참조
user와 auth가 서로를 import하고 있어서 forwardRef로 순환 참조를 막아줬는데 auth에선 userRepository를 사용하고 있고 user에선 authService.jwtLogin()을 사용하는데 순환 참조가 발생하는 건가요? 안 막아줘도 되는건가요?
-
미해결[React 1부] 만들고 비교하며 학습하는 React
버전이 어떻게 되는지가 궁금합니다.
이제 배우게 될 리액트는 버전이 어떻게 되는지가 궁금합니다. 최신 버전인 18버전의 강의가 될까요?? 함수형 기반과Class 기반이 있는것 같은데어떤지 궁금해서 질문을 남깁니다...
-
해결됨시스템엔지니어가 알려주는 리눅스 실전편 Bash Shell Script
웹 서버 접속 관련 질문입니다.
현재 "2-2. 웹 서버 트러블 슈팅을 위한 쉘 스크립트" 부분 수강하고 있습니다. 강의에서 index.html 접속하실 때 172.81.1.91로 접속하셨는데요. 제 환경에서는 192.168.56.1로만 접근이 됩니다. nginx 돌아가는 것도 확인했습니다.cent1 ifconfig는 172.18.1.91로 나오고(eth1), 윈도우 ipconfig에서는 192.168.56.1로 나오는 상황인데요(VirtualBox Host-Only Network). 그냥 이대로 수강해도 문제가 없는지, 문제가 있다면 어떻게 해결해야 하는지 궁금합니다.
-
미해결예제로 배우는 스프링 입문 (개정판)
jdk 버전이 자꾸 낮다면서 오류가 발생합니다.
프로젝트, 이클립스 설정에서 모두 11로 변경하고 진행했는데 클래스 파일은 자꾸 17버전이라고 뜨면서 현재 버전이 낮다고 해요. 왜 클래스 파일이 11버전으로 안되는지 모르겠네요.. Execution default of goal org.springframework.boot:spring-boot-maven-plugin:3.0.4:build-info failed: Unable to load the mojo 'build-info' in the plugin 'org.springframework.boot:spring-boot-maven-plugin:3.0.4' due to an API incompatibility: org.codehaus.plexus.component.repository.exception.ComponentLookupException: org/springframework/boot/maven/BuildInfoMojo has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
안녕하세요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]권장 순서 1번이 엔티티 조회 방식인데, 영한님이 이전 강의에서 웬만하면 DTO 방식으로 하라고 하신 것 같아서 헷갈려서 질문드립니다. 엔티티 방식은 모든 정보를 가져오기 때문에 사용하지 말라고 하신 것 같아서요
-
미해결
[Android Studio] Android Test Run 할 시, version이 맞지 않는다는 에러가 뜹니다. The binary version of its metadata is 1.7.1, expected version is 1.5.1.
안녕하세요. 안드로이드 앱개발하는 주니어입니다.현재 android unit test를 하면서 아래와 같은 에러가 뜬 상황입니다.espresso-core-3.5.1-api.jar!/META-INF/androidx.test.espresso.screenshot.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.7.1, expected version is 1.5.1.매일매일 검색해보고 동일한 케이스들이 많아서 따라도 해봤지만 결국은 해결하지 못 해 이렇게 올리게 됩니다. ㅠㅠ 도와주세요...Kotlin version은 1.7.20 이고, iOS / android KMP로 개발 중이어서 android 쪽에서 kotlin version을 올리게 되면 iOS 에 에러가 발생하였습니다.<builld.gradle(android app)><build.gradle(project)><gradle-wrapper.properties>
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
안녕하세요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]패치 타입을 lazy,eager 로 설정을 하는 것은 패치 조인 시에 어떤 식으로 join 이 될 지 결정하는 것으로 이해했는데 맞을까요?
-
미해결쉽게 시작하는 쿠버네티스(v1.30) - {{ x86-64, arm64 }}
노드포트 방식에서 노출포트 리스닝은 어디서 하나요?
노드포트 방식의 service 오브젝트를 구성하여 파드 포트를 외부에 노출시키면, 분명 실제 서비스포트인 80 자체는 파드 내 컨테이너가 TCP Listening 을 하고있을것으로 압니다.근데 그 80이 아닌 외부에서 접근하는 노출포트 31234/tcp 이 포트는 어느 오브젝트에서 TCP Listening 을 하고있는지 궁금합니다.PC 에서 노드IP:노출포트...로 웹접근이 가능하길래 실제 노드별로 netstat -an | grep LISTEN 수행해보면 노출포트 31234/tcp 가 보이지도 않는데말입니다.쿠버 안의 숨겨진 다른 오브젝트에서 노출포트를 리스닝하고있는것인지 알고싶습니다.
-
미해결쉽게 시작하는 쿠버네티스(v1.30) - {{ x86-64, arm64 }}
노드포트로 Nginx 웹접근시 궁금한점
단일 nginx 파드배포후 파드정보를 조회하면 실제 해당 nginx 파드는 특정 워커노드 1개에만 배치된게 확인됩니다.그럼에도 불구, PC에서 마스터노드나 워커노드 3대에 모두 ip:노출포트 수행하면 전체 노드 4개에 모두다 파드가 구동중인것처럼 웹접근이 가능한데 이 부분이 의아합니다.예상대로라면 실제 nginx 파드 배포된 워커노드1개 IP:노출포트... 에 대해서만 화면이 떠야할텐데 이 부분에 대해 답변해주시면 감사하겠습니다.
-
미해결[중급편] 코인 가격 모니터링 앱 제작 (Android Kotlin)
LiveData 관련 질문
메인 화면을 만드는 과정에서 livedata에 대해 궁금한 점이 생겨 질문드립니다. selected 버튼을 누르면, dbRepository.updateInterestCoinData(interestCoinEntity) 를 통해 db에 있는 데이터가 업데이트 되는 것 까지는 알겠는데, 그 이후 livedata인 뷰모델에 선언된 변수, selectedCoinList가 업데이트 되어서 다시 리사이클러뷰가 업데이트되는 것인가요? 어떻게 리사이클러뷰의 UI가 업데이트 되는 것인지가 헷갈려 질문드립니다.
-
미해결스프링 핵심 원리 - 기본편
롬복 라이브러리 등록
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) y2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) y3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) y[질문 내용]여기에 질문 내용을 남겨주세요.강의자료대로 작성하였는데 오류가 떠요..!두번째 사진은 오류코드입니다 !!
-
미해결15일간의 빅데이터 파일럿 프로젝트
가상서버 이미지 다운 에러
가상서버 이미지 다운시 전체 용량을 다운로드 못받네요.확인 후 다시 링크 주시면 감사하겠습니다.
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
useSWRInfinite 관련
const listFetcher = async () => { const res = await apiClient.get(`/notices`, { params: { siteKey: sitekey || selectsite, keyword: searchData || null, page: page, size: 5, orderOption: sortModel.field || "createAt", orderSeq: sortModel.sort || "desc", }, }); console.log("res.data.payload.notices", res.data.payload.notices); return res.data.payload.notices; }; const getKey = (pageIndex, previousPageData) => { if (previousPageData && !previousPageData.length) return null; return { url: `/notices?${pageIndex}`, }; }; const { data, error, size: page, setSize: setPage, isValidating, mutate, } = useSWRInfinite(getKey, listFetcher); const isInitialLoading = !data && !error; const posts = data ? [].concat(...data) : []; const [observedPost, setObservedPost] = useState(""); useEffect(() => { // 포스트가 없다면 return if (!posts || posts.length === 0) return; // posts 배열안에 마지막 post에 id를 가져옵니다. const id = posts[posts.length - 1].noticeNo; // posts 배열에 post가 추가돼서 마지막 post가 바뀌었다면 // 바뀐 post 중 마지막post를 obsevedPost로 if (id !== observedPost) { setObservedPost(id); observeElement(document.getElementById(id)); } }, [posts]); const observeElement = (element) => { if (!element) return; // 브라우저 뷰포트(ViewPort)와 설정한 요소(Element)의 교차점을 관찰 const observer = new IntersectionObserver( // entries는 IntersectionObserverEntry 인스턴스의 배열 (entries) => { // isIntersecting: 관찰 대상의 교차 상태(Boolean) if (entries[0].isIntersecting === true) { console.log("마지막 포스트에 왔습니다."); setPage(page + 1); observer.unobserve(element); } }, { threshold: 0.5 } ); // 대상 요소의 관찰을 시작 observer.observe(element); };useSWRInfinite 포스트 작성중인데, 위와 같이 처리했더니 맨끝 스크롤 이동시 api 호출이 더이상 되지 않고 있는데 이유를 알고 싶습니다!
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
할당된 메모리를 감싸는 'cccccccc' 질문 드립니다
멤버변수 int hp; 하나만 지정 하고a.hp=1;b.hp=2; 식으로 a,b 로 각각 대입했을때 메모리가 cccccccc0000002cccccccccccccccc0000001cccccccc 식으로 메모리가 올라오는데 감싸고 있는 'cccccccc' 의미가 있는 값인가요?
-
미해결홍정모의 따라하며 배우는 C언어
8.8 메뉴 만들기 예제 개행 입력시 문자가 무시됩니다
안녕하세요! 아래의 코드를 실행시킨 뒤 먼저 '\n'입력 후 원하는 메뉴키를 입력하면 원하는대로 처리가 되지 않아요.가령 이런식으로 엔터를 먼저 입력하고 q를 입력하면 quit를 실행하지 않고 다시 while문을 돌더라고요.디버거로 한단계씩 살펴보니 문제는 get_first_char()함수에서 발생하는데, 처음에 getchar() 함수로 개행(\n)을 받으면서 다음 버퍼비우기(?) 코드에서 또 다시 입력을 받는 것 같고, 이 함수의 리턴값은 처음에 받았던 개행(c='\n')으로 나가서 생기는 문제 같은데요..이 코드에서 어떻게 고쳐야 처음 들어올 개행도 입력오류처럼 처리할 수 있을까요?? 코드는 아래와 같습니다! #define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>char get_choice(void);char get_first_char(void);int get_integer(void);void count(void);int main(){int user_choice;while ((user_choice = get_choice()) != 'q'){switch (user_choice){case 'a':printf("Avengers assemble!\n");break;case 'b':putchar('\a');break;case 'c':count();break;default:printf("Error with %d.\n", user_choice);exit(1);break;}}return 0;}void count(void){int n, i;printf("Enter an interger:\n");n = get_integer();for (i = 1; i <= n; ++i)printf("%d\n", i);while (getchar() != '\n')continue;}char get_choice(void){int user_input;do{printf("Enter the letter of your choice:\n");printf("a. avengers\tb. beep\n");printf("c. count\tq. quit\n");user_input = get_first_char(); } while ((user_input < 'a' || user_input > 'c') && user_input != 'q'); return user_input;}char get_first_char(void){int ch;ch = getchar();while (getchar() != '\n')continue;return ch;}int get_integer(void){int input;char c;while (scanf("%d", &input) != 1){while ((c = getchar()) != '\n')putchar(c);printf(" is not an integer.\nPlease try again.\n");printf("Enter an interger:\n");}return input;}
-
미해결장박사의 블록체인 이해와 구조
remix 이더리움 IDE 사용 관련 강좌가 없어요.
비트코인과 블록체인 구조 분석의 스마트컨트랙트 프로그래밍에서 갑자가 remix 이더리움 IDE가 나오는데...이와 관련된 이전 영상을 찾을 수가 없는데..혹시 영상 아니면 문서라도 있을까요?
-
해결됨HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌2)
이미지 전환 후 잔상 효과
안녕하세요! 시즌 1강의부터 시즌 2 강의까지 유익하게 잘 듣고 있습니다! 다름이 아니라 강의를 듣고 강사님께서 작성해주시는대로 코드는 똑같이 작성했는데 이미지 전환 후 화면 아래에 잔상이 생깁니다. 이것저것 써보다가 혹시나 하여 강의 영상도 확인해보니 영상에서도 아랫쪽에 잔상이 남아있습니다. (24:23초 부분) 혹시 이유가 있거나 해결하는 방법이 있을까요?!(코드는 영상과 똑같이 작성하였기에 첨부하지 않았습니다!)감사합니다!