묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
배열과 List의 차이
13분 30초쯤에 GameObject를 담는 List를 하나 만드셨는데 List컬렉션은 C# 기본 배열 자료형 [] 과 어떤 차이점과 장단점이 있나요?
-
해결됨[리뉴얼] 처음하는 파이썬 데이터 분석 (쉽게! 전처리, pandas, 시각화 전과정 익히기) [데이터분석/과학 Part1]
9분 10초 질문입니다.
"xaxis": { "title": "from Oct. 2016 to Sep. 2018", "showticklabels":True, "tick0": "2016-10-31", # 처음 tick 을 설정을 해주지 않을 경우, x 축이 밀리는 경우가 있음 "dtick": "M1", # 한 달 단위로 tick 설정 "tickfont": { "size": 7 } 위와 같이 xaxis를 설정할때, tick0, dtick 옵션이 왜 사용되었는지 궁금합니다. 해당 옵션이 사용되는 것은 전 강의에서 이해가되었지만, 여기서 그려지는 차트는 x축이 카테고리에관한 내용이라, 날짜에관한 tick0, dtick 옵션이 추가된 이유가 이해되지않습니다.
-
미해결홍정모의 따라하며 배우는 C언어
2:00에서. 배열포인터와 포인터
안녕하세요. 2:00때 쯤 (unsigned)yourthings[0]과 (unsigned)temp2가 다르다고 말씀해주셨는데 약간 헷갈려서 질문드립니다. 아래 코드와 같이 yourthings를 가리키는 배열포인터 const char(*yptr)[40] = yourthings; 를 선언 및 초기화 해주고 printf("%u", (unsigned)yptr[0]);로 주소값을 u형태로 출력해봤을 때는 (unsigned)yourthings[0]와 (unsigned)yptr[0]이 동일한 값으로 출력이 됩니다. (unsigned)temp2 얘만 다른 이유는 2차원 배열의 요소를 1차원 포인터가 가리켰기 때문인가요?? 지난 강의를 다시 봤지만 잘 이해가 안 가서 질문 드립니다 ㅠㅠ char yourthings[5][40] = { "Studying the C++ language", "Eating", "Watching Netflix", "Walking around till dark", "Deleting spam emails" }; const char* temp2 = "Studying the C++ language"; const char(*yptr)[40] = yourthings; printf("%s %u %u\n", yourthings[0], (unsigned)yourthings[0], (unsigned)temp2); printf("%u", (unsigned)yptr[0]);
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Player GameObject의 name이 이상해요.
전 캐릭터 오브젝트 이름을 Player로 하고 있는데, 이런 식으로 생성되는 캐릭터들의 이름에 Player_Root이 붙더니 실행할 때 마다 이름이 초기화가 되지 않고 _Root가 계속 뒤에 붙고 있습니다. vs에서 확인해보니, Root.name = $"{original.name}_Root"; 이후에 Original의 name도 뒤에 _Root가 붙고 있습니다.
-
해결됨MQTT 사물인터넷 통신 프로젝트 (Arduino, MQTT, Node.js, mongoDB, Android)
모듈 추가생성이 안돼는 이유가?
좋은 강의 소개받아 공부하고 있습니다 도스 커맨드 모드에서 센서 값과 LED on/off 제어 까지는 성공 하였습니다 그러나 이클립스 단계부터 아래와 같이 막힙니다 "socket_io": "^2.0.4" -> "socket.io": "^2.0.4" 언더바 오타 수정 하여 컴파일 하면 아래 에러 MSG 뜹니다 조언 부탁 합니다 audited 239 packages in 2.816s 1 package is looking for funding run `npm fund` for details found 5 vulnerabilities (3 low, 1 high, 1 critical) run `npm audit fix` to fix them, or `npm audit` for details 발생 (npm 취약점 문제발견) 합니다 DOS CMD 창에서 npm audit fix npm audit 해결이 안됩니다 .... ??????? 추가로 락 메세지와 모듈도 추가 생성 안됩니다 ( "mqtt" "mongodb" "socket.io" ) 감사합니다.
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
안녕하세요 제로초님
제로초님 강의를 바탕으로.. 비슷하게 혼자 만들어보고 있습니다! antd 랑 style-Component를 사용하여 디자인을 하는데.. 이렇게 새로고침을 하면 (코드를 바꾸지 않았음에도 불구하고) 바뀌어 버립니다. (뒤로가기해서 다시 들어올 시에는 유지 되지만 새로고침만 하면 바뀌어 버립니다.) 이런현상은.. 저에게만 일어나는 건가요.. ? 아니면 코드에서 오류를 범했을 때 충돌해서 이렇게 되는 건지 .. 동영상이 따로 첨부가 안되어서 확대해서 봐야하는점 양해 부탁드립니다 ㅜㅜ 추가적으로 개발자 도구를 열어보니 코드를 바꾼 것도 아닌데 새로고침 후에는 style이 적용이 안되는 것을 알 수 있었습니다. [새로고침 전] [새로고침 후]
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
hash된 비밀번호 저장 관련 질문입니다.
안녕하세요 선생님! 양질의 강의 제공해주셔서 감사합니다! console에 찍어본 것 처럼 hash로 잘 변환이 되고, user 또한 제대로 저장된 것 같은데 user.password= hash가 작동을 안하는 것 같습니다 ㅠㅠ database에 plainPassword가 그대로 노출됩니다.. 혹시 무엇이 문제인지 알 수 있을까요?? 감사합니다.
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
며칠동안 해결을 못해 남깁니다 ㅜㅜ
안녕하세요.. 제로초님 ㅜㅜ 며칠동안 해결을 하지 못하여 진도를 나갈수가 없어 ㅜㅜㅜ 큐앤에이 남깁니다 ...(또륵) login버튼을 누르면 redux에서는 'LOG_IN_REQUEST'실행이 되지만..saga에서는 'LOG_IN_REQUEST'로 안넘어갑니다 ㅜ LOG_IN_SUCCESS로도 당연히 안 넘어가구요 ㅜㅜ redux history 에도 LOG_IN_REQUEST만 남고 LOG_IN_SUCCESS나 LOG_IN_FAILURE로는 아예 안넘어갑니다 ㅜㅜ *참고로 console.log로 찍으면 function* watchLogIn()까지는 찍힙니다 ㅜㅜ 대체 왜그럴까요 //sagas/user.js 코드 import { all, delay, fork, put, takeLatest } from 'redux-saga/effects'; import axios from 'axios'; import { LOG_IN_FAILURE, LOG_IN_REQUEST, LOG_IN_SUCCESS, LOG_OUT_FAILURE, LOG_OUT_REQUEST, LOG_OUT_SUCCESS, } from '../reducers/user'; function logInAPI(data) { return axios.post('/api/login', data); } function* logIn(action) { console.log("Loginsaga"); try { //console.log('saga logIn'); // const result = yield call(logInAPI); yield delay(1000); yield put({ type: LOG_IN_SUCCESS, data:action.data, }); } catch (err) { console.error(err); yield put({ type: LOG_IN_FAILURE, data: err.response.data, }); } } function logOutAPI() { return axios.post('/api/logout'); } function* logOut() { try { // const result = yield call(logOutAPI); yield delay(1000); yield put({ type: LOG_OUT_SUCCESS, }); } catch (err) { console.error(err); yield put({ type: LOG_OUT_FAILURE, error: err.response.data, }); } } function* watchLogIn() { console.log("watchLogin"); yield takeLatest(LOG_IN_REQUEST, logIn); } function* watchLogOut() { yield takeLatest(LOG_OUT_REQUEST, logOut); } export default function* userSaga() { yield all([ fork(watchLogIn), fork(watchLogOut), ]); } //reducers/user.js 코드 //reducer 쪼개기! export const LOG_IN_REQUEST = 'LOG_IN_REQUEST'; export const LOG_IN_SUCCESS = 'LOG_IN_SUCCESS'; export const LOG_IN_FAILURE = 'LOG_IN_FAILURE'; export const LOG_OUT_REQUEST = 'LOG_OUT_REQUEST'; export const LOG_OUT_SUCCESS = 'LOG_OUT_SUCCESS'; export const LOG_OUT_FAILURE = 'LOG_OUT_FAILURE'; const dummyUser = { id: 1, nickname: 'songsong', Posts: [], Followings: [], Followers: [], }; export const initialState={ isLoggingIN:false ,//시도에 대한 변수 isLoggedIn: false, isLoggingOUT:false, me: null, signUpdate: {}, loginDate: {} } //actionCreater export const loginRequestAction = (data) => ({ type: LOG_IN_REQUEST, data, }); export const logoutRequestAction = () => ({ type: LOG_OUT_REQUEST, }); const Userreducer=(state=initialState,action)=>{ switch(action.type){ case LOG_IN_REQUEST: console.log('reducer logInReQuest'); return { ...state, isLoggingIN:true, } case LOG_IN_SUCCESS: console.log('reducer logInSuccess'); return { ...state, isLoggingIN:false, isLoggedIn: true, me:{...action.data,nickname:'songsong'} } case 'LOG_IN_FAILURE': return { ...state, isLoggingIN:false, } case LOG_OUT_REQUEST: return { ...state, isLoggingOUT:true, } case LOG_OUT_SUCCESS: return { ...state, isLoggingOUT:false, isLoggedIn: false, me:null } case LOG_OUT_FAILURE: return { ...state, isLoggingOUT:false, } default : return state; } } export default Userreducer;
-
미해결스프링 시큐리티
로그인후 컨트롤러에서 세션을 이용하는 것에 대해 문의 드립니다.
혼자 시큐리티를 이용한 포트폴리오를 만들면서 세션문제를 만나 다른분께서 올리신 세션에 대한 질문을 보고 질문드리게 되었습니다 https://www.inflearn.com/questions/37286 여기에서 Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); Object principal = authentication.getPrincipal(); String username = null; if(principal != null && principal instanceof User){ username = ((User) principal).getUsername(); } 라고 답변해 주셨는데 섹션3-Form인증 구현에서 User를 상속 받은 AccountContext를 만든것을 따라 적용했습니다. 그리고 AuthenticationProvider 클래스 안에서 강의처럼 모두 작성하였고 마지막으로 UsernamePasswordAuthenticationToken authToken = new UsernamePasswordAuthenticationToken( accountContext.getAccount(), null, accountContext.getAuthorities()); 를 만들어 리턴시켜 주었습니다. 그리고 저기 답변주신 코드처럼 if문 안에서 principal의 null 체크와 User를 상속받은 principal인지 확인하는 것인데 로그인 후 Object principal은 Account 객체이고 User를 상속받은 것은 AccountContext라 if문안에 들어가지 않습니다. 이때 UsernamePasswordAuthenticationToken을 수정해야 되는지 모르겠어서 문의 드리게 되 었습니다. 그리고 로그인 하지 않은 유저는 Object principal에 ANONYMOUS가 들어가있고 로그인한 유저는 Account 객체가 들어가서 두 상황 모두 if 문 안에 principal !=null 통과하는 것을 확인 했습니다. 어떠한 상황을 위해 null 여부를 판별하는지 궁금합니다.
-
미해결홍정모의 따라하며 배우는 C++
9.4 강 오버로딩에서 friend operator<와 멤버함수operator<
강의에서 써주신 부분에서 friend를 쓰셨는데 bool operator<(const Cents& c2)를 통해 멤버함수로 바꿔주고 두개를 다 사용할때 어떤게 실행될까 했는데 bool operator<이 실행되더라구요? friend는 멤버함수 operat<이 없을때 실행되는거 같은데 혹시 이러한 우선순위에 대해서 찾아볼려고 하는데 혹시 키워드가 있는 내용인건가요? #include <vector> #include <iostream> #include <algorithm> using namespace std; class Cents { private: int m_cents; public: Cents(const int& input = 0) : m_cents(input) {} int getCents() const { return m_cents; } int& getCents() { return m_cents; } friend bool operator == (const Cents& c1, const Cents &c2) { return c1.m_cents == c2.m_cents; } friend bool operator<(const Cents& c1, const Cents& c2) { cout << "friend인가?" << endl; return c1.m_cents < c2.m_cents; } bool operator<(const Cents& c2) { cout << "어떤게 실행되나?" << endl; return m_cents < c2.m_cents; } friend bool operator>(const Cents& c1, const Cents& c2) { cout << "friend인가?" << endl; return c1.m_cents > c2.m_cents; } friend std::ostream& operator<<(std::ostream &out, const Cents& cents) { //멤버함수로 안되나? out << cents.m_cents; // 한푼도 없을때 참이 나오도록 구현 return out; // 하는 이유는 chaing할려는 것 이러면 cout<<Point<<... 이렇게 연속적으로 쓸수 있다. } friend std::istream& operator>>(std::istream& in, Cents ¢s) {//입력을 받아 수행해야하므로 const 하면 안된다. in >> cents.m_cents; return in; } }; int main() { vector<Cents> arr(20); for (int i = 0; i < 20; i++) { arr[i].getCents() = i; } std::random_shuffle(arr.begin(), arr.end()); for (auto ele : arr) cout << ele << " "; cout << endl; std::sort(arr.begin(), arr.end()); for (auto ele : arr) cout << ele << " "; cout << endl; return 0; }
-
미해결[리뉴얼] 처음하는 MongoDB(몽고DB) 와 NoSQL(빅데이터) 데이터베이스 부트캠프 [입문부터 활용까지] (업데이트)
선생님 수강기한이요....
선생님 수강기한이요..... 제것은 기한이 있는데,,, 지금 구매하는 사람들은 무제한이네요.... • 수강을 계속 듣고 싶은데요.... 또 결재를 해야 하나요?
-
미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
선생님 수강기한이요.....
선생님 수강기한이요..... 제것은 기한이 있는데,,, 지금 구매하는 사람들은 무제한이네요.... • 수강을 계속 듣고 싶은데요.... 또 결재를 해야 하나요?
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
선생님 수강기한이요.....
선생님 수강기한이요..... 제것은 기한이 있는데,,,, 지금 구매하는 사람들은 무제한이네요.... • 수강을 계속 듣고 싶은데요.... 또 결재를 해야 하나요?
-
미해결홍정모의 따라하며 배우는 C언어
1:15초 쯤 말씀해주신 문자포인터 질문
문자포인터 char *str = "Hello, World"; 얘는 "문자열의 첫 번째 주소를 가리키고만 있는 상황이에요." 라고 말씀해주셨는데 교수님의 말씀대로라면 첫번째 "H"의 주소값을 가리키므로 pointer to pointer(이중 포인터) 가 되는것인가요? 첫 번째의 주소면 H의 주소인데 주소를 가리키면 포인터를 가리키는 이중포인터가 맞나요? 저는 개인적으로 "문자열의 첫 번째 요소를 가리킨다." 고 생각했습니다. 제 생각대로 첫 번째 요소를 가리킨다면 "H"를 가리켜, 해당 "H"의 주소값을 str이 가지는 것이 되는데요. 문자포인터가 첫 번째 주소를 가리키는게 아니라, 첫 번째 요소를 가리켜 해당 주소를 값으로 가지는게 아닌가요? 주소를 가리킨다. 는 말이 살짝 헷갈립니다!
-
미해결홍정모의 따라하며 배우는 C언어
6:50초 쯤에 배열 words의 길이 21
같은 비쥬얼 스튜디오 프로그램인데 컴퓨터마다 다른가요? 같은 코드에 같은 프로그램인데 저는 크기 MAXLENGTH 81 그대로 뜨고 14행에서 puts(words)에 경고도 뜨지 않는데요. 혹시 컴퓨터마다 다른지 궁금합니다. 교수님과 마찬가지로 x86이구요.
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
회귀 계수와 절편
1. polyfeatures를 한 결과로서 맨처음 feature인 1은 아마 coef_의 결과값의 맨처음 상수와 곱해져서 회귀식에서 절편을 의미하는 듯한데.... model.intercept_ = 1.76 이라는 결과값은 어떤 의미인가요? 2. 그리고 include_bias 설정값에 따라 왜 RMSE 값이 달라지나요? 단지 절편값이 coef_에 나타나느냐 아니냐의 차이 아닌가요 ㅜ
-
미해결윤재성의 만들면서 배우는 Spring MVC 5
jsr-380까지 듣다가.
jsr-380까지 듣다가 이것을 처음부터 스프링으로 만들어 보고자 다음과 같이 하였으나 에러발생하였습니다. package kr.co.softcampus.config; import java.util.List; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.support.ReloadableResourceBundleMessageSource; import org.springframework.format.FormatterRegistry; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.validation.MessageCodesResolver; import org.springframework.validation.Validator; import org.springframework.web.method.support.HandlerMethodArgumentResolver; import org.springframework.web.method.support.HandlerMethodReturnValueHandler; import org.springframework.web.servlet.HandlerExceptionResolver; import org.springframework.web.servlet.config.annotation.AsyncSupportConfigurer; import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.PathMatchConfigurer; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; import org.springframework.web.servlet.config.annotation.ViewResolverRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; // Spring MVC 프로젝트에 관련된 설정을 하는 클래스 @Configuration // Controller 어노테이션이 셋팅되어 있는 클래스를 Controller로 등록한다. @EnableWebMvc // 스캔할 패키지를 지정한다. @ComponentScan("kr.co.softcampus.controller") public class ServletAppContext implements WebMvcConfigurer{ // Controller의 메서드가 반환하는 jsp의 이름 앞뒤에 경로와 확장자를 붙혀주도록 설정한다. @Override public void configureViewResolvers(ViewResolverRegistry registry) { // TODO Auto-generated method stub WebMvcConfigurer.super.configureViewResolvers(registry); registry.jsp("/WEB-INF/view/", ".jsp"); } // 정적 파일의 경로를 매핑한다. @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { // TODO Auto-generated method stub WebMvcConfigurer.super.addResourceHandlers(registry); registry.addResourceHandler("/**").addResourceLocations("/resources/**/"); } @Bean public ReloadableResourceBundleMessageSource messageSource() { ReloadableResourceBundleMessageSource res=new ReloadableResourceBundleMessageSource(); res.setBasename("/WEB-INF/properties/error_message"); return res; } @Override public void addFormatters(FormatterRegistry registry) { // TODO Auto-generated method stub } @Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { // TODO Auto-generated method stub } @Override public void extendMessageConverters(List<HttpMessageConverter<?>> converters) { // TODO Auto-generated method stub } @Override public Validator getValidator() { // TODO Auto-generated method stub return null; } @Override public void configureContentNegotiation(ContentNegotiationConfigurer configurer) { // TODO Auto-generated method stub } @Override public void configureAsyncSupport(AsyncSupportConfigurer configurer) { // TODO Auto-generated method stub } @Override public void configurePathMatch(PathMatchConfigurer configurer) { // TODO Auto-generated method stub } @Override public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) { // TODO Auto-generated method stub } @Override public void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers) { // TODO Auto-generated method stub } @Override public void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers) { // TODO Auto-generated method stub } @Override public void addInterceptors(InterceptorRegistry registry) { // TODO Auto-generated method stub } @Override public MessageCodesResolver getMessageCodesResolver() { // TODO Auto-generated method stub return null; } @Override public void addViewControllers(ViewControllerRegistry registry) { // TODO Auto-generated method stub } @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { // TODO Auto-generated method stub } @Override public void addCorsMappings(CorsRegistry registry) { // TODO Auto-generated method stub } } WebMvcConfigurer.super.configViewResolvers(registry)에서 에러가 발생하는데요 Cannot directly invoke the abstract method configureViewResolvers(ViewResolverRegistry) for the type WebMvcConfigurer 이런 에러메시지가 나옵니다. 그리고 그 밑에 WebMvcConfigurer.super.addResourceHandlers(registry);에서는 이런 에러메시지가 나옵니다. Cannot directly invoke the abstract method addResourceHandlers(ResourceHandlerRegistry) for the type WebMvcConfigurer 어떻게 해야 하는지요
-
미해결대세는 쿠버네티스 (초급~중급편)
9000?? 90??
Service - ClusterIP 파트에서 그림상으로는 9000번 포트가 열려있는데, 강의 말씀으로는 90번이라고 말씀하시네요. 오타인건지요??
-
해결됨정말 쉽게 풀어보는 코딩 테스트 top 기본 문제 (with 자바)
return 질문
안녕하세요 영상보다가 질문 있어서 질문합니다. 중간에 String에서 StringBuilder로 출력하는걸 바꿨는데 그럼 return문도 sb로 바꾸고 메소드도 public static StringBuilder로 바꿔줘야 하는거 아닌가요?
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
크롤링 후 결과가 3줄씩 출력되는데요
선생님, 안녕하세요. 강의 정말 잘 듣고 있습니다. 그런데 Css selector 사용해서 크롤링하기2 / table 부분에서 코드를 강의와 동일하게 입력했는데 출력 결과물이 다르게 나와서요. 제가 무엇을 실수했는지 좀 알려주시겠어요? 감사합니다. 제가 작성한 코드 res=requests.get("https://davelee-fun.github.io/blog/crawl_html_css.html") soup=BeautifulSoup(res.content,'html.parser') items=soup.select('tr') for item in items: columns=item.select('td') row_str='' for column in columns: row_str +=column.get_text() print(row_str) 결과물 일정 일정커리큘럼 타이틀 일정커리큘럼 타이틀난이도 5.1 ~ 6.15 5.1 ~ 6.15나만의 엣지있는 블로그 사이트 만들기 (취미로 익히는 IT) 5.1 ~ 6.15나만의 엣지있는 블로그 사이트 만들기 (취미로 익히는 IT)초급 6.16 ~ 7.31 6.16 ~ 7.31파이썬과 데이터과학 첫걸음 (IT 기본기 익히기) 6.16 ~ 7.31파이썬과 데이터과학 첫걸음 (IT 기본기 익히기)중급