묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
메쉬 그림자 질문드립니다.
FBX로 가져온 메쉬도 그림자를 띄우려면 어떻게 해야하나요 ?
-
미해결자바스크립트+jQuery 기초부터 실무까지 : 중급 Part.2
'사용자 정의 이벤트 만들기' 에 대한 교안 설명 부분이 누락된 것 같습니다.
<사용자 정의 이벤트>에 대한 이론 설명인 교안 22~23쪽 설명 영상이 없는 것 같습니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part8: Entity Framework Core
[마이그레이션 질문] 테이블 데이터 백업
| PlayerId | Name | 1 "1" 2 "2" 3 "3" 이렇게 두 개의 컬럼이 존재하는 테이블을 마이그레이션 해두고("m-1"이라 하겠습니다) 아래와 같이 GuildId 컬럼 추가 후 데이터 적용한 상태를 마이그레이션("m-2"라 하겠습니다) 했습니다. | PlayerId | Name | GuildId | 1 "1" 1 2 "2" 1 3 "3" 1 이후, m-2(최신) > m-1 > m-2 와 같은 순서로 마이그레이션을 적용할 경우, 마지막 m-2에서GuildId 컬럼의 데이터 값이 기본값인 0으로 세팅되는데, | PlayerId | Name | GuildId | 1 "1" 0 2 "2" 0 3 "3" 0 m-2(최신) > m-1 변경 시 기존 m-2 상태의 테이블 데이터를 백업하고 예제와 같이 컬럼이 없었던 때의 마이그레이션을 적용한 후 다시 돌아왔을 때 기존 데이터가 유지되는 기능은 없을까요? | PlayerId | Name | GuildId | (m-2) 1 "1" 1 2 "2" 1 3 "3" 1 | | PlayerId | Name | (m-1) 1 "1" 2 "2" 3 "3" | | PlayerId | Name | GuildId | (m-2) 1 "1" 1 2 "2" 1 3 "3" 1
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
spring mvc pdf -56 page
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 56page 설명에 모델: 뷰에 출력할 데이터를 담아둔다. 뷰가 필요한 데이터를 모두 모델에 담아서 전달해주는 덕분에 뷰는.... 에서 뷰가 필요한 데이터를 모델에 담아서 전달해주는 것이 아닌 컨트롤러가 필요한 데이터를 모두 모델에 담아서 전달해주는 것이 아닌가요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
antd import하는 과정에서 오류가 발생합니다 ㅠㅠ
안녕하세요, 선생님! 올려주신 수업 늦었지만 잘 듣고 있습니다. 따라하는 과정에서 문제가 있어서요 ㅠㅠ import React from 'react'; import { Typography, Button, Form , Input } from 'antd'; const { Title } = Typography; const { Textarea } = Input; function UploadProductPage() { return ( <div style={{ maxWidth: '700px', margin: '2rem auto' }}> <div style={{ textAligh: 'center', marginBottom: '2rem' }}> <Title level={2}>여행 상품 업로드</Title> </div> <br /> <br /> <Form> {/* Drop Zone */} <br /> <br /> <label>이름</label> <Input /> <br /> <br /> <label>설명</label> <Textarea /> <br /> <br /> <label>가격($)</label> <Input /> <br /> <br /> <select> <option></option> </select> <br /> <br /> <Button> 확인 </Button> </Form> </div> ) } export default UploadProductPage 업로드 페이지에 이동시, 아래와 같은 오류가 떠서요... 비슷한 사례가 있었길래 그거 참고해서 해도 문제가 있어서 방법을 잘 모르겠습니다ㅠㅠ 어떻게 하면 좋을지 도움 요청드립니다.
-
미해결Slack 클론 코딩[실시간 채팅 with React]
npm i -D eslint-config-react-app eslint-plugin-flowtype eslint-plugin-import eslint-plugin-jsx-ally 설치시 에러
안녕하세요, eslint 플러그인들 설치하다가 에러가 났는데, 다시 설치해봐도 똑같은 에러만 반복이 됩니다.. 버전을 낮추라는것 같긴 한데, 버전을 낮추게되면 파일 여기저기에서 에러가 발생할까봐 무섭네요 에러를 어떻게하면 해결할 수 있을까요? `npm i -D eslint-config-react-app eslint-plugin-flowtype eslint-plugin-import eslint-plugin-jsx-ally`
-
해결됨PHP 7+ 프로그래밍: 객체지향
로컬환경에서 개발 후 운영환경으로 배포 시 발생하는 이슈에 대한 문의입니다.
질문에 앞서 해당 질문은 'CentOS 7.* 서버쪽으로 배포를 해보던 중에 질문드립니다.' 질문과 연관됩니다. 안녕하세요. 이번 강의를 통해 만들어본 프로젝트를 운영환경쪽으로 배포해 보고자 합니다.운영환경 서버 S/W 정보는 아래와 같습니다. [서버 S/W 정보] 1. OS: CentOS 7.9 2. Language: PHP 7.3.27 3. Database: MariaDB 10.4.17 4. Web Server: Apache 2.4 (기본적인 APM 구성을 따르고 있습니다.) 현재 아파치 웹 서버의 가상호스트(VirtualHost) 설정을 통해 부여된 도메인으로 접근이 가능하도록 설정해 놓은 상황입니다. 하지만 사이트 접근 시 500 Error 페이지로 전환됨에 따라 PHP error log를 확인해 본 결과 아래와 같은 에러 메시지가 출력되고 있는 상황이었습니다. PHP Parse error: syntax error, unexpected '=>' (T_DOUBLE_ARROW), expecting ')' in {DOCUMENT ROOT}/vendor/painkill2r/inflearn-lecture-lib/src/Application.php on line 27 소스코드를 확인해 보니 Arrow Function에서 문제가 발생하는 것 같아서 문법 지원 버전을 확인해보니 PHP 7.4부터 지원되는 문법으로 확인이 되어 운영환경은 PHP 7.3을 사용하고 있기 때문에 에러 페이지로 전환되는 것으로 원인 파악이 되었는데요. 이런 경우 PHP 버전 업데이트를 하지 않고서는 해결이 불가능한 문제인지 아니면 다른 문법으로 변경을 해서라도 접속이 되게 할 수 있는지 첨언 부탁드립니다.감사합니다.
-
미해결블렌더 왕초보 입문 기초강의
화면에 강의가 안보이는데... 혹시 저만 그런가요?
화면에 동영상 강의가 안보이고 링크만 있는데 저만 그런가요?ㅎㅎ;;
-
미해결[하루 10분|Web Project] HTML/JS/CSS로 나만의 심리테스트 사이트 만들기
netlify 사이트 도메인 등록할때 지금이랑은 UI도 좀 다르고 ..
지금은 도메인 등록하는게 무조건 유료로 바뀐건가요~?
-
미해결핵심만 쉽게, 모두의 SQL 데이터 분석
2. customer 행 오류 커밋 완료
기초 통계 분석문 작성 강의를 듣고 있습니다 sql_practice 파일 이름명을 복사해서 @c:\sql_practice\2.customer.sql; 만들어서 실행하는데 다른 파일들은 행 삽입이 완료되었습니다. 커밋완료 라고 뜨는데 2.customer가 행 시작 중 오류와 커밋 완료가 같이 뜨네요 제대로 된건지 SELECT* FROM address; 쳐봤을 때 강남구 같은 주소가 이상한 문자로 뜨는데 어떻게 해야하나요? 도와주세요ㅠㅠ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
서비스 계층 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 서비스 계층에 대해 질문이 있습니다. 강의 내용에선 서비스는 비즈니스 로직을 처리하는 역할이라고 해 주셨고, 저도 계속 스프링의 전체적인 흐름은 컨트롤러 -> 서비스 -> DB접근 계층으로 설계해놓고 가는걸로 알고 있었습니다. [상황] 최근 취업한 회사에서 제가 맡게되는 시스템의 코드도 강의 내용처럼 컨트롤러 -> 서비스 -> DB접근 계층으로 설계되어있을줄 알았는데, 코드를 보니 흐름의 설계가 컨트롤러 -> 서비스 -> 프로세스 -> DAO 더라구요. (시스템은 10년이상 되었고, 전자정부1 버전인 것 같습니다.) 서비스는 단순히 프로세스 클래스의 메서드를 호출하고, 그 값을 바로 리턴만 해주는 형식으로 작성되어 있습니다.예시) @Service("XXXService") public class XXXServiceImpl implements XXXService { @Resource("XXXProcess"); private XXXProcess xxxProcess; // 구현체인 XXXProcessImpl 을 주입받는 인터페이스 타입 입니다. public List method() { return xxxProcess.method(); } } 위처럼 작성되어 있던 것 같아요. 그래서 실질적인 비즈니스 로직은 프로세스 클래스에 있습니다. 어노테이션은 Service, Process 클래스 모두 @Service 라고 붙어있었습니다. [궁금한 점] 왜 서비스에 로직을 넣지 않고 단순히 호출만 하는 계층으로 만들고, 굳이 프로세스 라는것을 하나 더 만들어서 여기에 비즈니스 로직을 작성하는 식으로 설계를 한 것인지 궁금해서 선배님께 물어봤는데, 오래전 시스템 만들어질때 설계하신 분이 아니다보니 확실한 답을 못 주시는 것 같더라구요. 강사님께서는 SI부터 현재 서비스기업 기술이사까지의 경험이 있으신 분이기에 시원한 답을 주실 것 같아서 질문 드립니다... 질문이 계층에 대해 설명해주신 강의내용과 관련된 질문이라고 판단해서 올리지만, 혹시 관련없는 질문이라면 죄송합니다.
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
혹시 반례가 있을까요 선생님?
혼자 풀어보면서 2중 for문으로 풀어봤는데 혹시 반례가 있는지 궁금해서요. 강의 정말 재밌게 듣고 있어요! :) function solution(s, t) { let answer = []; // time complexity : O(n^2) let tIndicies = []; for (let i = 0; i < s.length; i++) { if (s[i] == t) tIndicies.push(i) } for (let i = 0; i < s.length; i++) { let min = Number.MAX_SAFE_INTEGER; for (let j = 0; j < tIndicies.length; j++) { let position = Math.abs(i - tIndicies[j]); if (min > position) min = position; } answer.push(min); } return answer; } let str = "teachermode"; console.log(solution(str, 'e'));
-
해결됨반복되는 내 업무 자동화하기 - Power Automate(Flow)
메일 발송 관련
안녕하세요 저희 회사는 Office 365 (Exchange Online) 메일이 아니라 회사 자체 온프레미스 메일을 사용 중에 있습니다. 팀즈,쉐어포인트,원드라이브 등은 모두 사용합니다. 그런 경우 메일 연동을 어떻게 할 수 있을가요?
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
Spring Initializer을 이용하여 프로젝트 생성 후 실행 시 'invalid source release: 11' 에러메시지가 출력되는 사항에 대한 내용 공유
Spring Initializer을 이용하여 프로젝트 생성 후 실행 시 'invalid source release: 11' 에러메시지가 출력되는 사항에 대한 내용 공유드립니다. 제가 겪었던 문제였으며, 아래 기재된 링크들을 참고하여 해결하였습니다. [Google 검색 단어: spring boot Cause: invalid source release: 11] https://milenote.tistory.com/63 https://blog.naver.com/PostView.naver?blogId=tofhadl529&logNo=222374497101&from=search&redirect=Log&widgetTypeCall=true&directAccess=false
-
해결됨[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
200을 404로 변경해도 되는지 질문드리고 싶습니다
강사님 안녕하세요가르쳐주신 소스코드 따라해보다가 궁금한 점이 생겨서 질문드리고 싶습니다 14행에서 200을 404로 변경해보고 8행에 일부러 에러를 줘봤습니다 웹페이지는 동일하게 에러처리를 보여주는 것 같아서, 혹시 이렇게 변경해도 되는지 질문드리고 싶습니다
-
해결됨웹 게임을 만들며 배우는 React
이번강의 코드의 동작결과를 바탕으로 예측한 동작순서가 맞는지 알고싶습니다.
이번 강의를 보고 코드를 정리한 후 실행결과를 확인했습니다. 콘솔이 생각했던것 보다 7라인 더 찍혀서 궁금해서 질문 남깁니다. 물론 다음 강의에 useMemo나 useCallback으로 문제를 해결하겠지만, 제가 생각한 동작 순서가 맞는지 궁금합니다. 코드 import React, { useEffect, useRef, useState, useMemo } from 'react' import Ball from './Ball' function getWinNumbers() { console.log('getWinNumbers함수') const candidate = Array(45) .fill() .map((v, i) => i + 1) const shuffle = [] while (candidate.length > 0) { shuffle.push( candidate.splice(Math.floor(Math.random() * candidate.length), 1)[0] ) } const bonusNumber = shuffle[shuffle.length - 1] const winNumbers = shuffle.slice(0, 6).sort((p, c) => p - c) return [...winNumbers, bonusNumber] } const Lotto = () => { const [winNumbers, setWinNumbers] = useState(getWinNumbers()) const [winBalls, setWinBalls] = useState([]) const [bonus, setBonus] = useState(null) const [redo, setRedo] = useState(false) const timeouts = useRef([]) useEffect(() => { console.log('useEffect1') for (let i = 0; i < winNumbers.length - 1; i++) { timeouts.current[i] = setTimeout(() => { setWinBalls(prevState => [...prevState, winNumbers[i]]) }, (i + 1) * 1000) } timeouts.current[6] = setTimeout(() => { setBonus(winNumbers[6]) setRedo(true) }, 7000) return () => { timeouts.current.forEach(v => { clearTimeout(v) }) } }, [timeouts.current]) // 빈 배열이면 componentDidMount와 동일 // 배열에 요소가 있으면 componentDidMount랑 componentDidUpdate 둘 다 수행 useEffect(() => { console.log('useEffect2 - 로또 숫자를 생성합니다.') }, [winNumbers]) const onClickRedo = () => { console.log('onClickRedo') setWinNumbers(getWinNumbers()) setWinBalls([]) setBonus(null) setRedo(false) timeouts.current = [] } return ( <> <div>Win Numbers</div> <div id="결과창"> {winBalls.map(v => ( <Ball key={v} number={v} /> ))} </div> <div>Bonus!</div> {bonus && <Ball number={bonus} />} {redo && <button onClick={onClickRedo}>One more</button>} </> ) } export default Lotto 동작 결과 콘솔 11:46:54.502 Lotto.jsx:5 getWinNumbers함수 11:46:54.532 Lotto.jsx:28 useEffect1 11:46:54.532 Lotto.jsx:47 useEffect2 - 로또 숫자를 생성합니다. 11:46:55.951 Lotto.jsx:5 getWinNumbers함수 11:46:56.942 Lotto.jsx:5 getWinNumbers함수 11:46:57.729 Lotto.jsx:5 getWinNumbers함수 11:46:58.536 Lotto.jsx:5 getWinNumbers함수 11:46:59.535 Lotto.jsx:5 getWinNumbers함수 11:47:00.545 Lotto.jsx:5 getWinNumbers함수 11:47:01.536 Lotto.jsx:5 getWinNumbers함수 예측한 동작 순서 1. 함수 컴포넌트에 있는 winNumbers가 getWinNumbers 함수 호출하면서 getWinNumbers함수속 console 출력 -> 'getWinNumbers함수' 2. 27번줄의 useEffect의 두번째 인자인 timeouts.current가 [] 이기 때문에 첫번쨰 useEffect의 console 출력 -> 'useEffect1' 3. 46번줄의 useEffect의 두번째 인자인 winNumbers가 7개의 배열요소가 들어있기 때문에 true 이다 그래서 두번째 useEffect의 console 출력 -> 'useEffect2 - 로또 숫자를 생성합니다.' 4. useEffect1이 출력될때 아래 코드가 6번 동작해서 getWinNumbers함수 속에있는 console 출력 -> 'getWinNumbers함수' x 6 for (let i = 0; i < winNumbers.length - 1; i++) { timeouts.current[i] = setTimeout(() => { setWinBalls(prevState => [...prevState, winNumbers[i]]) }, (i + 1) * 1000) } 그리고 아래 코드가 한번 동작해서 getWinNumbers함수 속에있는 console 출력 -> 'getWinNumbers함수' timeouts.current[6] = setTimeout(() => { setBonus(winNumbers[6]) setRedo(true) }, 7000) 동작 순서 4번에서 (setWinBalls)와 (setBonus + setRedo)가 비동기함수 라서 앞선 콘솔들이 찍히고 마지막에 찍혔던 거죠?
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
로그인 후 url 가져오기 실패
제가 연습삼아 관심을 가지고 있는 사이트에 자동로그인을 했습니다. 그 후 내용을 가져오려니 아래와 같이 오류가 뜹니다. 이건 어떤 경우일까요?
-
미해결스프링 핵심 원리 - 기본편
널포인트 에러
안녕하세요 김영한 개발자님! 강의를 따라하던 중에 오류가 생겨서 질문 남겨요 AllBeanTest 코드에서 실행하면 널포인트 에러가 발생하는데 혹시 어디가 문제 있는걸까요...? 코드상 오류인줄 알고 찾아봤더니 코드 오류는 없는 것 같습니다. soutv로 찍으면 저는 fix가 아니라 rate로 찍히는데 혹시 이게 문제일까요? 감사합니다. + 추가 ) discountService.discount(member, 10000, "fixDiscountPolicy")에서 fix를 rate로 변경해보니까 정상적으로 실행됩니다. 이게 문제였을까요? 그렇다면 fix는 왜 안될까요? @component를 rate에만 작성하고 fix에는 작성하지 않은 상태입니다ㅠ + 해결(?) fixDiscountPolicy에 @Component를 하고 rate에는 지우니까 discountService.discount(member, 10000, "fixDiscountPolicy") 경우에도 잘 작동합니다. 맨 처음에 fixDiscountPolicy에 @Component가 안되어 있어서 널포인트 에러가 발생한거 같은데 제 생각이 맞을까요? + 마지막) 왜 개발자님처럼 fix랑 rate가 동시에 안되나 했는데, 다른글에서 orderServiceImpl에 있는 @Component 지우면 해결된다는 글 보고 해결했습니다! 의문점 다 해결됐습니다 감사합니다!!
-
미해결최고의 프론트엔드 CSS Frameworks, UIkit
Slider의 Content parallax 처음부터 애니메이션 작동되게 하는 법이 궁금해요
총 3장의 이미지를 넣어서 parallax 로 h2는 위에서 아래로 텍스트가 내려오고 p는 아래에서 위로 텍스트가 올라오는 효과를 넣은 슬라이드를 만들었는데요 이 효과가 맨 처음 화면 뜬 상황에서는 작동이 안되고 꼭 한번 슬라이드가 실행된 후에야 작동이 되더라구요 처음 화면 떴을때부터 텍스트 애니메이션이 작동되게 하는 그런 방법이 궁금합니다. <div class="uk-position-relative uk-visible-toggle uk-light " tabindex="-1" uk-slideshow="animation: fade; autoplay: true; autoplay-interval: 3000; "> <ul class="myslide uk-slideshow-items uk-grid-match" uk-height-viewport="min-height: 300"> <li> <img src="images/image01.jpg" uk-cover> <div class="uk-position-center uk-position-small uk-text-center"> <h2 uk-slideshow-parallax="y: -150,0,0; opacity: 1,1,0">Heading</h2> <p uk-slideshow-parallax="y: 100,0,0; opacity: 1,1,0">Lorem ipsum dolor sit amet.</p> </div> </li> <li> <img src="images/image02.jpg" uk-cover> <div class="uk-position-center uk-position-small uk-text-center"> <h2 uk-slideshow-parallax="y: -150,0,0; opacity: 1,1,0">Heading</h2> <p uk-slideshow-parallax="y: 100,0,0; opacity: 1,1,0">Lorem ipsum dolor sit amet.</p> </div> </li> <li> <img src="images/image03.jpg" uk-cover> <div class="uk-position-center uk-position-small uk-text-center"> <h2 uk-slideshow-parallax="y: -150,0,0; opacity: 1,1,0">Heading</h2> <p uk-slideshow-parallax="y: 100,0,0; opacity: 1,1,0">Lorem ipsum dolor sit amet.</p> </div> </li> </ul> <a class="uk-position-center-left uk-position-small uk-hidden-hover" href="#" uk-slidenav-previous uk-slideshow-item="previous"></a> <a class="uk-position-center-right uk-position-small uk-hidden-hover" href="#" uk-slidenav-next uk-slideshow-item="next"></a> </div>
-
해결됨그림으로 쉽게 배우는 운영체제
프로세스와 알고리즘 등 관련...
안녕하세요 강의 관련 궁금한 점들이 있습니다... 1.프로세스들의 우선순위는 어떤 방식으로 정해지는 것인가요? 2. 운영체제가 ‘준비상태의 다중큐’를 참조해 그 안에 들어있는 프로세스들 중 적당한 프로세스를 선택해 실행상태로 전환시킨다고 들었는데 적당한 프로세스를 고르는 기준은 정확히 어떻게 되는지, 우선순위가 영향을 주는지 궁금합니다. 3. CPU 스케줄러와 운영체제는 완벽한 동의어인가요? 4. FIFO 알고리즘의 단점 중, I/O 작업이 있을 경우 CPU는 I/O 작업이 끝날 때까지 쉬고 있기 때문에 CPU 사용률이 떨어지는 것이 있다고 들었습니다. 그런데 대기상태의 경우, 특정 프로세스가 입출력 요청을 하면 입출력이 완료될 때까지 CPU를 기다리게 하는 건 굉장히 비효율적이라 입출력 요청을 한 프로세스를 대기상태로 두고 다른 프로세스에게 CPU를 할당한다고 들었는데 FIFO의 경우에는 1개 프로세스의 완전 종료 전까지 다른 프로세스들이 실행될 수 없어서 그런 것인가요? 그렇다면 FIFO 알고리즘의 경우에는 대기 상태가 존재하지 않는 것인가요? 5. 대기 상태의 경우 입출력 작업이 완료되면 대기상태에 있던 프로세스에게 CPU 할당 기회를 준다고 들었는데 기회를 준다는 것은 반드시 실행상태로 즉시 전환되는 것은 아니라는 의미인가요?