묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실무에서 바로 쓰는 영어 이메일
강의 자료 요청 드립니다.
안녕하세요 제목과 같이 강의 자료 메일로 공유 부탁 드립니다. rakyoung.kim@halla.com 감사합니다.
-
미해결쉽게 시작하는 쿠버네티스(v1.30) - {{ x86-64, arm64 }}
실습환경구성/구조 문의
뒷 부분 3.2, 3.3 강의에서 설명을 해주시네요. 질문은 남겨 놓겠습니다. 실습 환경으로 vm 4개가 만들어지게 되는데요, 마스터노드1개와 워커노드3개 구성으로 보입니다.구성된 실습환경에 대해 한 번 설명을 해주셨으면 좋겠습니다. - 노드 4개가 클러스터 구성이고 마스터노드의 역할 등- 구성해두신 쿠버네티스에 대해 pod 와 오브젝트들에 대한 설명 등
-
해결됨[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
express 서버의 에러 처리에 대해 질문드리고 싶습니다
강사님 안녕하세요 혹시 노드의 server.on('error',(error)=>{}) 처럼 익스프레스도 에러처리 코드를 넣는 방법에 대해 질문드리고 싶습니다 익스프레스도 아래처럼 이렇게 쓸 수 있는지 질문드리고 싶습니다 app.on('error',(error)=>{ })
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
에뮬레이터 생성은 되는데 디바이스 선택할수 있는게 없어요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.코드팩토리 디스코드https://bit.ly/3HzRzUMFlutter 강의를 구매하시면 코드팩토리 디스코드 서버 플러터 프리미엄 채널에 들어오실 수 있습니다! 디스코드 서버에 들어오시고 저에게 메세지로 강의를 구매하신 이메일을 보내주시면 프리미엄 채널에 등록해드려요! 프리미엄 채널에 들어오시면 모든 질의응답 최우선으로 답변해드립니다!
-
미해결[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)가 비동기함수 라서 앞선 콘솔들이 찍히고 마지막에 찍혔던 거죠?