묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 프레임워크 핵심 기술
애노테이션이 없습니다(?)
안녕하세요. 매 강의 감사하게 잘 듣고 있는 수강생입니다. 이 전 강의부터 몇개의 애노테이션 중 사용할 수 없는 것들이 있어이렇게 문의 드립니다. 저번의 강의의 @NotEmpty, @size 등 Validation 관련 애노테이션과 이번 강의의 @RunWith 애노테이션을 사용할 수 없습니다.. 스프링 버전 문제 인지 혹은 maven 라이브러리 관련 문제인지 STS 버전 문제인지 모르겠습니다..
-
미해결홍정모의 따라하며 배우는 C언어
qsort 함수 질문
qsort를 직접 구현하고싶어서 이것저것 시도하던중 의문점이 생긴게 몇게 있어서 질문을 남깁니다. 1. int arr[] = { 8, 2, 5, 3, 6, 11}; int compare(const void* first, const void* second) { if (*(int*)first > * (int*)second) return 1; else if (*(int*)first < *(int*)second) return -1; else return 0; } 의 함수에서 first와 second가 갖는 주소값이 이런식으로 second가 arr[0]의 주소값을 갖고 first가 arr[1]를 갖는데 qsort함수를 사용법을 검색했을때 첫번째 변수가 두번째 변수보다 클때 1을 반환하고 작을때 -1을 반환하면 오름차순으로 정렬된다고 나오는데 첫번째 변수의 값이 second 에 들어갈까요 ㅠ 2. qsort라는 함수를 검색했을때 분할정복이라는 알고리즘을 통해 구현되있다고 쉽게 찾아볼수 있었습니다. 그러나 막상 디버그를 돌리면 compare함수 안에서 후 이런식으로 가장 큰 값이 순차적으로 뒤로 가는걸 확인할수 있었는데 제가 찾아본 분할정복하고는 값이 정리되는 방식이 많이 달라서 혼란을 격고있습니다. qsort함수는 분할정복 알고리즘을 사용한거가 맞는건가요? 혹시 qsort함수가 어떤식으로 구현됐는지 확인할수 있는 방법도 알 수 있을까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
13:50
안녕하세요! 13:50부터 등장하는 플레이어가 이동할 때 몬스터를 밀 수 있는 현상을 고치시는 방법에 대한 질문입니다. 이 밀리는 현상이 NavMeshAgent를 사용해서 이동시키는 것과 어떤 관계가 있는 것인지 잘 와닿지가 않아서요! ㅠㅠ 왜 nma.Move 함수 사용에서 transform.position 을 업뎃해주는 방식으로 바꾸면 위 현상이 고쳐지는 것인가요?
-
해결됨공공데이터로 파이썬 데이터 분석 시작하기
TypeError: 'method' object is not subscriptable 이라고 뜹니다ㅠㅠ
앞에까지는 잘 됐었는데 갑자기 TypeError: 'method' object is not subscriptable 이라는 오류가 뜹니다! 구글링 해보니 [], () 여기서 뭔가 오류가 난듯한데 똑같이 해도 안되서 여쭈어 봅니다ㅠㅠ --------------------------------------------------- 갑자기 위에 것도 다시 run 돌려보니 똑같은 오류가 떠요ㅠㅠ 컬럼을 확인하고 싶어서 csv 파일을 다시 들어가보니 이렇게 뜨는데 이것과 관련이 있을까요,,? 이건 어떻게 수정하나요ㅠㅠ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
질문드립니다~~
강사님 안녕하세요~ 질문이 두가지 있습니다. 1. 강의 코스에 대한 질문입니다. 강사님 로드맵이 두개 있는걸로 알고있습니다. [초급~중급] 우아한형제들 개발팀장 김영한의 스프링 완전 정복 (6개 강의) [초급~활용] 김영한의 스프링 부트와 JPA 실무 완전 정복 로드맵 (5개 강의) 로드맵의 강의들을 전부 다 학습하기에는 시간적으로 촉박하여 최소한으로 강의 수강을 하고싶습니다. 성능을 고려한다든지 하는 너무 심화적인 부분 + 실제 활용하는 방법 같은건 구글링하면서 그때그때 찾아보려합니다. 이런것들을 제외하고 기초적이고 이론적인 부분만을 튼튼하게 학습하고싶은데요 Spring + JPA에 대해 기초적 + 이론적인 부분만 학습하려면 두 로드맵 중에서 어떤 강의들을 어떤순서로 골라서 들어야할까요? 2. 회사마다 스프링 부트를 쓰는곳도있고, 그냥 스프링(기존 방식)을 사용하는 곳도 있는데요 현재 스프링 부트 기준으로 학습하고있는데 그냥 스프링을 사용하는 회사에 입사하게되어도 무리없이 개발할수있을까요? 아니면 서로 차이가 큰가요? 스프링 부트랑 그냥 스프링이 차이가 많이 큰지 궁금합니다..
-
해결됨모던 자바스크립트(ES6+) 기본
Symbol.species 질문입니다.
안녕하세요 강사님! 강의 너무 재밌게 잘 보고 있습니다. Symbol.species 강의를 듣다가 조금 이해가 안되는 부분이 있어서 문의 드립니다. class Sports extends Array { static get [Symbol.species]() { return Array; }} const one = new Sports(10,20,30); const two = one.slice(1,2); 여기서 one에는 class Sports의 인스턴스를 생성하여 one에 전달하는데 Array를 상속받아 slice를 사용할 수 있고, 이후 two에는 slice()의 결과값만 대입하는 것이 아닌, constructor가 없더라도 @@species가 동작되어 인스턴스를 반환하지만 static get [Symbol.species]를 작성하였기에, 오버라이딩되어 반환값을 Array Object로 생성한 인스턴스를 반환했다고 이해했습니다. 그래서 one의 경우 Array를 상속받은 class Sports로 생성하여 log(one instanseOf Array) // true log(one instanseOf Sports) // true 로 확인됩니다. Sports Class로 생성된 인스턴스 이며, Array Obeject의 prototype을 상속받았기 때문에 위 결과가 나온것으로 판단됩니다. 이후 two의 경우 log(two instanseOf Array) // true log(two instanseOf Sports)// false one은 생성된 인스턴스로 prototype이 없지만, slice()는 결과값만 전달하는 것이아닌 @@specise의 결과로 인스턴스를 생성하여 반환하는것인데, one 인스턴스에서 [Symbol.species]를 작성하였기 때문에 오버라이딩 되어 Array Object의 인스턴스로 생성된 값을 반환 받은것으로 이해했습니다. 그래서 two의 결과로 Array는 true, Sports는 false로 나온것이구요, 여기서 질문은 [Symbol.species]를 제외하여 오버라이딩 하지않은 class Sports extends Array {}; 로 변경하여 테스트한 경우 one instanseOf Array, one instanseOf Sports two instanseOf Array, two instanseOf Sports의 결과로 one, two 모두 true더군요, [Symbol.specise] 작성 시 : Array Object의 인스턴스를 생성하여 반환 [Symbol.specise] 미 작성 시 : 오버라이딩 하지않고 defalut로 @@species가 동작 (class Sports extends Array로 생성한 인스턴스 반환) 위의 설명이 맞다면 기존에 오버라이딩 코드를 작성한 코드에서 const one = new Sports(10, 20)으로 인스턴스를 생성할때는 Symbol.species가 동작되지 않는건가요? one.slice의 결과값을 담을 인스턴스를 생성할때에만 Symbol.species가 동작되는 것인가요? 위 글에서 질문외에 제가 이해한 부분 중 틀린부분이 있다면 번거러우시겠지만 설명 부탁드립니다ㅜ
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
primitive 타입과 Object 타입을 쓰는 기준이 궁금합니다
제가 jpa 기본강의를 수강하지 않아서 그런것인지는 모르겠지만 OrderItem 엔티티에서 id 애트리뷰트를 만들때는 Long 타입을 쓰시고 count 애트리뷰트는 int 타입을 쓰시는데 어떨때 객체 타입을 쓰고 어떨때 원시타입을 쓰는지 기준에 대해서 궁금합니다
-
미해결프로그래밍, 데이터 과학을 위한 파이썬 입문
Map & Reduce 강의 8분 15초
[1, 4 ,3 ,6 ,5] 가 아니라 [1, 4, 3, 16, 5]가 출력되야되는거 아닌가요?
-
해결됨Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
VS코드 관련 질문이 있습니다.
VS코드 에밋 관련 검색을 했는데 답이 나오질 않아 여쭤봅니다. vs코드에서 HTML 파일에서는 ul>li*10 이렇게 하면 자동으로 li가 10개가 생성이 되는데.. .vue 파일에서는 해당 부분이 적용되질 않아요.. ul>li*10 이렇게만 보여집니다.. 이럴 때 어떻게 해야하는 지 방법 알고 계신가요 ??
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
자릿수의 합
자릿수의 합 문제에서 자릿수의 합을 구할 때 아래와 같이 함수를 구하는데, 이때 while 문 대신 if 문으로 작성 했을 시 답이 다른 이유에 대해서 알고 싶습니다. def digit_sum(x): sum=0 while x>0: sum+=x%10 x=x//10 return sum
-
해결됨공공데이터로 파이썬 데이터 분석 시작하기
파일 불러오기
파일 불러오기에 어려움을 겪고 있습니다ㅠㅠ 섹션4 수업 진행중에 있습니다. 내pc->문서->data 폴더 생성후 github에서 받은 데이터들을 옮겨 놓았습니다. data폴더로 들어가 새파일을 만든 후 이제 거기서 다운로드 파일을 로드하려고 하는데 파일을 찾을 수 없다는 오류가 뜨네요ㅠㅠㅠ 어디서 부터 잘못된 걸까요 그리고 data/ 이렇게 했을 때 선생님처럼 밑에 뜨지도 않습니다.
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
*args(언팩킹) 에서
enermerate() 함수가 어떤 함수인지, 설명해주세요!! for문이 어떤 원리로 돌아가는지 이해가 안 가요...! : (하나의 for 문에 i ,v 라는 두개의 인자를 쓰셨는데, 첫번째는 뭐를 받고 두번째는 어떤것을 받는지)
-
미해결Flutter + Firebase로 넷플릭스 UI 클론 코딩하기 [무작정 플러터]
다트 vscode 오류
Dart formatter 가 무한으로 로딩되면서 저장이 되질 않고, vs code 에서 다트 익스텐션 깔았음에도 불구하고 지속적인 인스톨을 요청합니다. 혹시 이에 대한 정보가 있다면 댓글을 달아주세요!
-
미해결Klaytn 클레이튼 블록체인 어플리케이션 만들기 - NFT
Klaytn 클레이튼 블록체인 소스 어디서 받는지요?
Klaytn 클레이튼 블록체인 소스 어디서 받을 수 있나요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
FETCH 질문
FETCH 메시지에 해당 리소스id에 없는 속성값을 보내면 어떻게 되나요? ex. in 서버 { A:"aaa", B:"bbb" } from 클라이언트 { C:"ccc" }
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
tcpclient
msdn에 보니 tcpclient란게 있던데 이것은 소켓생성 바인드 등등 다 이미 처리가 가능한것들을 구현해놓고 .start()만 해주면 이 강의가 만들고있는거랑 똑같이 작동하나요? 이 강의는 그러면 tcpclient를 직접 구현하는것과 마찬가지인가요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
궁금증 질문있습니다.!
import React from 'react'; import './App.css'; import { BrowserRouter as Router, Switch, Route, Link } from 'react-router-dom'; import LandingPage from './components/views/LandingPage/LandingPage'; import LoginPage from './components/views/LoginPage/LoginPage'; import RegisterPage from './components/views/RegisterPage/RegisterPage'; import Auth from './hoc/auth'; function App() { return ( <Router> <Switch> <Route exact path="/" component={Auth(LandingPage, null, true)} /> <Route exact path="/login" component={Auth(LoginPage, false)} /> <Route exact path="/register" component={Auth(RegisterPage, false)} /> </Switch> </Router> ); } export default App; 그냥 호기심으로 인한 질문입니다! hoc폴더안에 auth.js에 있는 함수는 익명함수인데. App.js에서 쓸때는 Auth로 import를 해주시면서 함수를 이용하셨는데 익명함수를 import할 때 마음대로 이름을 바꿔도 되나요?. 만약 auth.js파일에 익명함수가 2개 이상일 때도 똑같이 가능한가요? 안된다면 어떻게 해주나요? 왜냐하면 저번에 user_reducer.js안에 그냥 user를 import하시고 넘어가셔서 다음에 설명해주실줄 알고 넘어갔거든요!. 궁금하네요!
-
미해결실습 UI 개발로 배워보는 순수 javascript 와 VueJS 개발
vuejs 데이터 참조 관련 질문이 있습니다.
컴포넌트 강의 FormComponent 구현 2를 듣던 중 FormComponent.js 를 작성하고 있을 때, 문뜩 data()함수에서 return 하는 객체의 프로퍼티인 inputValue를 어떻게 methods 프로퍼티 안에 onSubmit()함수에서 this.inputValue로 참조를 할 수 있는지 의문이 생겼습니다. console.log(this)로 하나씩 찍어보면서 확인해본 결과 <submit을 할 때마다 어떻게 나오는지 확인하기 위해서 FormComponent.js의 onSubmit함수에서 찍어보았습니다> <submit하였을 때 console.log(this)의 결과> FormComponent 에서 this로 가르키면 VueComponent가 나온다는 것을 알았고 VueComponent에 _data 프로퍼티가 있는 것을 보았습니다. 그래서 this._data.inputValue가 this.inputValue와 같은지 확인해보기 위해서 찍어보았고 서로 같다는 것을 확인했습니다. 전 여기서 두가지가 궁금증이 생겼습니다. 제가 아직 자바스크립트에 대한 이해도가 낮습니다. 해서 아래 두가지의 궁금증에 대한 이론적인 부분을 어떻게 찾아보아야하는지 모르겠습니다. (아마 제가 모르는게 무엇인지 제가 모르는 것 같습니다) 1. 어떻게 data()메소드에서 반환하는 오브젝트가 곧 바로 VueComponent의 _data에 들어가는지... 2. 어떻게 this._data.inputValue로 참조해오지 않고 _data를 생략하고 this.inputValue로만 참조할 수 있는지
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
node환경 구조
안녕하세요, 강의 중 궁금한 부분이 있어서 질문드립니다. 프로젝트 구성중 front node 환경이 별도로 구성되어 있고 실제 API를 처리하는 nginx를 별도로 분리하여 제 생각에는 client 호출 -> frontserver -> nginx 와 같은 방식으로 API 가 처리됩니다. 이 때, 기본 /config 설정에서 api_base_url : nginx 타깃 정보 /store/index.js 설정에서 baseUrl : frontserver 타깃정보 다음과 같은 방식으로 구성이 되어 있는데.. 해당 구조와 강의의 구조와 차이가 있는거 같아서.. 궁금증이 생깁니다. 현재 강의도 node서버 기반으로 구동되는건데.. frontserver를 따로 구축하는게 무슨 차이인가요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
실수한 부분에서 나온 증상에 대한 이해
제가 parent[nextY, nextX] = new Pos(node.Y, node.X) 대신에 PosY, PosX를 집어 넣으니까 뭔가 맵이 폭포스마냥 계속 업데이트 되는걸로 보이던데 이게 모든 점의 부모점을 시작점으로 해버려서 진행도 못하고 그자리에서 멤돌기 때문에 생기는거죠? public void Astar() { // the delta values when moving towards Up, Left, Down, Right int[] deltaY = { -1, 0, 1, 0 }; int[] deltaX = { 0, -1, 0, 1 }; int[] cost = { 1, 1, 1, 1 }; // Giving points depending on how close the player is to the destination // F = G + H // F = Final Score (the smaller, the better. Varying depending on the route) // G = the cost to move from the start to the destination (the smaller, the better. Varying depending on the route) // H = the distance from the current position and the destination, without ignoring any obstacles (the smaller, the better. Fixed) // the status whether a coordinate has been visited (visited = closed) bool[,] closed = new bool[_board.Size, _board.Size]; // ClosedList (List can be used as well) // the status whether a route to (y, x) has been found (Gigving score) // not found -> Int32.Max // found -> F = G + H int[,] open = new int[_board.Size, _board.Size]; // OpenList (which has the scores on each coordinate) // Initialize OpenList for (int y = 0; y < _board.Size; y++) for (int x = 0; x < _board.Size; x++) open[y, x] = Int32.MaxValue; // an Array to track the parent nodes Pos[,] parent = new Pos[_board.Size, _board.Size]; // Use PriorityQueue, which is specialized to pick up the best case // a tool to pick up the best candidate from OpenList PriorityQueue<PQNode> pq = new PriorityQueue<PQNode>(); // Found Start (Reservation begins) // Log and give the score to the coordinate open[PosY, PosX] = 0 + Math.Abs(_board.DestY - PosY) + Math.Abs(_board.DestX - PosX); // : G == 0; H = the distance from Start to Destination pq.Push(new PQNode() { F = Math.Abs(_board.DestY - PosY) + Math.Abs(_board.DestX - PosX), G = 0, Y = PosY, X = PosX }); parent[PosY, PosX] = new Pos(PosY, PosX); // parent of Start is itself while (pq.Count > 0) { // Find out the best candidate PQNode node = pq.Pop(); // Skip if a coordinate has been visited(clsoed) with a faster route, while finding out routes to the same coordinate if (closed[node.Y, node.X]) continue; // Visit saying this coordinate won't visited again closed[node.Y, node.X] = true; // Quit if reached the destination if (node.Y == _board.DestY && node.X == _board.DestX) break; // Reserve(Open) the coordinates by verifying if they are available to move to for (int i = 0; i < deltaY.Length; i++) { int nextY = node.Y + deltaY[i]; int nextX = node.X + deltaX[i]; // Skip when the coordinate is out of the boundary if (nextY < 0 || nextY >= _board.Size || nextX < 0 || nextX >= _board.Size) continue; // Skip when the coordinate is Wall if (_board.Tile[nextY, nextX] == Board.TileType.Wall) continue; if (closed[nextY, nextX]) continue // Evalutate the cost int g = node.G + cost[i]; // the cost to move to the next coordinate int h = Math.Abs(_board.DestY - nextY) + Math.Abs(_board.DestX - nextX); // the distance from the current position to the destination // Skip when a btter route is found if (open[nextY, nextX] < g + h) continue; open[nextY, nextX] = g + h; // Put the calculated score pq.Push(new PQNode() { F = g + h, G = g, Y = nextY, X = nextX }); // input the coordinate to the Priority Queue parent[nextY, nextX] = new Pos(PosY, PosX); // the parent node of the next coordinate is the current node, which is the fastest one (verified by going through the filters above) } } // retrieve the path by follwing the parent nodes inversly CalculatePathFromParent(parent); }