묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
인디게임출시경험이 중요할까요?
국비 교육과정을 마치고 OJT기간이 끝났는데 OJT를 진행한 회사에서 회사와 협업해서 팀을 이루어 인디게임을 출시해보겠냐는 제안을 받았습니다.신입이고 리소스는 회사에서 지원받는데 해보는게 좋을까요? 아님 개인 포트폴리오로 취업을 하는게 좋을까요?
-
미해결홍정모의 따라하며 배우는 C언어
cleanup() 함수 부분에서 문제가 발생하는데 해결법을 모르겠어요
#define CRTSECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <string.h>#define SLEN 81struct namect{ char* fname; char* lname; int letters;};void getinfo(struct namect*); //allocate memoryvoid makeinfo(struct namect*);void showinfo(const struct namect*);void cleanup(struct namect*); // free memory when doneint main(void){ //구조체의 멤버로 할당 메모리를 사용하기 //할당 메모리를 가리키는 포인터를 구조체의 멤버로 사용 struct namect p = { "Gil DONG","Hong",SLEN }; //char buffer[SLEN] = { 0, }; //int f2 = scanf("%[^\n]%*c", buffer); //p.fname = (char*)malloc(strlen(buffer) + 1); //null character 자리 1개 추가. //if (p.fname != NULL) // strcpy(p.fname, buffer); //printf("%s %s\n", p.fname, p.lname); getinfo(&p); makeinfo(&p); showinfo(&p); cleanup(&p); return 0;}void getinfo(struct namect* adr){ char buffer1[SLEN] = { 0. }; char buffer2[SLEN] = { 0, }; printf("input your first name:\n>>"); int f1 = scanf("%[^\n]%*c", buffer1); if (f1 != 1) printf("Wrong input!\n"); else { adr->fname = (char*)malloc(strlen(buffer1 + 1)); if (adr->fname != NULL) strcpy(adr->fname, buffer1); else printf("Malloc Failed!!\n"); } printf("input your last name:\n>>"); int f2 = scanf("%[^\n]%*c", buffer2); if (f2 != 1) printf("Wrong input!\n"); else { adr->lname = (char*)malloc(strlen(buffer2 + 1)); if (adr->lname != NULL) strcpy(adr->lname, buffer2); else printf("Malloc Failed!!\n"); }}void makeinfo(struct namect* adr){ adr->letters = strlen(adr->fname) + strlen(adr->lname);}void showinfo(const struct namect* adr){ printf("Hi, %s %s. Your name has %d characters.", adr->fname, adr->lname, adr->letters);}void cleanup(struct namect* adr){ free(adr->fname); free(adr->lname);}윗 분이 남겨주신 질의응답으로 해결 가능할 것으로 생각했으나 step over로 찍어봐도 free()에서 자꾸만 문제가 발생합니다...
-
해결됨이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
WBP_HpBar의 Parent Class를 설정
강의 내용 중 WBP_HpBar의 Parent Class를 설정하는 부분에서, WBP_HpBar의 Parent Class를 ABGASHPBarUserWidget으로 변경하고 있는데, WBP_HpBar 위젯은 ArenaBattleGAS가 아닌 ArenaBattle 모듈쪽에 있는 것으로 보여서 ArenaBattle쪽 위젯이 GAS쪽 클래스를 부모로 가지는 건 모듈 간 의존성 부분에서 좋지 않은 방법이 아닐까? 라는 생각이 들었어요. 해당 부분은 강의 내용처럼 저렇게 설정해도 문제가 없는 것인지, 혹은 더 좋은 방법이 있을지 궁금합니다!
-
해결됨
운영 테스트 중입니다.
운영 테스트
-
미해결[2023 코틀린 강의 무료제공] 기초에서 수익 창출까지, 안드로이드 프로그래밍 A-Z
mutable과 var의 차이점
컬렉션 부분을 배우면서 한가지 이상한 점이 생겨서 질문드립니다. 강의 초반 var / val의 차이점을 알려주시면서 읽기, 쓰기 가능 혹은 읽기만 가능 이라고 알려주셨는데 val로 List을 만들면 당연히 각각의 변수의 값을 바꿀 수 없는 거 아닌가 싶어서요또, val로 만든 List가 mutable을 붙이면 값이 변화할수 있다는게 조금 이해가 되지 않습니다 추정을 조금 해보자면 List을 만들면 List자체가 하나의 변수가 되어 val { } 안에 들어있는 값을 읽어오고 그 값을 List에 새롭게 저장하는 방식인가요? 만약에 그런 방식이 아니라면 이해가 되지 않는 부분입니다반대로 생각하면 var로 선언한 변수들로 immutableList를 만들었을때 값이 변화가 안되는건가요?
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
벌크 연산에 대해 질문 있습니다.
더티 체킹으로 발생한 update 문과 벌크 연산으로 발생한 update의 흐름이 궁금합니다. 기존에 setName() 이런식으로 엔티티의 속성을 수정하면 커밋시 플러시가 발생해서 최종적으로 더티체킹이 발생해 JPA가 알아서 update 쿼리를 날리고 벌크 연산 같은 경우에는 더티 체킹과 아무 상관없이 바로 update 쿼리를 날린다. 라고 이해를 했는데 맞게 이해한건지 궁금합니다.벌크 연산 같은 경우에는 바로 update 쿼리를 D에 보내는 방식이므로 영속성 컨텍스트에 있는 값에는 아무 영향을 끼치지 않나요?복수의 데이터를 변경하거나 삭제할때 벌크 연산을 사용하면 좋아보이는데요 복수의 복수 데이터는 어떻게 처리하는지 궁금합니다. 예를들어 게시글에 댓글이 여러개 달리는 구조고 게시글 하나 삭제 시 게시글에 달린 댓글들도 삭제되는 상황이라고 가정 하겠습니다. 이때 하나의 게시글을 삭제하면 벌크 연산을 사용하여 쉽게 댓글을 삭제하면 되지만 여러개의 게시글을 삭제할때는 어떻게 처리하면 좋을지 궁금합니다.
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 챗봇 사이트 만들기
postman 에 답이 오지 않습니다.(수정)
브라우저를 실행 했습니다 문제는이렇게 보내고이런 에러가 났습니다.또한 터미널에는 아무런 값도 뜨지않고이상태 그대로 입니다. 무엇이 문제일까요?아래 처럼되지 않습니다.<예제가 바르게 작동된 모습> const express = require('express'); const router = express.Router(); const structjson = require('./structjson.js'); const dialogflow = require('dialogflow'); const uuid = require('uuid'); const config = require('../config/keys'); const projectId = config.googleProjectID const sessionId = config.dialogFlowSessionID const languageCode = config.dialogFlowSessionLanguageCode // Create a new session const sessionClient = new dialogflow.SessionsClient(); const sessionPath = sessionClient.sessionPath(projectId, sessionId); // We will make two routes // Text Query Route router.post('/textQuery', async (req, res) => { //We need to send some information that comes from the client to Dialogflow API // The text query request. const request = { session: sessionPath, queryInput: { text: { // The query to send to the dialogflow agent text: req.body.text, // The language used by the client (en-US) languageCode: languageCode, }, }, }; // Send request and log result const responses = await sessionClient.detectIntent(request); console.log('Detected intent'); const result = responses[0].queryResult; console.log(` Query: ${result.queryText}`); console.log(` Response: ${result.fulfillmentText}`); res.send(result) }) //Event Query Route router.post('/eventQuery', async (req, res) => { //We need to send some information that comes from the client to Dialogflow API // The text query request. const request = { session: sessionPath, queryInput: { event: { // The query to send to the dialogflow agent name: req.body.event, // The language used by the client (en-US) languageCode: languageCode, }, }, }; // Send request and log result const responses = await sessionClient.detectIntent(request); console.log('Detected intent'); const result = responses[0].queryResult; console.log(` Query: ${result.queryText}`); console.log(` Response: ${result.fulfillmentText}`); res.send(result) }) module.exports = router; const express = require("express"); const path = require("path"); const bodyParser = require("body-parser"); const app = express(); const config = require("./server/config/keys"); // const mongoose = require("mongoose"); // mongoose.connect(config.mongoURI, { useNewUrlParser: true, useUnifiedTopology: true }) // .then(() => console.log('MongoDB Connected...')) // .catch(err => console.log(err)); app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); app.use('/api/dialogflow', require('./server/routes/dialogflow')); // Serve static assets if in production if (process.env.NODE_ENV === "production") { // Set static folder app.use(express.static("client/build")); // index.html for all page routes app.get("*", (req, res) => { res.sendFile(path.resolve(__dirname, "client", "build", "index.html")); }); } const port = process.env.PORT || 5000; app.listen(port, () => { console.log(`Server Running at ${port}`) }); { "name": "chatbot-app", "version": "1.0.0", "description": "chatbot-app", "main": "index.js", "engines": { "node": ">=20.16.0", "npm": ">=10.2.0" }, "scripts": { "start": "node index.js", "backend": "nodemon index.js", "frontend": "npm run front --prefix client", "dev": "concurrently \"npm run backend\" \"npm run start --prefix client\"" }, "author": "Jaewon Ahn", "license": "ISC", "dependencies": { "actions-on-google": "^2.6.0", "body-parser": "^1.18.3", "dialogflow": "^1.2.0", "dialogflow-fulfillment": "^0.6.1", "express": "^4.16.4", "mongoose": "^5.4.20" }, "devDependencies": { "concurrently": "^4.1.0", "nodemon": "^1.18.10" } }
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
LLM이 답변하지 못함
코드도 동일하고 retrieved_docs 의 내용이 k값에 따라 강사님과 다르다고 쳐도,ai_message = qa_chain({"query": query})에서 LLM의 답변이{'query': '연봉 5천만원인 거주자의 소득세는 얼마인가요?', 'result': '해당 질문에 대한 정보는 주어진 문서에서 직접적으로 찾을 수 없습니다. 연봉 5천만원인 거주자의 소득세를 계산하려면 추가적인 세법 정보와 공제 항목 등을 고려해야 합니다. 정확한 소득세 금액은 세무 전문가나 관련 세무 계산기를 통해 확인하는 것이 좋습니다.'}이렇게 나오는건 뭔가 잘못된건가요?
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
답변에 Source 추가하기
안녕하세요 강사님답변에 마지막에 참고한 문서의 source를 남겨 신뢰도를 올리려 합니다. prompt를 다음과 같이 추가했습니다1. 모든 답변에는 직접적으로 참조한 자료의 목록을 추가해야 합니다. 최종 답변에 관련이 없는 자료는 제외합니다. 2. 답을 모를 경우 답을 지어내지 말고 [정확한 답을 찾을 수 없지만, 다음 링크를 확인해 보시기 바랍니다] 라고 말한 뒤 자료 링크를 목록으로 추가합니다.문제는 출처를 남길 때 AI가 참고한 자료를 남길 때도 있지만 AI가 존재하지 않는 source를 문서내의 링크나 내용과 조합해서 만들어내는 일종의 hallucination이 발생하는 것 입니다 ( 정확한 원인은 모르겠습니다 ) 따라서 prompt 말고 직접 data에서 pick(answer)를 하지 않고 content속 metadata : souce를 꺼내고자 하는데 강의에서의 stream으로 응답주기 전에 answer 하단 부에 [출처 : 1. aaa, 2. bbb] 하기 위해서는 chain을 수정해야 할 까요? 지금으로서는 ai_response = final_chain.pick("answer").stream( { "question": user_message }, config={ "configurable": {"session_id": "abc123"} } ) ai_resource = final_chain.pick("context").invoke( { "question": user_message }, config={ "configurable": {"session_id": "abc123"} } )이렇게 두번 호출해서 resource는 반복문을 통해서 떠내는 방식으로 구현해보았는데 절대 올바른 방법은 아닌 것 같아서요..
-
미해결데이터 사이언스 대학원 준비, 이렇게 시작해보세요
구술 면접 부분에서 '자소서에 기반한 문제'라는 건 무엇인가요?
SPK 외 대학원의 구술 면접 내용 중 자소서에 기반한 문제 50%가 있다고 하셨는데, 이건 '내 자소서에 대해서 더 구체적으로 물어보고 싶은 질문사항'이라고 이해하면 될까요? 강의가 깔끔하고 군더더기 없어서 이해가 아주 잘 됩니다. 잘 듣고 있습니다. 감사합니다.
-
미해결
@Builder 사용 질문
@Builder 어노테이션 사용 관련해서 질문이 있어 글을 작성하게 되었습니다.@Getter @Entity @NoArgsConstructor(access = AccessLevel.PROTECTED) @AllArgsConstructor @Builder public class Member { @Id @GeneratedValue @Column(name = "member_id") private Long id; // Properties private String name; } 위와 같이 @Entity 클래스 단에서 @Builder 어노테이션을 사용할 때, @NoArgsConstructor 와 @AllArgsConstructor 를 사용해야 하는 것으로 알고 있습니다. 이와 관련해서 질문을 작성하겠습니다!@Entity 와 @Builder 만 사용했을때에 에러가 발생합니다. "이는 @Entity 어노테이션을 사용했을때, 해당 클래스에 아무런 생성자가 없다면 @Entity 가 기본 생성자를 생성해줍니다." 라고 이해했는데 맞나요?그렇다면 @Entity와 @Builder 를 사용하고, @AllArgsConstructor를 사용하면 기본 생성자는 @Entity가 만들어주었으므로, 기본 생성자를 만들어주는 역할을 하는 @NoArgsConstructor 는 필요없는 것 아닌가요?그런데 @NoArgsConstructor까지 사용해야 에러가 발생하지 않습니다.@Builder를 사용한 클래스에 어떠한 생성자도 없다면 클래스의 모든 필드를 매개변수로 가지는 private 생성자를 만들어주는 것이 맞나요?이것이 맞다면 2번의 질문과 반대로, @Builder 를 사용했기 때문에 @AllArgsConstructor 가 담당하는 모든 필드에 대한 생성자가 만들어져있으므로 @NoArgsConstructor 만 사용하면 되는 것 아닌가요?여기에서도 @AllArgsConstructor 까지 사용해주어야 에러가 발생하지 않습니다.질문이 좀 많은데 요약하자면, 빌더 패턴을 사용하려고 할때, @Entity, @Builder, @NoArgsConstructor, @AllArgsConstructor 이 네개의 어노테이션을 왜 꼭같이 사용해야 하는지가 궁금합니다. 감사합니다!
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 챗봇 사이트 만들기
최신버전 부분
제이슨파일에 최신 버전으로 호환이될 수 있게 방법을 알려주시면 좋을 것 같습니다!!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-I 런타임에러 확인
안녕하세요 강사님.제가 작성한 코드가 예제는 맞게 나오는데, 백준에 제출하면 런타임 에러가 나옵니다. 한 번 확인해 보시렵니까!?http://boj.kr/909851fccc5b446db825a1bb6d1df5fd감사합니다.
-
미해결Vue3 완벽 마스터: 기초부터 실전까지 - "기본편"
Reactivity Transform 폐기한다고 합니다!
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 챗봇 사이트 만들기
웹브라우저 실행이 안됩니다 .인스톨도 안되구요. 최신버전으로 해서 진행하고 자 하는데 어떻게 하면 될가요?
웹브라우저 실행이 안됩니다 .{ "name": "chatbot-app", "version": "1.0.0", "description": "chatbot-app", "main": "index.js", "engines": { "node": ">=20.16.0", "npm": ">=10.2.0" }, "scripts": { "start": "node index.js", "backend": "nodemon index.js", "frontend": "npm run front --prefix client", "dev": "concurrently \"npm run backend\" \"npm run start --prefix client\"" }, "author": "Jaewon Ahn", "license": "ISC", "dependencies": { "actions-on-google": "^2.6.0", "body-parser": "^1.18.3", "dialogflow": "^0.8.2", "dialogflow-fulfillment": "^0.6.1", "express": "^4.16.4", "mongoose": "^5.4.20" }, "devDependencies": { "concurrently": "^4.1.0", "nodemon": "^1.18.10" } } const express = require('express'); const router = express.Router(); const structjson = require('./structjson.js'); const dialogflow = require('dialogflow'); const uuid = require('uuid'); const config = require('../config/keys'); const projectId = config.googleProjectID const sessionId = config.dialogFlowSessionID const languageCode = config.dialogFlowSessionLanguageCode // Create a new session const sessionClient = new dialogflow.SessionsClient(); const sessionPath = sessionClient.sessionPath(projectId, sessionId); // We will make two routes // Text Query Route router.post('/textQuery', async (req, res) => { //We need to send some information that comes from the client to Dialogflow API // The text query request. const request = { session: sessionPath, queryInput: { text: { // The query to send to the dialogflow agent text: req.body.text, // The language used by the client (en-US) languageCode: languageCode, }, }, }; // Send request and log result const responses = await sessionClient.detectIntent(request); console.log('Detected intent'); const result = responses[0].queryResult; console.log(` Query: ${result.queryText}`); console.log(` Response: ${result.fulfillmentText}`); res.send(result) }) //Event Query Route router.post('/eventQuery', async (req, res) => { //We need to send some information that comes from the client to Dialogflow API // The text query request. const request = { session: sessionPath, queryInput: { event: { // The query to send to the dialogflow agent name: req.body.event, // The language used by the client (en-US) languageCode: languageCode, }, }, }; // Send request and log result const responses = await sessionClient.detectIntent(request); console.log('Detected intent'); const result = responses[0].queryResult; console.log(` Query: ${result.queryText}`); console.log(` Response: ${result.fulfillmentText}`); res.send(result) }) module.exports = router;
-
미해결[실전 게임 코드 리뷰] 유니티 클리커 게임
이전에 프레임웍을 만들때라는 말씀
안녕하세요! UI Sprite 강좌에 보면 “이전에 만든 프레임웍”에 대한 언급을 하시는데... 무엇을 가리키시는건지 조금 불명확해서 확인 요청드리고자 합니다.이전 선수강좌를 말씀하시는건지 아니면 강의가 짤린건지 조금 헷갈립니다.
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
early_stopping_rounds,eval_metric 오류 관련 질문있습니다.
분류 강의 위스콘신 유방암 예측 실습강의 코드입니다.from xgboost import XGBClassifierxgb_wrapper = XGBClassifier(n_estimators=400, learning_rate=0.05, max_depth=3)evals = [(X_tr, y_tr), (X_val, y_val)]xgb_wrapper.fit(X_tr, y_tr, early_stopping_rounds=50, eval_metric="logloss", eval_set=evals, verbose=True)ws50_preds = xgb_wrapper.predict(X_test)ws50_pred_proba = xgb_wrapper.predict_proba(X_test)[:, 1] --------------------------------------------------------------------------- TypeError Traceback (most recent call last) Cell In[36], line 5 3 xgb_wrapper = XGBClassifier(n_estimators=400, learning_rate=0.05, max_depth=3) 4 evals = [(X_tr, y_tr), (X_val, y_val)] ----> 5 xgb_wrapper.fit(X_tr, y_tr, early_stopping_rounds=50, eval_metric="logloss", 6 eval_set=evals, verbose=True) 8 ws50_preds = xgb_wrapper.predict(X_test) 9 ws50_pred_proba = xgb_wrapper.predict_proba(X_test)[:, 1] File ~\anaconda3\Lib\site-packages\xgboost\core.py:726, in require_keyword_args.<locals>.throw_if.<locals>.inner_f(*args, **kwargs) 724 for k, arg in zip(sig.parameters, args): 725 kwargs[k] = arg --> 726 return func(**kwargs) TypeError: XGBClassifier.fit() got an unexpected keyword argument 'early_stopping_rounds'위 코드를 입력하였을때 이러한 오류가 뜨는데 무엇이 원인인지 잘모르겠습니다. Xgboost 버전은 2.1.0이고 파이썬버전같은경우는 3.1.1입니다. 아래는 인터넷에 검색하여 찾아낸 방법으로 입력한 코드입니다from xgboost import XGBClassifierxgb_wrapper=XGBClassifier(n_estimators=400,learning_rate=0.05,max_depth=3,early_stopping_rounds=50,eval_metric="logloss")evals=[(X_tr,y_tr),(X_val,y_val)]xgb_wrapper.fit(X_tr,y_tr, eval_set=evals,verbose=True)ws50_preds=xgb_wrapper.predict(X_test)ws50_pred_proba=xgb_wrapper.predict_proba(X_test)[:,1] 아래는 위 코드에 대한 결과값입니다.오차 행렬 [[35 2] [ 2 75]] 정확도: 0.9649, 정밀도: 0.9740, 재현율: 0.9740, F1: 0.9740, AUC:0.9961 아래는 책에 있는 코드를 입력하였을때의 결과값입니다.오차 행렬 [[35 3] [ 2 75]] 정확도: 0.9561, 정밀도: 0.9615, 재현율: 0.9740, F1: 0.9677, AUC:0.9933 제 생각에는 버전차이에 따른 문제같은데 수정된 코드를 사용하였을때 결과값은 도출되지만 기존 강의에서 사용하신 코드의 결과값과는 다릅니다. 수정된 코드를 그대로 사용하는게 맞을지 아니면 다른 방법이 있는지 궁금합니다.
-
미해결실전! Querydsl
QuerydslApplicationTests 오류가 자꾸 납니다...
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용] 이 부분 테스트할 때 자꾸 오류가 나네요...이 사진은 설정 파일인데 이걸 properties로 하던지, yml로 하던지 똑같이 오류가 납니다...근데 이상하게 아래 사진처럼 주석을 치면 오류가 안나더라고요..?주석치면 되는 문제가 안생기는 사실은 처음에 세팅할 땐 테스트에 문제가 없었는데, yml생성하고 실행시키니까 오류가 나서 알았습니다. 아래는 오류 문구입니다.org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.MappingException: Could not instantiate id generator [entity-name=study.querydsl.entity.Hello]Caused by: jakarta.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.MappingException: Could not instantiate id generator [entity-name=study.querydsl.entity.Hello]Caused by: org.hibernate.MappingException: Could not instantiate id generator [entity-name=study.querydsl.entity.Hello]Caused by: org.hibernate.HibernateException: Could not fetch the SequenceInformation from the databaseCaused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Column "start_value" not found [42122-224]
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
배열길이 부분에 질문있어요
8:29초 부분입니다. b=a[:3] 이면 배열주소 0123을 출력하는게 아니라 3까지(012) 라고 봐야하는건가요?c=a[4:6]도 마찬가지로 45까지만 출력하는건가요?
-
미해결Airflow 마스터 클래스
실무에서는 깃헙말고 뭘통해 업로드하나요?
실무는 어떻게하는지 궁금해요