묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
profile 페이지에서 유저의 팔로잉,팔로우 데이터를 가져오는 이유가 뭔가요 ?
며칠동안 강의 잘 보고 있습니다 제로초님 ㅎㅎㅎ 너무 도움이 많이 됩니다 ! LOGIN, LOAD_MY_INFO 액션 성공시 user 리듀서의 me 값에 팔로잉, 팔로우 데이터를 가지고 있고, FOLLOW, UNFOLLOW 액션 실행 후에도 DB, me의 팔로잉, 팔로우 값이 업데이트되기 때문에 profile 페이지에서 useEffect로 LOAD_FOLLOWERS, LOAD_FOLLOWINGS 액션을 실행해서 이미 가지고 있는 유저의 팔로잉, 팔로우 데이터를 가져올 필요가 없을 것 같고, 위 코드를 생략해도 현재 강의에선 잘 동작하는데 이렇게 코딩하신 이유가 궁금합니다.
-
미해결윤재성의 Kotlin 기반 안드로이드 앱 개발 Part 3 - 데이터관리와 네트워크
선생님 part3까지 정주행해서 많이 배웠는데 ~
part 4 강의 기다리고 있는데 저번에 외부강의 일정 때문에 늦춰진다고 답변 듣긴 했는데 혹시 올해 나오나요 아니면 내년에 나올 확률이 높은 건가여? 대충 일정을 알아야 저도 플랜이 달라져서 아니면 아예 part3까지만 나오고 끝날 수도 있는지 궁금하네요 ~ 여튼 강의 보고 기초적인 부분 많이 배웠습니다 감사합니다~
-
미해결자바스크립트 머신러닝 TensorFlow.js
자바스크립트로 직접 돌려볼 수 있는 있는 예제는 없나요?
기본적인 tensorflow 내용은 다 알고 있습니다. 이를 웹에서 사용해보기 위해서 자바스크립트에서 어떻게 사용되는지 볼려고 했는데, 실제적인 예제는 없어보입니다. 처음에 계속 이론적인 내용만 나오길래, 뒤에는 제대로 실습이 나오겠지했는데..... 계속 나오지 않아서, 혹시 맨 뒤쪽에만 있나해서, 맨 뒤쪽 강의만 클릭해서 봤는데 실습은 아예 안나와보이네요... 최소한 돌려볼 수 있는 예제를 제공해주셨으면 합니다. 예제 코드 위치라도 알려주시면 감사하겠습니다.
-
윤재성의 스프링 프레임워크 개발자를 위한 실습을 통한 입문 과정
9:57초 TestBean t1 = getBean으로 아디 찾아오는게 안돼요
삭제된 글입니다
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
SelfTest.func1() 이 에러가 납니다.
SelfTest.func1()라고 쳐도 unbound method func1() must be called with SelfTest instance as first argument (got nothing instead) 라는 에러메세지가 뜨네요.... 왜 그러는 걸까요?
-
미해결파이썬 데이터시각화 분석 실전 프로젝트
Jupyter notebook 오류
안녕하세요 선생님 강의를 듣던 중, 저번 101 예제파일로 했을 때랑 동일하게 201파일도 명령어를 넣었을 때 찾을 수 없다고 뜨더라고요.. 뭐가 문제인 걸까요?
-
미해결애플 웹사이트 인터랙션 클론!
두 가지 에러들 해결방법을 모르겠습니다 ㅜ
안녕하세요. 강의 잘 듣고있습니다 ! 그런데 콘솔창에 아래 이미지 처럼 에러가 떠서 질문 드립니다. 스크롤을 내릴때는 뜨지 않다가 전부 다 내리고 다시 올려보면 저렇게 에러가 뜹니다. 작동은 됩니다.. (스크롤 비디오 처리 부분) 혹시 빼먹은게 있나 강의도 여러번 다시 보았는데 해결이 나지 않아서 질문 드립니다 ..ㅜㅜ ----- 그리고 또 한가지가 있는데, show scene1 에서 show scene2로 넘어갈때 아래 이미지가 잠깐 뜨고 사라집니다. 강의에서는 저와 다른 텍스트만 잠깐 뜨고 사라져서 css에서 수정하는것을 보았는데 저의 경우에는 위의 이미지처럼 저 텍스트와 이미지가 잠깐 떴다가 사라져서 이것도 해결책을 잘 모르겠습니다ㅠ 완성본에서는 콘솔창에 에러 뜨는 현상도 전혀 없고 잘 작동 됩니다. 제 코드에 문제가 있는건데 html과 css에는 문제가 없는거 같습니다.. (완성본에 적용해보았습니다) 강의는 두번째 스크롤 비디오 처리까지 들었습니다! ----- 아래는 현재 제 코드입니다. (()=>{ let yOffset = 0; // window.pageYOffset 대신 쓸 변수 let prevScrollHeight = 0; // 현재 스크롤 위치(yoffset)보다 이전에 위치한 스크롤 섹션들의 스크롤 높이 값의 합 let currentScene = 0; // 현재 활성화된(눈 앞에 보고 있는) 씬(scroll-section) const sceneInfo = [ { // 0 type: 'sticky', heightNum: 5, // 브라우저 높이의 5배로 scrollHeight 세팅 scrollHeight: 0, objs: { container: document.querySelector('#scroll-section-0'), messageA: document.querySelector('#scroll-section-0 .main-message.a'), messageB: document.querySelector('#scroll-section-0 .main-message.b'), messageC: document.querySelector('#scroll-section-0 .main-message.c'), messageD: document.querySelector('#scroll-section-0 .main-message.d'), canvas: document.querySelector('#video-canvas-0'), context: document.querySelector('#video-canvas-0').getContext('2d'), videoImages: [] }, values: { videoImagesCount: 300, imageSequence: [0, 299], canvas_opacity: [1, 0, { start: 0.9, end: 1}], messageA_opacity_in: [0, 1, { start: 0.1, end: 0.2 }], messageB_opacity_in: [0, 1, { start: 0.3, end: 0.4 }], messageC_opacity_in: [0, 1, { start: 0.5, end: 0.6 }], messageD_opacity_in: [0, 1, { start: 0.7, end: 0.8 }], messageA_translateY_in: [20, 0, { start: 0.1, end: 0.2 }], messageB_translateY_in: [20, 0, { start: 0.3, end: 0.4 }], messageC_translateY_in: [20, 0, { start: 0.5, end: 0.6 }], messageD_translateY_in: [20, 0, { start: 0.7, end: 0.8 }], messageA_opacity_out: [1, 0, { start: 0.25, end: 0.3 }], messageB_opacity_out: [1, 0, { start: 0.45, end: 0.5 }], messageC_opacity_out: [1, 0, { start: 0.65, end: 0.7 }], messageD_opacity_out: [1, 0, { start: 0.85, end: 0.9 }], messageA_translateY_out: [0, -20, { start: 0.25, end: 0.3 }], messageB_translateY_out: [0, -20, { start: 0.45, end: 0.5 }], messageC_translateY_out: [0, -20, { start: 0.65, end: 0.7 }], messageD_translateY_out: [0, -20, { start: 0.85, end: 0.9 }] } }, { // 1 type: 'normal', // heightNum: 5, // type normal에서는 필요 없음 scrollHeight: 0, objs: { container: document.querySelector('#scroll-section-1') } }, { // 2 type: 'sticky', heightNum: 5, scrollHeight: 0, objs: { container: document.querySelector('#scroll-section-2'), messageA: document.querySelector('#scroll-section-2 .a'), messageB: document.querySelector('#scroll-section-2 .b'), messageC: document.querySelector('#scroll-section-2 .c'), pinB: document.querySelector('#scroll-section-2 .b .pin'), pinC: document.querySelector('#scroll-section-2 .c .pin'), canvas: document.querySelector('#video-canvas-1'), context: document.querySelector('#video-canvas-1').getContext('2d'), videoImages: [] }, values: { videoImagesCount: 960, imageSequence: [0, 959], canvas_opacity_in: [0, 1, { start: 0, end: 0.1 }], canvas_opacity_out: [1, 0, { start: 0.95, end: 1 }], messageA_translateY_in: [20, 0, { start: 0.15, end: 0.2 }], messageB_translateY_in: [30, 0, { start: 0.6, end: 0.65 }], messageC_translateY_in: [30, 0, { start: 0.87, end: 0.92 }], messageA_opacity_in: [0, 1, { start: 0.25, end: 0.3 }], messageB_opacity_in: [0, 1, { start: 0.6, end: 0.65 }], messageC_opacity_in: [0, 1, { start: 0.87, end: 0.92 }], messageA_translateY_out: [0, -20, { start: 0.4, end: 0.45 }], messageB_translateY_out: [0, -20, { start: 0.68, end: 0.73 }], messageC_translateY_out: [0, -20, { start: 0.95, end: 1 }], messageA_opacity_out: [1, 0, { start: 0.4, end: 0.45 }], messageB_opacity_out: [1, 0, { start: 0.68, end: 0.73 }], messageC_opacity_out: [1, 0, { start: 0.95, end: 1 }], pinB_scaleY: [0.5, 1, { start: 0.6, end: 0.65 }], pinC_scaleY: [0.5, 1, { start: 0.87, end: 0.92 }] } }, { // 3 type: 'sticky', heightNum: 5, scrollHeight: 0, objs: { container: document.querySelector('#scroll-section-3'), canvasCaption: document.querySelector('.canvas-caption') }, values: { } } ]; function setCanvasImages() { let imgElem; for ( let i = 0; i < sceneInfo[0].values.videoImagesCount; i++) { imgElem = new Image(); // = imgElems = document.createElement('img'); imgElem.src = `./video/001/IMG_${6726 + i}.JPG`; sceneInfo[0].objs.videoImages.push(imgElem); } let imgElem2; for ( let i = 0; i < sceneInfo[2].values.videoImagesCount; i++) { imgElem2 = new Image(); // = imgElems = document.createElement('img'); imgElem2.src = `./video/002/IMG_${7027 + i}.JPG`; sceneInfo[2].objs.videoImages.push(imgElem2); } // console.log(sceneInfo[0].objs.videoImages); } setCanvasImages(); function setLayout() { // 각 스크롤 섹션의 높이 세팅 for (let i = 0; i < sceneInfo.length; i++) { if (sceneInfo[i].type === 'sticky') { sceneInfo[i].scrollHeight = sceneInfo[i].heightNum * window.innerHeight; } else if (sceneInfo[i].type === 'normal') { sceneInfo[i].scrollHeight = sceneInfo[i].objs.container.offsetHeight; } sceneInfo[i].objs.container.style.height = `${sceneInfo[i].scrollHeight}px`; } yOffset = window.pageYOffset; let totalScrollHeight = 0; for ( let i = 0; i < sceneInfo.length; i++) { totalScrollHeight += sceneInfo[i].scrollHeight; if (totalScrollHeight >= yOffset) { currentScene = i; break; } } document.body.setAttribute('id', `show-scene-${currentScene}`); const heightRatio = window.innerHeight / 1080; sceneInfo[0].objs.canvas.style.transform = `translate3d(-50%, -50%, 0) scale(${heightRatio})`; sceneInfo[2].objs.canvas.style.transform = `translate3d(-50%, -50%, 0) scale(${heightRatio})`; // console.log(sceneInfo); } function calcValues(values, currentYOffset) { let rv; // 현재 씬 (스크롤섹션)에서 스크롤된 범위를 비율로 구하기 const scrollHeight = sceneInfo[currentScene].scrollHeight; const scrollRatio = currentYOffset / scrollHeight; if (values.length === 3 ) { // start ~ end 사이에 애니메이션 실행 const partScrollStart = values[2].start * scrollHeight; const partScrollEnd = values[2].end * scrollHeight; const partScrollHeight = partScrollEnd - partScrollStart; if(currentYOffset >= partScrollStart && currentYOffset <= partScrollEnd) { rv = (currentYOffset - partScrollStart) / partScrollHeight * (values[1] - values[0]) + values[0]; } else if (currentYOffset < partScrollStart) { rv = values[0]; } else if (currentYOffset > partScrollEnd) { rv = values[1]; } } else { rv = scrollRatio * (values[1] - values[0]) + values[0]; } return rv; } function playAnimation() { const objs = sceneInfo[currentScene].objs; const values = sceneInfo[currentScene].values; const currentYOffset = yOffset - prevScrollHeight; const scrollHeight = sceneInfo[currentScene].scrollHeight; const scrollRatio = currentYOffset / scrollHeight; switch (currentScene) { case 0: // console.log('0 play'); let sequence = Math.round(calcValues(values.imageSequence, currentYOffset)); // console.log(sequence); objs.context.drawImage(objs.videoImages[sequence], 0, 0); objs.canvas.style.opacity = calcValues(values.canvas_opacity, currentYOffset); if (scrollRatio <= 0.22) { // in objs.messageA.style.opacity = calcValues(values.messageA_opacity_in, currentYOffset); objs.messageA.style.transform = `translate3d(0, ${calcValues(values.messageA_translateY_in, currentYOffset)}%, 0)`; } else { // out objs.messageA.style.opacity = calcValues(values.messageA_opacity_out, currentYOffset); objs.messageA.style.transform = `translate3d(0, ${calcValues(values.messageA_translateY_out, currentYOffset)}%, 0)`; } if (scrollRatio <= 0.42) { // in objs.messageB.style.opacity = calcValues(values.messageB_opacity_in, currentYOffset); objs.messageB.style.transform = `translate3d(0, ${calcValues(values.messageB_translateY_in, currentYOffset)}%, 0)`; } else { // out objs.messageB.style.opacity = calcValues(values.messageB_opacity_out, currentYOffset); objs.messageB.style.transform = `translate3d(0, ${calcValues(values.messageB_translateY_out, currentYOffset)}%, 0)`; } if (scrollRatio <= 0.62) { // in objs.messageC.style.opacity = calcValues(values.messageC_opacity_in, currentYOffset); objs.messageC.style.transform = `translate3d(0, ${calcValues(values.messageC_translateY_in, currentYOffset)}%, 0)`; } else { // out objs.messageC.style.opacity = calcValues(values.messageC_opacity_out, currentYOffset); objs.messageC.style.transform = `translate3d(0, ${calcValues(values.messageC_translateY_out, currentYOffset)}%, 0)`; } if (scrollRatio <= 0.82) { // in objs.messageD.style.opacity = calcValues(values.messageD_opacity_in, currentYOffset); objs.messageD.style.transform = `translate3d(0, ${calcValues(values.messageD_translateY_in, currentYOffset)}%, 0)`; } else { // out objs.messageD.style.opacity = calcValues(values.messageD_opacity_out, currentYOffset); objs.messageD.style.transform = `translate3d(0, ${calcValues(values.messageD_translateY_out, currentYOffset)}%, 0)`; } break; case 2: // console.log('2 play'); let sequence2 = Math.round(calcValues(values.imageSequence, currentYOffset)); objs.context.drawImage(objs.videoImages[sequence2], 0, 0); if (scrollRatio <= 0.5) { objs.canvas.style.opacity = calcValues(values.canvas_opacity_in, currentYOffset); } else { objs.canvas.style.opacity = calcValues(values.canvas_opacity_out, currentYOffset); } if (scrollRatio <= 0.32) { // in objs.messageA.style.opacity = calcValues(values.messageA_opacity_in, currentYOffset); objs.messageA.style.transform = `translate3d(0, ${calcValues(values.messageA_translateY_in, currentYOffset)}%, 0)`; } else { // out objs.messageA.style.opacity = calcValues(values.messageA_opacity_out, currentYOffset); objs.messageA.style.transform = `translate3d(0, ${calcValues(values.messageA_translateY_out, currentYOffset)}%, 0)`; } if (scrollRatio <= 0.67) { // in objs.messageB.style.transform = `translate3d(0, ${calcValues(values.messageB_translateY_in, currentYOffset)}%, 0)`; objs.messageB.style.opacity = calcValues(values.messageB_opacity_in, currentYOffset); objs.pinB.style.transform = `scaleY(${calcValues(values.pinB_scaleY, currentYOffset)})`; } else { // out objs.messageB.style.transform = `translate3d(0, ${calcValues(values.messageB_translateY_out, currentYOffset)}%, 0)`; objs.messageB.style.opacity = calcValues(values.messageB_opacity_out, currentYOffset); objs.pinB.style.transform = `scaleY(${calcValues(values.pinB_scaleY, currentYOffset)})`; } if (scrollRatio <= 0.93) { // in objs.messageC.style.transform = `translate3d(0, ${calcValues(values.messageC_translateY_in, currentYOffset)}%, 0)`; objs.messageC.style.opacity = calcValues(values.messageC_opacity_in, currentYOffset); objs.pinC.style.transform = `scaleY(${calcValues(values.pinC_scaleY, currentYOffset)})`; } else { // out objs.messageC.style.transform = `translate3d(0, ${calcValues(values.messageC_translateY_out, currentYOffset)}%, 0)`; objs.messageC.style.opacity = calcValues(values.messageC_opacity_out, currentYOffset); objs.pinC.style.transform = `scaleY(${calcValues(values.pinC_scaleY, currentYOffset)})`; } break; case 3: // console.log('3 play'); break; } } function scrollLoop() { prevScrollHeight = 0; for (let i = 0; i < currentScene; i++) { prevScrollHeight = prevScrollHeight + sceneInfo[i].scrollHeight; // +=를 사용하고 뒤에 prevScrollHeight 지워도 동일 } if(yOffset > prevScrollHeight + sceneInfo[currentScene].scrollHeight) { currentScene++; document.body.setAttribute('id', `show-scene-${currentScene}`); } if(yOffset < prevScrollHeight) { if (currentScene === 0) return; // 브라우저 바운스 효과로 인해 마이너스가 되는것을 방지 currentScene--; document.body.setAttribute('id', `show-scene-${currentScene}`); } playAnimation(); } window.addEventListener('scroll', () => { yOffset = window.pageYOffset; scrollLoop(); }); window.addEventListener('load', () => { setLayout(); sceneInfo[0].objs.context.drawImage(sceneInfo[0].objs.videoImages[0], 0, 0); }); window.addEventListener('resize', setLayout); setLayout(); })();
-
미해결Razor Pages 멤버십 서비스 초급과정(.NET5)
이미 스캐폴딩을 한 경우에 강의 코드들을 적용하고 마이그레이션 하면 어떻게 될까요?
안녕하세요. 좋은 강의 잘 듣고 있습니다. 이미 Identity 폴더에 스캐폴딩을 했고, AspNetUsers 등의 엔티티가 생성되어 있는 상황인데, 이 강의를 보니 테이블 명도 바꾸고 하던데.. 강의에 사용된 코드들을 적용하고 마이그레이션 해도 될까요? 아니면 기존 걸 지우고 해야 하나요? 마이그레이션에서 하도 에러를 많이 겪어서 겁이 납니다. 좋은 팁이나 가이드 부탁드립니다. 감사합니다~
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
입력예제 2의 10 숫자는 왜 답에서 제외 되는지 궁금합니다.
안녕하세요 강의 잘 듣고 있습니다. 문제 풀이도 보고 알고리즘도 돌려보고 했는데 이해되지 않는 부분이 있습니다. 아래 예제에서 알고리즘을 돌리기 전에 생각해보면 증가수열은 당연히 3, 6, 9, 10이 되어야 하는데 답은 3, 6, 9 인 3개 길이만 출력됩니다. 알고리즘 오류인지.. 길이3이 답이 될수 밖에없는건지.. 설명좀 부탁드리겠습니다. 좋은 강의 감사합니다. ▣ 입력예제 2 10 3 2 10 1 5 4 7 8 9 6 ▣ 출력예제 2 3 LRR
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
Bayesian Optimization 관련 질문드립니다.
안녕하세요! 항상 좋은 강의 잘 듣고 있습니다 :) 다름이 아니라 수업을 들으며, 베이지안 최적화 방법을 통한 하이퍼 파라미터 튜닝 과정에서 헷갈리는 부분이 있어서 질문 올리게 되었습니다. 선생님이 예시로 보여주신 코드처럼 iteration을 수행할 때마다, 하이퍼 파라미터를 입력받아 학습하고 rmse 값을 반환하는 함수를 생성해주고자 합니다. 그런데 랜덤포레스트 모델에서 베이지안 최적화(cross validation 수행)을 하고자 할 때, 만약 평가 지표를 RMSE를 사용하고자 한다면 아래와 같이 코드를 작성하면 되는 것인가요? 구글링을 좀 해보니 함수 반환 값을 "return -mean_rmse"와 같이 뒤에 -1 을 곱해서 rmse 값을 최소화 해주어야 한다는 글을 몇 개 보았는데, 어떤 것이 맞는 건지 헷갈리네요... 즉, return 값에 "mean_rmse"를 해주는 것이 맞는지, 아니면 "-mean_rmse"를 해주는 것이 맞는지 궁금합니다. rf_bayes_params = { 'max_depth': (6, 12), 'min_samples_leaf': (8, 18), 'min_samples_split': (8, 20) } def rf_eval(max_depth, min_samples_leaf, min_samples_split): params = { # n_estimators 값은 100으로 고정 'n_estimators': 100, # 호출 시, 실수형 값들이 들어오므로 정수형 하이퍼 파라미터는 정수형으로 변경해줘야 함 'max_depth': int(round(max_depth)), 'min_samples_leaf': int(round(min_samples_leaf)), 'min_samples_split': int(round(min_samples_split)) } rf = RandomForestRegressor(**params, n_jobs = -1, random_state = 1021) # Cross Validation neg_mse_scores = cross_val_score(rf, X_features, y_target, # CV를 수행할 것이므로, 전체 학습 데이터 셋을 사용 scoring = 'neg_mean_squared_error', cv = 3) rmse_scores = np.sqrt(-1 * neg_mse_scores) mean_rmse = np.mean(rmse_scores) return mean_rmse rf_bayes = BayesianOptimization(f = rf_eval, pbounds = rf_bayes_params, random_state = 1021) rf_bayes.maximize(init_points = 5, n_iter = 25) rf_bayes.res
-
미해결쉽고 빠르게 익히는 Power BI (기본편)
데이터가져오기 에러
POWER BI서비스에서 데이터가져오기하려는데 매출분석 파일을 가져오려니 아래와같은 메시지가 뜹니다.
-
미해결유니티(Unity)로 시작하는 게임개발: Part 2. C# 프로그래밍 입문
연습문제 파일들 압축된 것 찾을수가 없어요
선생님 연습문제 파일들 하나씩 다운 받기 힘드니까 나중에 압축해서 한번에 올려주시겠다고 강의 8분쯤에서 말씀하셨는데요 연습문제 파일들 압축된 것 찾을 수가 없어서 질문 남깁니다. 선생님 카페 자료게시판에도 없는 것 같아서요. 연습문제 파일들 전부 갖고 있으면 알려주신 방법대로 복습하기 좋을 것 같습니다!
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
안녕하세요 선생님 checkbox질문입니다ㅠㅠㅠ
안녕하세요 선생님 수업 정말 감사하게 잘듣고있는 한 학생입니다. 저는 toggleHandler를 선언할때 newChecked 배열을 쓰지않고 바로바로 Checked에 접근했는데 checked함수까지 선생님과 똑같이 설정하고 테스트해봣는데 정상적으로 작동하지 않아서요ㅠㅠ 혹시 newChecked로 접근하는 것과 저처럼 바로 setChecked로 접근하는 차이가 있을까요??ㅠㅠ const toggleHandler = (id) => { let currentIndex = Checked.indexOf(id) //let newChecked = [...Checked] if (currentIndex === -1) { setChecked([...Checked, id]) //newChecked.push(id) } else { Checked.splice(currentIndex, 1) //newChecked.splice(currentIndex, 1) } //setChecked(newChecked) }
-
미해결마케팅 에이전시 대표에게 배우는 페이스북/인스타그램 광고 마스터하기
페이스북 광고 가격결정 원리에 대해서 궁금한점이 있습니다.
좋은 강의 감사합니다... 강의내용중에 페이스북 광고 가격결정 원리에서 1. adAction rates 부분이 있는데요... 이게 해당 광고 계정의 과거 성과 클릭,전활율인데...이게 광고계정인지 아님 캠페인 기준인지 궁금합니다. 2. 그리고, 신규 새로 만든 사람의 경우에는 이부분에 대한 데이터 가없으므로 곱해지는 값 자체가 낮을수 밖에 없는데 이건 어쩔수 없는것인지 아니면 어느정도의 차이를 두는 방안이 페이스북에 있는지 궁금합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
findAll함수 질문입니다..
order 목록이 계속 안나오길래 역추적(?)중에 이 부분을 확인하려고 다음과같이 바꿨는데도 아무것도 뜨지 않는데 혹시 어떤 문제가 있는건가요? 데이터베이스를 확인해보니 orders에 정상적으로 데이터는 들어가 있는데요..
-
미해결웹 게임을 만들며 배우는 React
리액트 css 질문드립니다!!
리액트는 자바스크립트 담당이라고 하셨는데 css-Module 이나 styled-components는 사용안하시나요? 프론트에서 css쪽은 어떻게 작성하는게 제일 좋은 방법일까요 ㅠㅠ
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
"'Creature.type' 멤버를 숨깁니다"
TextRPG2 영상을 쭉 훑고 난 뒤에 제 힘으로 다시 처음부터 작성해보려고 했다가 하나 거슬리는 부분이 있어서 질문드립니다. // Creature 클래스 class Creature { protected CreatureType type; // ... } // Player 클래스 class Player : Creature { protected PlayerType type = PlayerType.NONE; // ... } 위와 같이 각 클래스 타입을 지정하는 줄을 작성을 하니, Player 클래스의 변수 "type" 부분에 초록색 줄이 그어지며 "CS0108: 'Player.type'은 상속된 'Creature.type' 멤버를 숨깁니다"라는 메세지가 뜹니다. 이것저것 건드려보다가 확인한 결과 Creature 클래스에서 맨 앞의 protected를 지우니까 초록줄이 사라진 것을 확인했습니다. 이 상황에서 protected가 있고 없고의 차이가 무엇인지 헷갈려서 질문드리고 싶습니다.
-
해결됨Kotlin으로 개발하는 Spring Boot Web MVC
HTTP Method 설명에서요~ PATCH 메서드는 왜 없을까요?
실무에서 잘 사용하지 않나요? 또, GET의 DataBody가 없다고 하셨는데, Request Body에 대한 RFC 표준이 갱신되어서 작성은 가능하지만 예전 표준의 잔재로 일부 서비스에선 해당 정보에 대해 응답하지 않을 수 있다고 알고 있습니다.
-
미해결iOS/Android 앱 개발을 위한 실전 React Native - Basic
OS 가 Windows 일 경우 환경설정을 어떻게 해야하나요?
오늘 오후부터 시작했습니다 Installation 2 하고 있는데 OS 가 Windows 여서 찾이가 있다보니 불가능간거 몇 빼고 하려고 하니 emulator 와 code 가 연결이 안되고 오류가 나가있습니다 iOS 는 빼고 Android 만 할 계획있니다 처음 단계로 나온 nvm 을 Windows 에서 어떻게 설치해야되는지와 Cocoa 와 xCode 는 알되테니 아이에 빼도 되는지 아니면 Windows 에서 다른거로 대신할 수 있는지 알았으면 합니다 대처할게 있다면 어떻게 설정해야 하는지와
-
미해결홍정모의 따라하며 배우는 C언어
2:30 ~2:3 2
오디오가 나갔습니다. 확인부탁드립니다.