묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결
멀티모듈 구성시에 레이어간 DTO가 생기는 것이 맞는걸까요
저는 api -> domain -> db 로 나눠보려고 하는데api에서의 요청/응답 dtodomain은 api에서의 요청/응답 dto를 모르니까 새로운 dto를 만들어줘야하는 것 같고db도 domain 모듈을 모르니까 dto를 만들어주던가 아예 domain모듈에서 entity를 구성해서 넘기던가 해야할 것 같은데 애초에 모듈 구성하는 방법이 잘못된걸까요?도와주실분.. ㅠㅠ
-
해결됨[C#/.NET 7.0]어서와, WPF는 처음이지?
강의 내용
혹시 강의 중 만들었던 프로젝트에 대한 내용을 정리해서 개인 블로그에 올려도 될까요?
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
섹션7 영상 업로드 관련 문의
선생님, 안녕하세요?올려주신 강의들 매일 꾸준히 보면서 준비 중인 수강생입니다.다름이 아니라 섹션7 이론문제 학습 카테고리에 강의명만 만들어져있는 강의들이 있습니다. (섹션7 1강, 3강, 6강, 7강, 8강, 9강)혹시 해당 내용 강의들도 추후 업로드 계획이신지 궁금하여 문의글을 남기게 되었습니다.이론 통합 PDF가 훑어보니 정리가 상당히 잘 되어있다는 느낌을 받기는 했습니다만, 제가 비전공자이고 직장 생활하느라 시간이 충분치 않은 입장이다보니 ^^: 선생님께서 원포인트로 중요한 부분만 조금씩 찍어만 주셔도 큰 도움이 될 것 같아서요.염치 불구하고 혹시나 계획이 있으신지 여쭈어봅니다. 모쪼록 확인 한번 해주시면 너무나도 감사하겠습니다!오늘도 좋은 일들만 가득한 하루 되시기 바라겠습니다 (--)(__)
-
해결됨스프링은 어려워! 코틀린과 Ktor로 백엔드/서버개발 기초정복 (커피주문시스템 개발)
어떻게 ktor 실행시 같은 포트로 리액트 서버가 뜰 수가 있나요?
안녕하세요 강의 잘 보고 있습니다. 저는 현재 스프링 진영에서 백엔드 개발을 하고 있습니다. ktor이라는 것을 들어보긴 했는데, 막상 코드를 보면서 비슷한 부분도 있고 새로운 부분도 많네요! 강의를 보다가 궁금한 점이 있는데, 보통 리액트 서버는 3000번 포트로 띄우고 백엔드는 따로 실행해서화면 테스트를 진행하곤 했는데, Ktor 강의에서는 인텔리제이 실행 한번으로 리액트 서버도 실행되고 같은 포트에 백엔드 호출이 가능한 것을 보고 어떻게 이게 가능한가 싶어서 질문 남깁니다!
-
해결됨[리뉴얼] 맛집 지도앱 만들기 (React Native & NestJS)
TypeError: Cannot read properties of undefined (reading 'X_OK')
❗질문 작성시 꼭 참고해주세요최대한 상세히 현재 문제(또는 에러)와 코드(또는 github)를 첨부해주셔야 그만큼 자세히 답변드릴 수 있습니다.맥/윈도우, 안드로이드/iOS, 버전 등의 개발환경도 함께 적어주시면 도움이 됩니다. 에러메세지는 일부분이 아닌 전체 상황을 올려주세요!안녕하세요 npx react-native doctor을 했을 때 이런 에러가 뜨는데 어떻게 해결할 수 있을까요?ㅠTypeError: Cannot read properties of undefined (reading 'X_OK') at Object.getDiagnostics (/Users/name/Desktop/Test/TestProject/node_modules/@react-native-community/cli-doctor/build/tools/healthchecks/gradle.js:42:57) at /Users/name/Desktop/Test/TestProject/node_modules/@react-native-community/cli-doctor/build/commands/doctor.js:116:29 at Array.map (<anonymous>) at iterateOverHealthChecks (/Users/name/Desktop/Test/TestProject/node_modules/@react-native-community/cli-doctor/build/commands/doctor.js:106:51) at Array.map (<anonymous>) at iterateOverCategories (/Users/name/Desktop/Test/TestProject/node_modules/@react-native-community/cli-doctor/build/commands/doctor.js:139:70) at Object.doctorCommand [as func] (/Users/name/Desktop/Test/TestProject/node_modules/@react-native-community/cli-doctor/build/commands/doctor.js:140:41) at async Command.handleAction (/Users/name/Desktop/Test/TestProject/node_modules/@react-native-community/cli/build/index.js:116:9)
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
질문있습니다.
입력을 받을 때마다 조건문 돌려서 판별할 생각을 못하고 배열로 다 받아서 했더니 문제를 더 어렵게 풀어버렸습니다. 음.. 강의 코드 보면서 제가 푼 문제가 이렇게 쉽게 풀릴 수 있는 문제구나라고 알게 되었습니다.혹시 제 코드에 문제점이 있는지 확인해주실 수 있으신가요? 채점 파일에서는 다 맞았다 뜨는데 혹시 몰라서 질문 드립니다. 좋은 강의 항상 감사드립니다. 강의 보면서 열심히 공부하겠습니다.#include <iostream> #include <stdio.h> #include <string> #include <fstream> #include <vector> using namespace std; int main() { ios_base::sync_with_stdio(false); int n; cin >> n; vector<int> table(n); for (int i = 0; i < n; i++) cin >> table[i]; int max = 1; int cnt = 1; int idx = 0; int prev = table[0]; int count = 1; while (idx + count < table.size()) { if (table[idx + count] >= prev) { cnt++; } else { idx = idx + count; cnt = 1; count = 0; } prev = table[idx + count]; count++; if (cnt > max) max = cnt; } cout << max << "\n"; return 0; }
-
미해결실리콘밸리 엔지니어와 함께하는 샐러리(Celery)
DLQ와 관련한 이전 질문의 추가 질문 입니다.
이전에 아래와 같이 답변을 주신 글이 있습니다.1. Consumer가 거절하는 경우는 대부분 Celery자체가 어떻게 처리해야 할지 몰라서 일어나는 경우고, 보통 그런경우 새로운 Queue를 만드셔서 넣어 놓으신다음에 엔지니어가 나중에 수동으로 처리하는 경우가 대부분이고, 많은 에러가 난다면 그 전체를 다시 Queue에 넣어 Consumer를 고친 다음에 처리합니다.2. ACK Timeout이 나는 경우 Broker에서 확답을 못 받았기 때문에 그 메세지는 그대로 있고, Consumer가 재시작하는 순간에 다시 Queue에서 불러와 처리할 수 있습니다.이에 추가적인 질문을 드리려 합니다.1번에 대한 질문에서 거절이라는 의미로 "celery에서 작업을 가져왔지만 어떻게 처리할지 모른다"는게 이해가 잘 가지 않네요.이미 구현된 코드에서 처리할지 모른다는 경우가 어떤게 있을까요? 잘못된 arguments는 에러가 발생할 테고, 작업에서 만약 DB나 I/O가 필요한데 해당 정보가 없다면... 이 또한 예외나 에러가 발생할 텐데.. 이러한 모든 상황은 3번에 포함되는 것이라 1번의 경우가 어떤게 있을지 예시를 혹시 들어주시면 감사드리겠습니다.2번에 대해 ack는 수신자가 전달하는 것인데 consumer는 queue에서 작업을 가져가서 처리하지만 queue에서는 ack를 timeout 내 수신하지 못한 상황이고, 이 때문에 queue에서 작업을 삭제하지 않았다면 consumer는 동일한 작업을 다시 가져가 중복처리를 하게 되는거 아닌가요? 이에 대한 처리는 실무에서는 어떻게 하는지 알고 싶습니다.
-
미해결[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문
유튜브 댓글 보고 왔습니다!- 퀴즈 중복된 숫자 검사 for 문
퀴즈 - 중복된 숫자 방지 조건문 (빈 객체 사용) const duplicateNumbers = {}; for (let number of myNumbers) { if (duplicateNumbers[number]) { return alert('중복된 숫자를 입력했습니다.'); } duplicateNumbers[number] = true; }>> 이게 정답일까요?아직 수업순서대로는 객체를 안배운 상태여서ㅠㅠfor(let i =0; i<myNumbers.length; i++) { if(!myNumbers.includes(myNumbers[i])) { return alert("중복된 숫자를 입력했습니다."); } }이렇게 해봤는데 자기를 포함한 상태여서 계속 true로 되서중복 검사가 안됩니다ㅠ6강 말고 7강을 먼저 듣고 6강을 들어야 될까요?
-
미해결김영한의 실전 자바 - 중급 1편
자바 고급강의
자바 고급강의는 언제나오나요?
-
미해결
unity 에디터 버전
어떤 버전을 사용해도 3d urp core 템플릿이 안나와요 ㅠㅠ계속 sample scene 저거 아니면 built-in-render pipeline으로 계속 뜨는데 어떤 버전 설치해야 되나요?
-
해결됨PM을 위한 데이터 리터러시(프로덕트 데이터 분석)
지표의 변화가 어느 정도 있어야 유의미하다고 판단할 수 있나요?
갑자기 대표 지표 관련 내용을 복습하다보니클릭율, 전환율등에 변화가 있다고 하더라도 얼마나변해야 유의미하다고 이야기할 수 있는 건지 궁금해지더라구요.예를 들면 '클릭율이 5%로 2주간 상승했을땐 우연일 수 있다고 판단하고 그 이상 지속됐을때 우연일 수 없다고 판단하여 유의미한 변화가 있다고 여겼다' 처럼 카일님 만의 사례가 있나요?물론 표본의 수와 각종 변수에 따라 다를 수 있겠지만요
-
미해결스프링 프레임워크는 내 손에 [스프1탄]
spring security 이후 Spring MVC06
80강 이후 업데이트나 사진 등록 부분이랑 업데이트하는 부분의 강의는 없는 거 같아서요 그냥 내용 들은 거랑 깃허브 비교해서 코드수정하면 되나요??
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
텔레그램 sendMessage 시 400에러가 뜹니다.
message = input("message: ") data = {"chat_id":chat_id, "text":message} url = f"http://api.telegram.org/bot{bot_token}/sendMessage" res = requests.get(url, data=data) print(res) if res.status_code == 200: print(json.loads(res.text)) 위처럼 작성하고 실행해보면 response 400에러가 발생합니다. getUpdate 메서드는 정상실행이 되는데 뭐가 문제인지 모르겠습니다....url 공백이 있으면 400에러가 발생한다고 검색은 해봤는데 , 전 공백도 없는것 같고.
-
미해결모두의 한국어 텍스트 분석과 자연어처리 with 파이썬
적합한 알고리즘이나 라이브러리를 알고싶습니다
안녕하세요제가 구현하고 싶은 내용은 업체명(상호)에서 특정한 문자열 포함여부에 따라 20가지로 분류하고자 합니다제 소견에 로지스틱 회귀 + softmax + 크로스 엔트로피로 하는 것이 효율적인 것 같은데 적용에 적합한 머신러닝 라이브러리나 알고리즘을 알고 싶고 더불어 관련 자료 또는 사례의 출처도 알려주시면 너무 감사하겠습니다
-
미해결자바 동시성 프로그래밍 [리액티브 프로그래밍 Part.1]
동기 & 논블록킹 질문 드립니다.
안녕하세요 강의 듣다 궁금증이 생겨 질문 드립니다.강의자료 343p 보면 동기 & 논블록킹에 대한 예시 그림이 나오는데요.1) T1이 수행중인 Task4 에서 T2의 Task3, T3의 Task5 의 작업을 기다리고 있어 스레드 T1은 부분적으로 동기처리 된다고 이해했습니다. 이 내용이 맞을까요?2) " Wait and Acknowledge " 부분에서 T1이 T2, T3의 작업결과를 가져와야 다음 작업을 수행할 수 있으므로 동기이면서 Blocking이 발생할 것 같은데요. (ex. Future.get 으로 구현할 경우) 그림만 봐서는 Non-blocking방식인 것 같아 생각해보니, T1이 BusyWaiting방식으로 loop안에서 T1, T2의 완료여부를 체크하는 것 같습니다. 이 내용이 맞을까요? 그렇다면, 만약 Future.get처럼 Block되는 방식의 API를 사용하면 T1은 Task4에서 Non-blocking이 아닌 Blocking된다고 이해해도 될까요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
configuration key file 경로에 한글
mac os m1 사용중인데, configuration 서버의 bootstarp에 적은 key file 경로에 한글이 들어가면 경로 인식이 제대로 안되는것 같습니다.물론 한글이 안들어가는 경로상에 key 파일을 위치시켜도 되지만, 프로젝트 자체를 한군데에서 관리해야 나중에 다시 공부할때 헷갈리지 않을 것 같아서 한글경로가 들어간 위치에 key를 두고 싶은데, 혹시 한글이 들어가도 location 설정을 문제없이 하는 방법은 없을까요?
-
미해결React & Express 를 이용한 웹 어플리케이션 개발하기
react hot reloader
webpack설정하면서 hot reloader에 대한 모듈설치부터 설정까지 나오는데요...저는 1.8버전을 설치했습니다.강의는 아무래도 좀 오래된 버전이구요..그러다 보니 현재 1.7이나 1.8버전에서의 설치할 모듈부터 설정까지 조금씩 달라진것 같습니다.1.8버전에 대한 hot reloader 설정관련한 내용좀 알수있을까요? 검색해봐도 잘 안나오고 쉽지 않네요 .감사합니다.
-
미해결웹 게임을 만들며 배우는 React
onRightClickTd가 작동을 하지 않습니다.
const onRightClickTd = useCallback( (e) => { e.preventDefault(); if (halted) { return; } console.log(`Right click on cell [${rowIndex}, ${cellIndex}]`); switch (tableData[rowIndex][cellIndex]) { case CODE.NORMAL: case CODE.MINE: dispatch({ type: FLAG_CELL, row: rowIndex, cell: cellIndex }); return; case CODE.FLAG_MINE: case CODE.FLAG: dispatch({ type: QUESTION_CELL, row: rowIndex, cell: cellIndex }); return; case CODE.QUESTION_MINE: case CODE.QUESTION: dispatch({ type: NORMALIZE_CELL, row: rowIndex, cell: cellIndex }); return; default: return; } }, [tableData[rowIndex][cellIndex], halted] ); return ( <td style={getTdStyle(tableData[rowIndex][cellIndex])} onClick={onClickTd} onContextMenu={onRightClickTd} > {getTdText(tableData[rowIndex][cellIndex])} </td> ); }; export const TableContext = createContext({ tableData: [], halted: true, dispatch: () => {}, }); const initialState = { tableData: [], timer: 0, result: "", halted: true, };강의에서 나온대로 적용하여 수업을 듣고 있는데, onRightClickTd가 작동을 하지 않습니다.콘솔에는 누를때마다 찍히는데, 오른쪽 마우스 이벤트 자체를 인식을 못하는 것 같습니다. 혹시몰라 Td.jsx 컴포넌트 코드를 다 올립니다! 어떤 문제 때문에 작동을 안하는걸까요?import React, { useCallback, useContext } from "react"; import { CLICK_MINE, CODE, FLAG_CELL, NORMALIZE_CELL, OPEN_CELL, QUESTION_CELL, TableContext, } from "./MineSearch"; const getTdStyle = (code) => { switch (code) { case CODE.NORMAL: case CODE.MINE: return { background: "#444", }; case CODE.CLICKED_MINE: case CODE.OPENED: return { background: "white", }; case CODE.QUESTION_MINE: case CODE.QUESTION: return { background: "yellow", }; case CODE.FLAG_MINE: case CODE.FLAG: return { background: "red", }; default: return { background: "white", }; } }; const getTdText = (code) => { switch (code) { case CODE.NORMAL: return ""; case CODE.MINE: return "X"; case CODE.CLICKED_MINE: return "꽝"; case CODE.FLAG_MINE: case CODE.FLAG: return "!"; case CODE.QUESTION_MINE: case CODE.QUESTION: return "?"; default: return ""; } }; const Td = ({ rowIndex, cellIndex }) => { const { tableData, dispatch, halted } = useContext(TableContext); const onClickTd = useCallback(() => { if (halted) { return; } console.log(`Right click on cell [${rowIndex}, ${cellIndex}]`); switch (tableData[rowIndex][cellIndex]) { case CODE.OPENED: case CODE.FLAG_MINE: case CODE.FLAG: case CODE.QUESTION_MINE: case CODE.QUESTION: return; case CODE.NORMAL: dispatch({ type: OPEN_CELL, row: rowIndex, cell: cellIndex }); return; case CODE.MINE: dispatch({ type: CLICK_MINE, row: rowIndex, cell: cellIndex }); return; } }, [tableData[rowIndex][cellIndex], halted]); const onRightClickTd = useCallback( (e) => { e.preventDefault(); if (halted) { return; } console.log(`Right click on cell [${rowIndex}, ${cellIndex}]`); switch (tableData[rowIndex][cellIndex]) { case CODE.NORMAL: case CODE.MINE: dispatch({ type: FLAG_CELL, row: rowIndex, cell: cellIndex }); return; case CODE.FLAG_MINE: case CODE.FLAG: dispatch({ type: QUESTION_CELL, row: rowIndex, cell: cellIndex }); return; case CODE.QUESTION_MINE: case CODE.QUESTION: dispatch({ type: NORMALIZE_CELL, row: rowIndex, cell: cellIndex }); return; default: return; } }, [tableData[rowIndex][cellIndex], halted] ); return ( <td style={getTdStyle(tableData[rowIndex][cellIndex])} onClick={onClickTd} onContextMenu={onRightClickTd} > {getTdText(tableData[rowIndex][cellIndex])} </td> ); }; export default Td;
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 기본편
네이버쇼핑 검색창 넘어가기전 팝업창이 안사라져요
다른답변에서 popup_close_button = browser.find_element(By.CSS_SELECTOR, "팝업 닫기 버튼의 CSS 선택자")popup_close_button.click() 이 방법도 해보고 팝업창 닫기 버튼 browser.find_element(By.XPATH, '/html/body/div[3]/div/div[1]/div/div[4]/div/div/button[1]').click()이렇게도 입력해 봤는데 계속 사라지지가 않아서 검색 단계로 넘어갈수가 없네요 ㅠㅠㅠㅠㅠ
-
미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
Linux 및 외장 하드 사용에 관한 질문
안녕하세요, 맛비님.맛비님 강좌를 통해 하드웨어 설계를 열심히 배우고 있는 수강생입니다.해당 주제에 대한 공부를 시작한 지 안 된 입장이라 사소한 궁금증이 몇 개 생겨서 질문 남깁니다.CNN core를 설계하시는 과정에서 Linux를 사용하셨는데 이 과정의 역할이 무엇인지 이해가 되지 않습니다. 해당 과정을 생략하면 CNN core를 vivado 상에서 설계할 수 없는 건가요?vivado와 vitis 설치를 노트북에 하고 싶은데 해당 프로그램의 용량이 너무 커서 설치가 불가능한 상황입니다. 따로 외장 하드를 연결해서 해당 프로그램을 설치해도 문제 없이 사용이 가능한지 여쭤보고 싶습니다.항상 강의를 잘 듣고 있습니다.감사합니다.