묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결언리얼 엔진4 입문 (C++ 기반)
#include와 전방선언 관련 질분있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 좋은 강의 만들어주셔서 감사합니다. 현재, 헤더 파일에 특정 클래스 변수를 추가할 때 (ex. USpringArmComponent) 헤더 파일에서 컴파일 오류가 나죠. 그래서 class라고 전방선언을 해준 뒤 Cpp 파일에서 실제 해당 클래스가 있는 파일의 경로를 include 해주는데요, 이렇게 하는 이유가 있나요? 애초에 헤더 파일에서 include 하면 안되는지 궁금합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
delivery테이블과 order테이블의 관계는 일대다여야하는거 아닌가요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]실전! 스프링부트와 JPA활용 수업 - 엔티티 클래스 개발1편 강의에서 28:21에 나오는 회원 테이블 그림입니다여기서 order 테이블과 delivery 테이블이 1:1 관계를 맺고 있는데요저는 order테이블과 delivery 테이블이 1:1이 아니라 일대다 관계여야하는거 아닌가하는 질문이 생겨서요. 왜냐하면 하나의 주문은 하나의 배달상태를 가지지만 하나의 배달상태는 여러 주문과 연결되잖아요. 혹시 제가 놓치고 있는 부분 있으면 말해주시면 감사하겠습니다
-
해결됨CAN 통신 - 자동차 신입이 알아야 할 모든 것
Sample point 지정 관련 질문드립니다.
안녕하세요. 강의 잘 듣고 있습니다. Baudrate가 모든 컨트롤러에서 같게 설정되어야 하는 것은 당연하다 생각 되는데요. Sample point 관련해서는 의문이 있어 질문드립니다.sample point를 모두 동일하게 설정해야만 하는 사유가 있나요? 권장하는 sample point 값이 있나요?
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
후속 강의나 책이 있을까요?
안녕하세요. 개발자를 위한 컴퓨터 공학 1:컴퓨터구조와 운영체제인데요. 개발자를 위한 컴퓨터 공학 2는 무엇이 되나요?? 향후 계획을 알고 싶습니다.
-
해결됨면접관 입장에서 작성하는 합격하는 이력서와 포트폴리오
회사 프로젝트 작성시 몇가지를 써야 좋을까요?
다음과 같은 양식으로 남겨주세요.질문을 한 배경 : 프로젝트란 작성시 궁금증 질문내용 :중소SI업체 재직중인 주니어개발자입니다.현재까지 진행했던 프로젝트만 8가지는 되는데 이걸 전부 작성해야 좋을까요 아니면 핵심적인 몇가지만 간추려야 좋을까요?
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
list #2강의 18:48~ 중간 삽입/삭제와 임의접근의 모순
안녕하십니까 강사님 항상 고생하십니다.list에 대해서 복습을 하던 중 의문점이 생겨 질문 드립니다. 해당 강의의 중간 삽입/삭제와 임의접근의 모순에 대해선 내용을 이해 했습니다. 여기서 생기는 의문점이 그렇다면 remove()는 왜 구현해 놨을까? 입니다. remove()는 동작할 때 리스트항목을 모두 순회하여 해당 값을 지우는 걸로 알고 있습니다.이것 또한 지우는 것 자체는 빠르겠으나 그전에 하는 순회는 리스트의 크기가 커질수록 아주 느릴텐데, 그 위치를 기억하고 있던 것도 아니고 왜그런 remove()를 임의접근처럼 막아 놓지 않았는지 궁금합니다!
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
인텔리제이 단축키 모음 파일같은건 없나요?
있으심 제공좀 부탁드려요
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
puppeteer 라이브러리 사용 중에 질문 드립니다.
퍼펫티어 쪽 코드인데 미니프로젝트에서 요구한 30개 이상을 크롤링 하는 부분을 완성을 해서 추가적으로 전체 메뉴를 긁어오고 싶어서 위와 같이 코드를 추가했습니다.12번째 코드부터 15번째 코드까지가 총 데이터 길이를 구하는 코드인데해당 코드에서 console.log(cnt);콘솔로 cnt를 출력해보면위와 같이 숫자 10까지 밖에 출력이 안되어서 질문 드립니다. 퍼펫티어 docs에서도이렇게 설명이 되어있어서 해당 코드라면 스타벅스 내에 있는 모든 전체상품 이미지가 크롤링 되어야 될 거 같은데스타벅스 홈페이지에서 카피를 하면 nth-child 의 값은 10까지 밖에 찍히지 않고전체 메뉴가 크롤링 되는 것이 아닌 도중에 제주 말차 메뉴까지 밖에 크롤링이 되지 않는 것이 의문이라 질문 드립니다. 혹시 해당 코드에 문제가 무엇인지 조언을 부탁 드리고 싶습니다 ㅠㅠ 전체 코드는 아래와 같습니다.import puppeteer from "puppeteer"; import mongoose from "mongoose"; import { starbucks } from "../model/starbucksSchema.js"; export async function startCrawling() { const browser = await puppeteer.launch({ headless: false }); const page = await browser.newPage(); await page.setViewport({ width: 1920, height: 1080 }); await page.goto("https://www.starbucks.co.kr/menu/drink_list.do"); await page.waitForTimeout(2400); const cnt = await page.$$eval( `#container > div.content > div.product_result_wrap.product_result_wrap01 > div > dl > dd:nth-child(2) > div.product_list > dl > dd `, (data) => data.length ); console.log(cnt); for (let i = 1; i <= cnt; i++) { const second_cnt = await page.$$eval( `#container > div.content > div.product_result_wrap.product_result_wrap01 > div > dl > dd:nth-child(2) > div.product_list > dl > dd:nth-child(${i}) > ul > li`, (data) => data.length ); for (let j = 1; j <= second_cnt; j++) { const image = await page.$eval( `#container > div.content > div.product_result_wrap.product_result_wrap01 > div > dl > dd:nth-child(2) > div.product_list > dl > dd:nth-child(${i}) > ul > li:nth-child(${j}) > dl > dt > a > img`, (el) => el.src ); const name = await page.$eval( `#container > div.content > div.product_result_wrap.product_result_wrap01 > div > dl > dd:nth-child(2) > div.product_list > dl > dd:nth-child(${i}) > ul > li:nth-child(${j}) > dl > dd`, (el) => el.textContent ); console.log(`이름: ${name}, 이미지: ${image}`); const starbucks_db = await starbucks.updateOne( { name: name }, { img: image }, { upsert: true } ); } } await browser.close(); } startCrawling();
-
미해결스프링 프레임워크는 내 손에 [스프2탄]
다음강의 예정 사라지셨나요?
선생님 다음 강의 준비중이라고 하셨는데 아무런 소식이 안올라와서요..혹시 다음강의 없어지신건가요?아님 아직 준비 중이신건가요?
-
미해결스프링 시큐리티
AffirmativeBased 를 생성 시 한글 변환 안 되게 해결
섹션 5. 웹 기반 인가처리 DB 연동에서 AffirmativeBased 를 생성해서 사용할 때 AccessDeniedException 발생 시 메시지가 한글로 변환되는 현상https://www.inflearn.com/questions/871752/%EC%84%B9%EC%85%98-5-%EC%9B%B9-%EA%B8%B0%EB%B0%98-%EC%9D%B8%EA%B0%80%EC%B2%98%EB%A6%AC-db-%EC%97%B0%EB%8F%99%EC%97%90%EC%84%9C-affirmativebased-%EB%A5%BC-%EC%83%9D%EC%84%B1%ED%95%B4%EC%84%9C-%EC%82%AC%EC%9A%A9%ED%95%A0-%EB%95%8C-accessdeniedexception-%EB%B0%9C%EC%83%9D-%EC%8B%9C위 질문 내용 해결한 것 같아요.선생님.. 맞는지만 봐주세요.스프링시큐리티가 초기화 될 때 ApplicationContextAwareProcessor 클래스의 invokeAwareInterfaces() 메소드에서 내부적으로 사용하는 AffirmativeBased 의 setMessageSource(this.applicationContext); 를 호출하네요. applicationContext는 ConfigurableApplicationContext 클래스로 선언되어 있습니다.그래서 security/configs/SecurityConig 에서 동일하게 선언을 하고@Autowired ConfigurableApplicationContext applicationContext;setMessageSource() 에 전달했습니다.private AccessDecisionManager affirmativeBased() { AffirmativeBased affirmativeBased = new AffirmativeBased(getAccessDecisionVoters()); affirmativeBased.setMessageSource(this.applicationContext); return affirmativeBased; }그러니 메시지가 한글로 변환되지 않고 영문으로 잘 나오네요.그리고 applicationContext 가 동일한 객체이냐 가 궁금해서 디버깅을 해보면 먼저 SecurityConfig에서 AffirmativeBased 생성을 먼저 시작하는데 이때 applicationContext 는 디버깅 창에서 applicationContext = {AnnotationConfigServletWebServerApplicationContext@9659} "org.springframework.boot.web.servlet.context.AnnotationConfigSevletWebServerApplicationContext@6ae4b437, ..." 이렇게 표현됩니다.그 다음 ApplicationContextAwareProcessor 의 invokeAwareInterfaces() 가 호출되는데.여기서 120줄 에서 break point 잡고 this.applicationContext 을 디버깅 해보면this.applicationContext = {AnnotationConfigServletWebServerApplicationContext@9659} "org.springframework.boot.web.servlet.context.AnnotationConfigSevletWebServerApplicationContext@6ae4b437, ..." 로 동일하네요. 맞는 것 같은데..이렇게 구현하면 되는지요?
-
해결됨외워서 끝내는 네트워크 핵심이론 - 응용
External Port는 NAT의 port를 의미하는 걸까용??
아니면 그냥 논리적인 포트 번호를 만든건가요??
-
미해결3D리플릿 만들기 - 인터랙티브 웹 프로젝트
페이지를 클릭할 때 Uncaught TypeError: Cannot read properties of undefined (reading 'contains') 에러가 뜹니다.
에러를 보면 8번째와 30번째 줄이 문제라는 것 같은데 둘다 close button에 관련된것들이거든요.getTarget함수를 실행할 때 contains이전부분이 undefined가 나오는 것 같아서, e.target을 console로도 찍어 봤는데 저렇게 뻔히 나오고 있는데 왜 자꾸 오류가 뜨는지 모르겠습니다 ㅠㅠ선생님 코드랑 비교해 봤는데 완성된 코드니까 물론 차이는 있지만 저 부분은 다를 게 딱히 없어 보이거든요..대체 원인이 뭘까요? 작동은 되는데 자꾸 오류가 뜨니까 신경쓰여요
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-q 질문
http://boj.kr/8eda4400f8474a6daf339737ce6eda82선생님 제가 dfs시 n*m범위를 벗어나면 1을 return하는 코드를 짜보았습니다. 그런데 범위에 벗어나면 이라는 if 문에 제 코드가 접근을 못합니다. 혹시 이유를 찾아주시면 정말 감사하겠습니다!!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
8 - G 탑다운 방식으로는 안될까요?
안녕하세요!17623번 괄호 문제를 풀다가 어려운 점이 생겨 질문드리게 되었습니다. 저는 탑다운 방식으로 접근을 해보았는데요. 괄호를 넣을 수 있는 경우의 수에 따라 dmap값을 비교하여 최소값을 찾는 방식으로 풀어보았습니다. 하지만 서브태스크3을 통과하지 못하네요. 무엇이 문제일까요...? 고민해보아도 쉽게 찾아지지 않습니다. #include<iostream> #include<vector> #include<string> #include<algorithm> using namespace std; int T; string dp[1001]; bool check(string before, string after){ if(before == "" && after == "") return false; if(before == "") return true; if(before.size() > after.size()) return true; else if(before.size() < after.size()) return false; return before > after; } string go(int num) { if(num == 0) return ""; if(dp[num] != "N") return dp[num]; if(num - 1 >= 0) // 1빼기 -> 0이 아니라면 무조건 통과하는 조건 { // dp[i]에 직접 값을 넣는다. string temp = go(num - 1); if(check(temp + "12", "12" + temp)) dp[num] = "12" + temp; else dp[num] = temp + "12"; } if(num - 2 >= 0) // 2빼기 { string temp = go(num - 2); if(check(dp[num], temp + "34")) dp[num] = temp + "34"; if(check(dp[num], "34" + temp)) dp[num] = "34" + temp; } if(num - 3 >= 0) // 3빼기 { string temp = go(num - 3); if(check(dp[num], temp + "56")) dp[num] = temp + "56"; if(check(dp[num], "56" + temp)) dp[num] = "56" + temp; } if(num % 2 == 0) // 2로 나눔 { string temp = go(num / 2); if(check(dp[num], "1" + temp + "2")) dp[num] = "1" + temp + "2"; } if(num % 3 == 0) // 3로 나눔 { string temp = go(num / 3); if(check(dp[num], "3" + temp + "4")) dp[num] = "3" + temp + "4"; } if(num % 5 == 0) // 5로 나눔 { string temp = go(num / 5); if(check(dp[num], "5" + temp + "6")) dp[num] = "5" + temp + "6"; } return dp[num]; } string getPassing(string num) { string s = ""; int i = 0; while(i < num.size()) { char digit = num[i]; string d = ""; if(digit == '1') d = "("; else if(digit == '2') d = ")"; else if(digit == '3') d = "{"; else if(digit == '4') d = "}"; else if(digit == '5') d = "["; else if(digit == '6') d = "]"; s += d; i++; } return s; } int main() { fill(dp, dp + 1001, "N"); cin >> T; for(int i = 0; i < T; i++) { int N; cin >> N; string answer = go(N); cout << getPassing(answer) << "\n"; } return 0; }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-s
선생님 2s 문제에 입력이 653143645345라고 들어올경우. 한번에 가장 많은 컴퓨터를 해킹할 수 있는 컴퓨터의 번호는 1-3-5-4-6으로 5가지 입니다.이때 만약 선생님이 쓰신 코드처럼 dfs에 visited를 설정한다면 1-3-4-6을 탐색한후 1-3-5-4-6을 탐색하려면 4가 이미 visited로 겹치기에 1-3-5-4-6경로를 탐색을 안하게되는것 아닌가요??
-
해결됨외워서 끝내는 네트워크 핵심이론 - 응용
지사 SG에서 철수의 패킷을 식별하여 본사 SG로 보낼 수 있는 이유
지사 SG가 철수로부터 받은 패킷을 본사 SG로 보낼 수 있다는 것은 지사 SG에서 특정 IP 대역으로(5.5.5.*) 보내는 트래픽은 모두 본사 SG(5.5.5.1)로 보낸다라는 라우팅 정책이 있기 때문에 가능한 것일까요??
-
해결됨유니티 머신러닝 에이전트 완전정복 (기초편)
error->하이퍼파라미터들이 안떠요
C:\mlagents_start\ml-agents-release_17>mlagents-learn config\ppo\3DBall.yaml --run-id=tutorial_5_20_16 ▄▄▄▓▓▓▓ ╓▓▓▓▓▓▓█▓▓▓▓▓ ,▄▄▄m▀▀▀' ,▓▓▓▀▓▓▄ ▓▓▓ ▓▓▌ ▄▓▓▓▀' ▄▓▓▀ ▓▓▓ ▄▄ ▄▄ ,▄▄ ▄▄▄▄ ,▄▄ ▄▓▓▌▄ ▄▄▄ ,▄▄ ▄▓▓▓▀ ▄▓▓▀ ▐▓▓▌ ▓▓▌ ▐▓▓ ▐▓▓▓▀▀▀▓▓▌ ▓▓▓ ▀▓▓▌▀ ^▓▓▌ ╒▓▓▌ ▄▓▓▓▓▓▄▄▄▄▄▄▄▄▓▓▓ ▓▀ ▓▓▌ ▐▓▓ ▐▓▓ ▓▓▓ ▓▓▓ ▓▓▌ ▐▓▓▄ ▓▓▌ ▀▓▓▓▓▀▀▀▀▀▀▀▀▀▀▓▓▄ ▓▓ ▓▓▌ ▐▓▓ ▐▓▓ ▓▓▓ ▓▓▓ ▓▓▌ ▐▓▓▐▓▓ ^█▓▓▓ ▀▓▓▄ ▐▓▓▌ ▓▓▓▓▄▓▓▓▓ ▐▓▓ ▓▓▓ ▓▓▓ ▓▓▓▄ ▓▓▓▓` '▀▓▓▓▄ ^▓▓▓ ▓▓▓ └▀▀▀▀ ▀▀ ^▀▀ ▀▀ ▀▀ '▀▀ ▐▓▓▌ ▀▀▀▀▓▄▄▄ ▓▓▓▓▓▓, ▓▓▓▓▀ `▀█▓▓▓▓▓▓▓▓▓▌ ¬`▀▀▀█▓ Version information: ml-agents: 0.26.0, ml-agents-envs: 0.26.0, Communicator API: 1.5.0, PyTorch: 1.7.1+cu101Traceback (most recent call last): File "c:\users\owner\appdata\local\programs\python\python37\lib\runpy.py", line 193, in runmodule_as_main "__main__", mod_spec) File "c:\users\owner\appdata\local\programs\python\python37\lib\runpy.py", line 85, in runcode exec(code, run_globals) File "C:\Users\owner\AppData\Local\Programs\Python\Python37\Scripts\mlagents-learn.exe\__main__.py", line 7, in <module> File "c:\users\owner\appdata\local\programs\python\python37\lib\site-packages\mlagents\trainers\learn.py", line 250, in main run_cli(parse_command_line()) File "c:\users\owner\appdata\local\programs\python\python37\lib\site-packages\mlagents\trainers\learn.py", line 246, in run_cli run_training(run_seed, options) File "c:\users\owner\appdata\local\programs\python\python37\lib\site-packages\mlagents\trainers\learn.py", line 83, in run_training stats_writers = register_stats_writer_plugins(options) File "c:\users\owner\appdata\local\programs\python\python37\lib\site-packages\mlagents\plugins\stats_writer.py", line 47, in register_stats_writer_plugins if ML_AGENTS_STATS_WRITER not in importlib_metadata.entry_points(): File "c:\users\owner\appdata\local\programs\python\python37\lib\site-packages\importlib_metadata\__init__.py", line 266, in eq return self._key() == other._key()AttributeError: 'str' object has no attribute '_key'뭔가 실행은 되는 것 같은데 하이퍼파라미터는 안뜨고 오류만 떠요.python은 3.7.9이고, unity editor는 2021.1.18f로 했었어요. 어떻게 하면 오류를 제거하고 하이퍼파라미터들을 불러올 수 있을까요?(ml-agents-release_17 이용했어요)
-
미해결
bash에서 가상환경 실행 관련 에러(deactivate 안되는 현상, activate 실행시 syntax 에러) 도움 부탁드립니다.
현재 발생하는 문제는 두 가지 입니다. git bash나 vscode에서 가상환경을 구동시킨 후(conda activate <가상환경>) 종료 시켰을 때(conda deactivate) 가상환경이 종료되지 않고 리스트가 그대로 남아있습니다.가상환경이 종료되지 않아서 동일, 다른 가상환경을 켜면 가상환경 리스트가 쌓입니다.ex) (base) (base) (test) ... 결론을 찾지 못해 git과 anaconda를 삭제 후 재설치해봤으나 동일한 문제가 지속되었고, 가상환경 구동시(conda activate base) 발생하는 에러 메세지가 원인인가 싶어 검색해봤지만 정확한 해결방법을 찾지 못했습니다.conda activate base를 실행시켰을 때 발생하는 에러는 다음과 같습니다.bash: syntax error near unexpected token '('동일한 문제를 겪었거나 해결 방법 아시는 분의 도움 요청드립니다.감사합니다.
-
미해결실전! 스프링 데이터 JPA
영속성 컨텍스트와 데이터 베이스 동기화
안녕하세요 공부를 하던 중에 궁금한 점이 생겼습니다.제가 간단한 회원정보를 스프링 데이터 jpa로 저장을 했는데 그 후에 db에서 직접 값을 바꾸고 조회하니 당연히 영속성 컨텍스트에 있는 부분과 동기화가 안되어 원하는 값이 조회가 안됐습니다. 이런 경우에 바뀐 값을 조회하려면 memberservice 혹은 JpaRepostory를 상속받은 memberRepository에서 영속성 컨텍스트를 clear로 한 번 지워야 할 것 같은데 어떻게 해야 할지 잘 모르겠습니다.
-
미해결한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
context.Provider에 관해서 질문 드립니다.
중첩으로 관리하는 이유에서 살짝 뇌정지가 와서 제가 이해한게 맞는지 여쭙니다.만약 value에 다 전달하게 되면 DiaryEditer와 DiaryList가 동시에 리렌더링 되지만바꾸면 data는 editor에 영향을 안주니까 editor와 List가 따로 리렌더링 일어나게 일어나게 된다는 말인가추가적으로 궁금한건 DiaryStateContext value에 다 넣으면 최적화가 풀린다고 했는데 DiaryItem은 memo를 하고 export 해서 모든 Item이 다시 리렌더링 되는걸 막았잖아요. 근데 그 최적화 마저 풀려버리나요?