묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
배열 질문!
강의에서 배열이란것 자체가 시작위치를 가리키는 포인터라고 표현을 하셨는데 시작위치를 가리키고 있다는 것은 배열의 시작지점을 배열이란것이 주소 값을 통해 가지고 있는다라고 이해가되는데 이런 의미라고하면 디버깅 모드에서 statinfo 라는 자료형의 monsters 배열을 메로리 검색해보면 바로 값이 내장되어있는 스택메모리의 위치가 보여지고 만약 monsters 배열이 배열의 시작주소를 가리키고 있다면 &monsters 검색하게된다면 가령 배열의 주소가 0x007AFB4C 이라면 (배열의 값을 가지고 있는주소임) &monsters 는 0x007AFB4C를 가지고 있는 또하나의 메모리가 되어야 하는 건 아닌가요? 마치 포인터 처럼 예를들어 main 안에 int number = 0xaaaaaaaa; int * ptr = &number; 일때 number 의 주소값이 ptr 이라는 포인터변수안에 들어가있고 디버깅을 찍어서 확인해보면 &ptr 메모리검색을해보면 실제로도 number 의 주솟값이 들어가 있는것을 알수있습니다. 물론 배열이란것자체가 주소값이기 때문에 포인터 변수에 대입가능하고 메모리 검색자체도 &를 붙이지 않아도 되고 주소값이라는 건 충분히 이해가 되었지만 배열이란것이 "처음 주소를 가리키고 있다" 라는 말이 이해가안됩니다. 내부적으로 배열이 처음주소를 가리킨다면 그 처음주소를 가리키는 또다른 메모리가 존재를 해야하는것이아닌가요? 궁금해서 질문 드립니다.
-
미해결<M.B.I.T> 테스트 페이지 만들기! with Django
location
6:41 let url에서 copyBtn은 location.href로 사용하시고 facebook에서는 window.location.href 사용하셨는데 어떤 차이점때문에 다르게 선언하셨나요?
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
함수 question에 제가 원하는 함수조건을 조금 추가해보았는데요.
function Seller(product){ if (product === products[0].name){ return products[0].seller } else { return products[1].seller }}이렇게 작성해보았는데 출력은 잘 되었어요. 해당 함수를 더 깔끔하게 작성할 수 있을까요? 아니면 좀 더 편하게 '농구공의 판매자에 접근하는' 방법이 있을까요? 언제나 답변 감사드립니다. 좋은 하루되세요!
-
미해결스프링 핵심 원리 - 기본편
request 스코프 문의드립니다..
안녕하세요! 첫 질문글 이네요.. 우선 항상 좋은강의 정말 잘 듣고 있어서, 정말 감사드립니다. 강의덕에 개발이 더 재밌고, 예전보다는 발전하고 있다는 생각이 드네요.. 감격~ ㅎㅎ 강의를 듣다가.. 궁금한 부분이 생겨서 문의드려요..원래 보통 찾아보는데, 검색하기가 좀 애매한것 같아서요 제가 궁금한 것은, ObjectProvider의 동작 원리입니다. 우선 제가 이해한 것은 스프링이 시작되고, 컨테이너가 만들어지고 어노테이션을 읽어들이며... @Component에 @Scope(value = "request")가 붙어 있으면 객체를 바로 싱글턴으로 생성하지는 않지만, 스프링이 관리하는 대상 클래스 타입 리스트?에 올려놓는것 이라 생각하겠습니다. 이후에, ObjectProvider<MyLogger> 객체의 getObject같은 함수가 실행되면 내부적으로는 정확하진 않지만 컨테이너에서 getBean을 요청하는 것이라 생각하겠습니다.; 이때, 객체가 없으면 새로 만들어서 주는것이고 있으면 있는것을 그대로 리턴해준다고 생각하겠습니다. 여기서 좀 햇갈리게 된게.. 싱글턴 객체면 상관이 없는데.. request는 각기 다른 요청 갯수만큼 만들어지는 것이잖아요? 요청이 끝나면 파괴된다고 하지만.. 예를들어 서비스로직이 10초가 걸리는데(thread.sleep(10000)) 이때 동시에 요청이 2개 발생하고 프로바이더.getObject()를 하면 10초동안은 스프링 컨테이너에는 2개의 빈이 존재하는것이라고 배웠습니다... 여기서 햇갈리는게, 첫번째 요청이 들어오면 컨트롤러에서 myLoggerProvider.getObject(); 하는순간 빈이 만들어 질테고, 이 빈이 소멸되지 않은 상태에서 바로 두번째 요청이 들어오면.. 컨테이너에는 빈이 있지만, 자신요청에 해당하지 않는 빈이란것을 알고 새로 만드는 것과... 그다음에 서비스 로직에서 또 myLoggerProvider.getObject();하면 같은 타입의 빈이 컨테이너에 2개 잇는 상태에서 자신이 진짜 사용할 빈을 자동으로 반환 받는 과정이.. 궁금하더라구요. 이게 코드에는 힌트가 없이 내부적으로 그냥 이런식으로 동작해주는것 같은데.. 그냥 추측만 할뿐이네요; getObject의 구현체가 내부적으로 요청하는 함수(정확히는 쓰레드가 맞겟네욤)에 맞는 객체를 분류해서 리턴해주는 기능처럼.. 구현되어 있는것이 맞을까요? 원리는 잘 모르겠지만, 강의 내용중 쓰레드로컬 말씀하신걸 보면.. 이름에서 주는 느낌처럼 getObect를 요청할때 요청하는 쓰레드 종류까지 기억하고 있다가 해당하는 쓰레드에 맞는 빈을 반환하는.. 뭐이런식이지 않을까 생각들긴 하는데 확실치 않아서요.. 이부분 관련해서 검색해보고 싶은데, 찾아보기가 좀 어렵네요... (디버그해보면서 구현체 까보고 싶은데, 이클립스만 써봐서 인텔리제이가 익숙치 않아서 힘듭니다 ㅠㅠ) 다른 강의 들으면 혹시 더 알 수 있는 내용일까요? 예전에 빈 싱글턴 들으면서 싱글턴 객체에 멤버변수 있으면 어쩌지? 한참 고민하다가 그냥 다음강의 들으면서 알게 됐었는데... 이건 이제 곧 완강이라 문의드려욤ㅎㅎ 앞으로 들으면서 좀 감이 안오는 부분은 정리해서 질문 많이 드릴게요 ㅎㅎ; 다시한번 말씀드리지만 정말 많이 배우고 있습니다 ㅎㅎ 곧 스프링 부트랑 JPA강의 수강할껀데.. 그때도 궁금한거 있으면 많이 여쭤볼게요 ^^; 그럼 감사드립니다.~~
-
미해결딥러닝 CNN 완벽 가이드 - TFKeras 버전
torchvision.transforms.transform과 albumentation이랑 차이가 있나요?
안녕하세요 API랑 인터페이스가 서로 비슷한거 같은데, 다른 점이 있나요?
-
미해결스프링 핵심 원리 - 기본편
테스트, DI 컨테이너
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강의 중 있었던 테이스 코드들을 봤을 때, MemberServiceTest 같은 경우에는 순수하게 자바코드로 돌리는 테스트로 보입니다. BeanDefinitionTest를 보면 ApplicationContext를 이용하는 코드이기 때문에 DI 컨테이너가 필요한 테스트라고 생각합니다. 그런데, @SpringBootTest 애노테이션을 붙인 테스트와 달리 로그에 스프링의 띄우지 않는 것처럼 보입니다. @SpringBootTest를 넣음에 따라서 달라지는 부분이 있나요? 왜 이런 현상(?)이 발생하는지 궁금합니다. --수정-- https://www.inflearn.com/questions/211302을 보니 @SpringBootTest가 스프링 부트가 제공하는 스프링 컨테이너를 사용해서 테스트를 실행하게 하고 이로 인해 @Component를 포함하는 애노테이션이 붙은 클래스에 대해 컴포넌트 스캔을 진행하여 DI를 진행하는 걸로 이해했습니다. 이를 기반으로 아래와 같은 궁금증이 생겼습니다. 1. @SpringBootTest가 들어갔을 때 띄우는 데에만 해도 시간이 길어지는게, 컴포넌트 스캔 대상이 애플리케이션 전체로 확대되어서 그런 것인가요? 혹시 스프링 부트가 제공하는 스프링 컨테이너를 띄울 때 강의에서 AppConfig 스프링 컨테이너(이 표현이 맞는지 모르겠습니다 ^^)를 띄울 때와 달리 부가적으로 수행하는 작업이 있나요? 2. 필드 주입을 적용한 클래스로 테스트를 할 때 @SpringBootTest를 꼭 넣어야 하나요? 필드 주입을 적용한 클래스와 해당 클래스에서 필요로 하는 클래스를 스캔할 수 있는 @Configuration을 이용해도 @SpringBootTest가 꼭 필요한가요?
-
미해결Vue.js 끝장내기 - 실무에 필요한 모든 것
쿠키에 저장이 안되는 이유
methods: { async submitForm() { try { // 비즈니스 로직 const userData = { username: this.username, password: this.password, }; const { data } = await loginUser(userData); // token 확인 및 store에 저장(commit) console.log(data.token); this.$store.commit('setToken', data.token); // username을 store에 저장하고 메인 페이지로 push this.$store.commit('setUsername', data.user.username); saveAuthToCookie(data.token); saveUserToCookie(data.user.username); this.$router.push('/main'); } catch (error) { // 에러 핸들링할 코드 console.log(error.response.data); this.logMessage = error.response.data; } finally { this.initForm(); } }, initForm() { this.username = ''; this.password = ''; }, }, 7_til-list 브랜치에서 강의 따라가고 있는데 cookies.js를 import 해서 로그인 폼 제출시 saveAuthToCookie와 saveUserToCookie를 사용했는데 브라우저의 쿠키에 저장이 되질 않습니다. 해결 방법을 알 수 있을까요? 7_til-list 브랜치에서 강의 진행 내용 외에 따로 건드린 것은 없습니다.
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
연속 부분수열1
안녕하세요 선생님. 이렇게 코드를 작성한 경우, 선생님께서 설명해주신 코드보다 시간복잡도에서 차이가 클까요? function solution(m, arr){ let n = arr.length; let p1 = p2 = 0; let answer = 0; while (p2 < n){ let sum = arr.slice(p1, p2+1).reduce((a,b)=>a+b, 0); if( sum < m ){ p2++; } else if(sum > m){ p1++; } else{ answer ++; p1++; } } return answer; }
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
ProtoBuf 요청 사항
안녕하세요. 요청사항이 있는데요. 저의 경우 서버강의도 수강했었습니다. 그래서 제가 작성한 코드에 직접 이식하고 싶은데 중간에 5-10초뒤에 프로젝트를 변경한다고하면서 코드가 변경되는 장면이 있었는데 해당부분 어떤부분이 변경되었는지 가이드를 문서나 이런것으로 받아 볼 수 있을까요? 저는 직접작성하고 싶습니다..
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
Managers는 어느 오브젝트에 붙어있는건가요?
안녕하세요 MonoBehavior를 상속받은 클래스는 오브젝트에 붙어서 사용해야 한다고 이해했는데 Managers는 어디에 붙어있는건가요?
-
미해결유니티(Unity)로 시작하는 게임개발: Part 3. 슈팅게임 개발
이렇게 하면 왜 안되는 걸까요?
Vector3 dir = Vector3.zero; if (Input.GetKey(KeyCode.W)) dir += Vector3.forward; if (Input.GetKey(KeyCode.S)) dir += Vector3.back; if (Input.GetKey(KeyCode.A)) dir += Vector3.left; if (Input.GetKey(KeyCode.D)) dir += Vector3.right; dir = dir.normalized; transform.Translate(dir * Time.deltaTime * 2); 이렇게 Update()안에 넣어뒀는데 제가 Vector3 vec = transform.position;으로 넣어 봤거든요 그런데 그 뒤로는 한번만 키입력을 받으면 그쪽으로 쭈욱 가던데요 왜 그런질 도통 모르겠습니다
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
질문이요! 개발환경은 org.springframework.boot' version '2.4.7-SNAPSHOT입니다~
삭제된 글입니다
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
혼자 풀어봤는데 궁금합니다
#include <stdio.h> int arr[10][10], ch[10][10], cnt=0; void DFS(int v1, int v2) { int i, j; if (v1 == 7 && v2 == 7) { cnt++; } else { for (i = v1-1; i <= v1+1; i++) { for (j = v2-1; j <= v2+1; j++) { if (i < 1 || i > 7 || j < 1 || j> 7) continue; if (arr[i][j] == 0 && ch[i][j] == 0) { ch[i][j] = 1; DFS(i, j); ch[i][j] = 0; } } } } } int main() { int i, j; for (i = 1; i <= 7; i++) { for (j = 1; j <= 7; j++) { scanf("%d", &arr[i][j]); } } ch[1][1] = 1; DFS(1,1); printf("%d\n", cnt); return 0; } 혼자 풀어봤는데 답이 잘 안나와서 여쭤봅니다. 이중 for문에서 continue를 사용해서 문제가 된걸까요?
-
미해결데브옵스(DevOps)를 위한 쿠버네티스 마스터
HPA 오토 스케일링 전제 조건
안녕하세요 좋은 강의 너무 감사합니다 다름이 아니라 오토스케일링 실습중에 질문이 생겨서요 kubectl autoscale deploy <"deploy-name"> --cpu-percent=50 --min=1 --max=10 일때 전제 조건이 파드에 cpu 사용량을 체크할 사이드카 파드가 필요한건가요 ? 파드 사용량 체크는 어떤놈이 하는지 궁금해서요 .. 그리고 파드를 생성하면 디폴트로 리소스 리밋이 정해지나요 ? (리밋 설정을 따로 주지 않아도) cpu 사용률 50프로의 기준이 디폴트로 파드에 설정된 cpu 사용률에 50프로 기준으로 생성되는건지 궁금해서 질문 드립니다
-
미해결
git 레파지토리 접근 권한 허용 부탁드립니다
인프런 아이디 : 송찬호 인프런 이메일 : yellowtree@ncsoft.com깃헙 아이디 : yellowwhale@gmail.com 깃헙 Username : Chan-hoSong
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
쌤 질문있습니다!
쌤 강의 너무 잘듣고 있습니다! 강의 듣다가 갑자기 궁금했던 기억이 되살아나서 질문드립니다! 제가 프로젝트 진행할때 동적 컨텐츠 랜더링 관련은 jstl을 이용해서 jsp에서 거의 다 처리하고, 페이지에서 특정 부분 갱신 등의 이벤트만 js와 ajax를 이용해서 클라이언트에서 처리하도록 짰는데 선임분이 서버단에 부하를 줄 수 있으니 랜더링 관련은 특별한 경우를 제외하고는 클라이언트단에서 처리하도록 하라고 하시더라구요 도대체 어떤 방식이 올바른 방법인지 판단이 잘 안서서 질문 드립니다 ㅠㅠ 그리고 쌤은 어떤식으로 처리하시는지도 궁금합니다!! 쌤 항상 감사한 마음으로 강의 듣고 있습니다! 거의 다 끝나가는데 얼른 2편도 올려주세요 ㅠㅠ
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
제로초님 이제 마지막 질문이 될 것 같습니다
모든 이슈사항을 다 해결하고 마지막으로 궁금한 건, 기존에 정적인 data들은 db에 넣어놓고 뿌ㄹ렸는데 새롭게 mysql을 설치하면서 그 data들을 다시 aws 서버에 올려줘야하는 거 같더라구요 그럼 이 상황에서는 어쩔 수 없이 insert를 또 해줘야하나요 cmd 창에서 ? 아니면 다른 방법이 있을까요 ? 기존의 데이터를 그대로 옮기고 싶은데
-
미해결실전! Querydsl
count query 부분 질문이 있습니다.
localhost:8080/v3/members/?page=0&size=110 또는 page=2&size=40 으로 조회했을 때에는 카운트 쿼리가 실행되지 않는 걸 확인 했습니다. 페이지 시작이면서 컨텐츠 사이즈가 페이지 사이즈보다 작을 때 마지막 페이지 일 때 (offset + 컨텐츠 사이즈를 더해서 전체 사이즈 구함) 이 두 경우는 이해를 했는데(1번의 경우 시작이면서 마지막 페이지니까) page=1&size=110 또는 page=2&size=50 으로 조회할 경우 content.size()가 0인데도 카운트 쿼리가 실행됩니다. 메소드에서 size가 0이면 카운트 쿼리를 날리게 구현한 걸 봤지만 왜 이렇게 해뒀는지 도저히 상상이 안되네요. 이유를 알 수 있을까요? 허접한 질문이라 죄송합니다... 아직 부족한 게 많네요 ㅠㅠ
-
미해결Slack 클론 코딩[실시간 채팅 with React]
workspace 새로고침
workspace 코드를 보면 const { data: userData, revalidate, mutate } = useSWR<IUser | false>('/api/users', fetcher); if (!userData) { return <Redirect to="/login" />; } 이 코드를 통해 workspace에서 userData가 없을 때 로그인 페이지로 이동하도록 만들었는데 workspace에서 새로고침을 했을 때 다시 userData를 가져오는 동안 아래의 if문이 실행되어 로그인이 되어있음에도 로그인 페이지로 이동하는 경우는 생기지는 않을까요? 비동기 데이터를 가져오는게 완료되고 if문이 실행된다는 순서가 보장이 되는 이유가 궁금합니다. 제가 다른 프로젝트에 이 방법을 응용했을 때 위와 같은 문제가 생겨 여쭈어 봅니다.
-
미해결[2026년 출제기준] 웹디자인개발기능사 실기시험 완벽 가이드
sub menu가 밑으로 숨어서 보이지 않아요ㅠㅠ
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title>세로투컬럼</title> <link rel="stylesheet" href="css/style.css"> </head> <body> <div class="container"> <div class="left"> <header> <article class="header-logo"></article> <article class="navi"> <ul class="menu"> <li> <a href="#none">MENU-1</a> <div class="sub-menu"> <a href="#none">SUB-MENU-01</a> <a href="#none">SUB-MENU-02</a> <a href="#none">SUB-MENU-03</a> <a href="#none">SUB-MENU-04</a> </div> </li> <li> <a href="#none">MENU-2</a> <div class="sub-menu"> <a href="#none">SUB-MENU-01</a> <a href="#none">SUB-MENU-02</a> <a href="#none">SUB-MENU-03</a> <a href="#none">SUB-MENU-04</a> </div> </li> <li> <a href="#none">MENU-3</a> <div class="sub-menu"> <a href="#none">SUB-MENU-01</a> <a href="#none">SUB-MENU-02</a> <a href="#none">SUB-MENU-03</a> <a href="#none">SUB-MENU-04</a> </div> </li> <li> <a href="#none">MENU-4</a> <div class="sub-menu"> <a href="#none">SUB-MENU-01</a> <a href="#none">SUB-MENU-02</a> <a href="#none">SUB-MENU-03</a> <a href="#none">SUB-MENU-04</a> </div> </li> </ul> </article> </header> </div> <div class="right"> <section class="slide"> <article></article> </section> <section class="items"> <article class="news"></article> <article class="banner"></article> <article class="shortcut"></article> </section> <footer> <article class="footer-logo"></article> <article class="copyright"></article> </footer> </div> </div> <script type="text/javascript" src="script/jquery-1.12.4.js"></script> <script type="text/javascript" src="script/custom.js"></script> </body> </html> -----------------------------------------------------css .container { width: 1000px; } .container > div { float: left; box-sizing: border-box; } .left { width: 200px; } .right { width: 800px; } header { overflow:hidden; } header > article { border: 1px solid #000; width: 200px; } .header-logo { height: 100px; } .navi { } .slide {} .slide > article { border: 1px solid #000; height: 300px; } .items { overflow:hidden; } .items > article { border: 1px solid #000; height: 200px; width: 33.3333%; float: left; box-sizing: border-box; } .news {} .banner {} .shortcut {} footer { overflow:hidden; } footer > article { border: 1px solid #000; height: 100px; float: left; box-sizing: border-box; } .footer-logo { width: 200px; } .copyright { width: 600px; } /*NAVIGATION*/ .menu { list-style:none; padding: 0; width: 90%; margin: auto; margin-top: 15px; position: relative; } .menu li { text-align: center; } .menu li > a { border: 1px solid #000; display:block; padding: 5px; text-decoration: none; transition:0.5s; } .menu li:hover > a { background-color: #000; color:#fff; } .sub-menu { border: 1px solid #000; position: absolute; top:0; left: 100%; width: 100%; height: 200px; background-color: #000; display: none; z-index: 2; } .sub-menu > a { padding: 5px; display: block; text-decoration: none; transition:0.5s; color:#fff; } .sub-menu > a:hover { background-color: #000; color:#fff; }