묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
메모리 풀 질문있습니다.
우선 좋은강의 만들어주셔서 감사합니다.제가 질문드릴건 메모리풀을 1024까지는 32바이트단위로 만드는데, 그러면 32바이트전용 풀 64바이트 전용 풀 이렇게 만들어질거고근데 이제 요청하는데 16바이트 요청을 1000번하면,32바이트 풀안에 메모리헤더 큐가 1000개가 생기는거죠?? 해제안했다는 가정하에
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
메모리 풀 질문있습니다.
우선 좋은강의 만들어주셔서 감사합니다.제가 질문드릴건 메모리풀을 1024까지는 32바이트단위로 만드는데, 그러면 32바이트전용 풀 64바이트 전용 풀 이렇게 만들어질거고근데 이제 요청하는데 16바이트 요청을 1000번하면,32바이트 풀안에 메모리헤더 큐가 1000개가 생기는거죠?? 해제안했다는 가정하에
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
return
5:25초 구간에서 계산까지는 모두 혼자 정상적으로 진행했는데 궁금한 점은 temparr를 리턴 할 때 왜 intarr로 반환하는 건가요?
-
미해결C 프로그래밍 - 입문부터 게임 개발까지
8-8 연장전 / 소스코드 공유해드려요. 참고하세요!
#include <stdio.h> #include <stdlib.h> #include <time.h> // 10마리의 서로 다른 동물(각 카드 2장씩) // 사용자로부터 2개의 입력값을 받아서 -> 같은 동물 찾으면 카드 뒤집기 // 모든 동물 쌍을 찾으면 게임 종료 // 총 실패 횟수 알려주기 int arrayAnimal[4][5]; // 카드 지도 (20장의 카드) int checkAnimal[4][5]; // 뒤집혔는지 여부 확인 char *strAnimal[10]; void initAnimalArray(); void initAnimalName(); void shuffleAnimal(); int getEmptyPosition(); int conv_pos_x(int x); int conv_pos_y(int y); void printfAnimals(); void printQuestion(); int foundAllAnimals(); void printAlign(const char *str, int totalWidth); int getVisibleWidth(const char *str); int main(void) { srand(time(NULL)); initAnimalArray(); initAnimalName(); shuffleAnimal(); int failCount = 0; // 실패 횟수 while (1) { int select1 = 0; // 사용자가 선택한 처음 수 int select2 = 0; // 사용자가 선택한 두번째 수 printfAnimals(); // 동물 위치 출력 printQuestion(); // 문제 출력 (카드 지도) printf("뒤집을 카드를 2개 고르세요 : "); scanf("%d %d", &select1, &select2); if (select1 == select2) // 같은 카드 선택 시 무효 continue; // 좌표에 해당하는 카드를 뒤집어 보고 같은지 안같은지 확인 // 정수 좌표를 (x, y)로 변환 int firstSelect_x = conv_pos_x(select1); int firstSelect_y = conv_pos_y(select1); int secondSelect_x = conv_pos_x(select2); int secondSelect_y = conv_pos_y(select2); // 같은 동물인 경우 if ((checkAnimal[firstSelect_x][firstSelect_y] == 0 && checkAnimal[secondSelect_x][secondSelect_y] == 0) && (arrayAnimal[firstSelect_x][firstSelect_y] == arrayAnimal[secondSelect_x][secondSelect_y])) { printf("\n\n빙고! : %s 발견 \n\n", strAnimal[arrayAnimal[firstSelect_x][firstSelect_y]]); checkAnimal[firstSelect_x][firstSelect_y] = 1; checkAnimal[secondSelect_x][secondSelect_y] = 1; } // 다른 동물인 경우 else { printf("\n\n 땡!! (틀렸거나, 이미 뒤집힌 카드입니다)\n"); printf("%d : %s\n", select1, strAnimal[arrayAnimal[firstSelect_x][firstSelect_y]]); printf("%d : %s\n", select1, strAnimal[arrayAnimal[secondSelect_x][secondSelect_y]]); printf("\n\n"); failCount++; } // 모든 동물을 찾았는지 여부, 1 : 참, 0 : 거짓 if (foundAllAnimals() == 1) { printf("\n\n 축하합니다 ! 모든 동물을 다 찾았네요 \n"); printf("지금까지 총 %d 번 실수했습니다\n", failCount); break; } } return 0; } void initAnimalArray() { for (int i = 0; i < 4; i++) { for (int j = 0; j < 5; j++) { arrayAnimal[i][j] = -1; } } } void initAnimalName() { strAnimal[0] = "원숭이"; strAnimal[1] = "하마"; strAnimal[2] = "강아지"; strAnimal[3] = "고양이"; strAnimal[4] = "돼지"; strAnimal[5] = "코끼리"; strAnimal[6] = "기린"; strAnimal[7] = "낙타"; strAnimal[8] = "타조"; strAnimal[9] = "호랑이"; } void shuffleAnimal() { // ☐ ☐ ☐ ☐ ☐ // ☐ ☐ ☐ ☐ ☐ // ☐ ☐ ☐ ☐ ☐ // ☐ ☐ ☐ ☐ ☐ for (int i = 0; i < 10; i++) { for (int j = 0; j < 2; j++) { int pos = getEmptyPosition(); int x = conv_pos_x(pos); int y = conv_pos_y(pos); arrayAnimal[x][y] = i; } } } // 좌표에서 빈 공간 찾기 int getEmptyPosition() { // ☐ ☐ ☐ ☐ ☐ 0 1 2 3 4 -> 0 0 0 0 0 // ☐ ☐ ☐ ☐ ☐ 5 6 7 8 9 -> 1 1 1 1 1 // ☐ ☐ ☐ ☐ ☐ 10 11 12 13 14 -> 2 2 2 2 2 // ☐ ☐ ☐ ☐ ☐ 15 16 17 18 19 -> 3 3 3 3 3 while (1) { int randPos = rand() % 20; // 0 - 19 사이의 숫자 반환 // 19 -> (3, 4) int x = conv_pos_x(randPos); int y = conv_pos_y(randPos); if (arrayAnimal[x][y] == -1) { return randPos; } } return 0; } int conv_pos_x(int x) { // 19 -> (3,4) return x / 5; } int conv_pos_y(int y) { // 19 -> 19 / 5 ? 몫은 3, 나머지 4 return y % 5; // y를 5로 나눈 나머지 값 } void printfAnimals() { printf("\n======== 이건 비밀인데 . . 몰래 보여줍니다 =======\n\n"); for (int i = 0; i < 4; i++) { for (int j = 0; j < 5; j++) { printAlign(strAnimal[arrayAnimal[i][j]], 8); } printf("\n"); } printf("\n============================================\n\n"); } void printQuestion() { printf("\n\n(문제)\n"); int seq = 0; // seq // checkAnimal // ☐ ☐ ☐ ☐ ☐ 0 1 2 3 4 0 0 0 0 0 // ☐ ☐ ☐ ☐ ☐ 5 6 7 8 9 1 0 0 0 0 // ☐ ☐ ☐ ☐ ☐ 10 11 12 13 14 // ☐ ☐ ☐ ☐ ☐ 15 16 17 18 19 for (int i = 0; i < 4; i++) { for (int j = 0; j < 5; j++) { // 카드를 뒤집어서 정답을 맞혔으면 ' 동물 이름' if (checkAnimal[i][j] != 0) { printAlign(strAnimal[arrayAnimal[i][j]], 8); } else { char temp[16]; sprintf(temp, "%d", seq); // 숫자를 문자열로 바꿔서 printAlign(temp, 8); // 한글처럼 정렬 } seq++; // 아직 뒤집지 못했으면 (정답을 못맞혔으면) 뒷면 -> 위치를 나타내는 숫자 } printf("\n"); } } int foundAllAnimals() { for (int i = 0; i < 4; i++) { for (int j = 0; j < 5; j++) { if (checkAnimal[i][j] == 0) { return 0; } } } return 1; // 모두 다 찾음 } int getVisibleWidth(const char *str) { int width = 0; while (*str) { if ((*str & 0xF0) == 0xE0) { width += 2; str += 3; } else { width += 1; str += 1; } } return width; } void printAlign(const char *str, int totalWidth) { int visibleWidth = getVisibleWidth(str); printf("%s", str); for (int i = 0; i < totalWidth - visibleWidth; i++) { printf(" "); } }
-
미해결김영한의 실전 자바 - 기본편
상속 메모리 예시에서 메소드, 힙 영역 중 실제 저장되는 영역은 어디인가요?
[질문 내용]여기에 질문 내용을 남겨주세요.안녕하세요! 강의 잘 보고 있습니다.자바 메모리 강의에서 인스턴스의 메소드는 힙 영역이 아닌 메소드 영역에서 공통으로 관리된다고 학습하였습니다.이후 상속, 다형성 강의에서 상속관계의 인스턴스 메모리 구조가 그림으로 많이 설명되는데해당 영역은 실제로 메소드 영역인지, 힙 영역인지 궁금합니다.1) 메소드 영역이라면 클래스당 전역으로 1개가 생성되어 관리되는 구조이기 때문에 자식 인스턴스 생성시 해당 메모리에 부모 인스턴스가 함께 생성되어 메소드를 참조하는 구조가 잘 이해가 되지 않습니다.2) 그렇다면 힙 영역에서 각자 생성된다는 것인데, 앞서 말씀드렸듯이 인스턴스의 메소드는 메소드 영역에서 전역으로 관리된다고 하여 혼란이 있습니다.답변 부탁드립니다.!
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
반복문 자료 질문드립니다.
28분 13초 왼쪽 하단 코드#include <stdio.h>int main() { for (int i = 0; ; i++) { if (i >= 5) { break; } printf("i의 값 : %d\n", i); }}주신 자료에 보면출력값으로i의 값 : 0i의 값 : 1i의 값 : 2i의 값 : 3i의 값 : 4이렇게 나와있습니다.그런데 i의 값 : 5 까지 나와야 하는 것 아닌지 여쭙고 싶습니다.
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
Select 태그의 옵션 값중에 선택전에 보여지는 첫 번째 옵션값을 디폴트로 가져오는 방법
안녕하세요. 강사님.5.8) State로 사용자 입력 관리하기1에서 Select태그를 선택하지 않은 상태에서 onSubmit 이벤트 핸들러 호출시 웹 페이지에 보여지는 첫 번째 옵션 값을 디폴트 값으로 가져오는 방법이 궁금합니다.
-
미해결오라클 성능 분석과 인스턴스 튜닝 핵심 가이드
HDD가 아닌 SSD인 경우는 dBMS I/O가 어떻게 동작하나요?
HDD 와 완전 access 방식이 다른가요?혹시 관련해서 어디 섹션를 참조하면 될지 궁금합니다
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
welcome-page
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]보통 tomcat을 사용하면 web.xml에 welcome-page 관련한 설정을 하는 것으로 알고 있는데, 스프링부트 내장 톰캣 또한 자동으로 welcome-page가 /webapp/index.html으로 설정이 되어 있어서 index.html이 렌더링 되는지 아니면 다른 곳에 welcome-page가 설정되어 있는지 궁금하여 문의드립니다.
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
36강 edowon0623/cicd-project-ansible이 호환이 안되는것 같아요
36. Kubernetes Script 파일 강의에서cicd-devops-deployment.yml 작성 후kubectl apply -f cicd-devops-deployment.yml이명령어 실행 후kubectl get pod로 확인해보면 상태가 error입니다그래서 LLM에 물어보니edowon0623/cicd-project-ansible를 아키텍쳐에 맞게 빌드를 다시해야한다는데혹시 리눅스-우분투, 인텔CPU(i5-6500)에 맞기 빌드된 이미지가 있을까요?여기 질문게시판에 검색을 해봤는데 어떤건지를 잘 모르겠습니다.죄송합니다 제 도커 허브에 보니제이름/cicd-project-ansible 이 있고 이걸로 하니 제대로 됩니다그런데 이거 강의 보고 만든거 같은데 강의 몇번인지 알수 있을까요?
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
6. 최대 길이 연속부분수열 왜 계속 RuntimeError 뜰까요?
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int k = sc.nextInt(); sc.nextLine(); int[] array = new int[N]; for (int i = 0; i < array.length; i++) { array[i] = sc.nextInt(); } sc.nextLine(); Main main = new Main(); int result = main.solution(array, k); System.out.println(result); } private int solution(int[] array, int k) { int lt = 0; int answer = 0; int count = 0; for (int rt = 0; rt < array.length; rt++) { if (array[rt] == 0) count++; while (count > k) { if (array[lt] == 0) { count--; } lt++; } answer = Math.max(answer, rt - lt + 1); } return answer; } }
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
10-01 Entity TypeOrmModule.forRoot 에 entities
@Module({ imports: [ BoardsModule, // // ProductModule, // UsersModule, ConfigModule.forRoot(), // GraphQLModule.forRoot<ApolloDriverConfig>({ driver: ApolloDriver, autoSchemaFile: 'src/commons/graphql/schema.gql', }), TypeOrmModule.forRoot({ type: process.env.DATABASE_TYPE as 'mysql', host: process.env.DATABASE_HOST, port: Number(process.env.DATABASE_PORT), username: process.env.DATABASE_USERNAME, password: process.env.DATABASE_PASSWORD, database: process.env.DATABASE_DATABASE, entities: [__dirname + '/apis/**/*.entity.*'], synchronize: true, logging: true, }), ], }) export class AppModule {} entity 파일들에서 각 entity 파일에 import 할때 절대경로로 입력하면, 오류가나는데 해결방법을 모르겠습니다.상대경로로 작성시 문제가 해결되었는데 이유를 모르겠습니다.
-
미해결딥러닝을 활용한 자연어 처리 (NLP) 과정 (기초부터 ChatGPT/생성 모델까지)
NLP와 LLM의 차이점
안녕하세요. 강의 잘 듣고 있습니다.다름이 아니라 NLP와 LLM의 차이가 궁금해서 글을 남깁니다. NLP는 전체적으로 언어를 처리하는 방식 전체를 의미하고 그 방법 중에 LLM이 있다고 이해해도 되나요?
-
미해결코딩 없이 AI 자동화 전문가가 되는 법, n8n 완벽 가이드
AI Agent에 직접 Google API 를 사용해서 구글 검색 툴 작성하기 문의
. AI Agent에 직접 Google API 를 사용해서 구글 검색 툴 작성하기를 다시 보고 있는데요..파라미터에 q 를 넣고 value Provided 를 입력 하는 부분이 있는데요.. By Model 로 나오는데요. 제가 설치한 n8n 에는 그런 부분이 없고 그냥 value 로 되어 있습니다. 전에 한번 본게 있어서 value 에다가 컬럼을 끌고 와서 넣었는데.. 추천 할 수 없다고 나옵니다..그런데..http 에서 Execute step 를 해보면 결과가 나옵니다..이게 왜 그럴까요? 영상과 입력 하는 부분이 다르니까 좀 당황 스럽네요..
-
미해결FlutterFlow 쉽게하는 노코드 앱개발
하단에 왜 이런 에러가 발생하는 건가요
궁금한사항은 언제든 문의주세요!
-
미해결파이썬 알고리즘 트레이딩 파트1: 알고리즘 트레이딩을 위한 파이썬 데이터 분석
VSstudio에서 kernel 못찾음
강의 관련 내용은 아닙니다만, VSstudio상에서 kernel을 찾지 못하는 문제가 있어서 문의드립니다. myenv-finance-analysis 이름의 가상 환경을 구축해서 강의를 잘 듣고 있었는데요, 어느 날 다시 강의 수강을 진행하려고 보니까 아래와 같이 kernel을 찾기만 하고 kernel을 찾지 못하네요. 해당 부위를 클릭해서 가상환경을 선택하려고 해도 myenv-finance-analysis 가상환경을 찾지를 못합니다. 가상환경 내에서 pip install ipykernel로 패키지도 설치해놓았는데... 이런 문제가 발생하는 이유가 뭘까요?
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
Vue.js 파일 배포
안녕하세요 강사님 ACM 에서 인증은 받았고 사진 1 바로아래입니다. CloudFront에 도메인 이름을 넣었습니다.(밑에 사진2) 사진 3 Route53 에 CloudFront로 배포를 했는데도 aws s3 를 통한 정적웹사이트 배포는 정말 잘 되는데 뭐가 문제인지 모르겠습니다. 이렇게 연결이 되지 않습니다. 뭐가 문제인지 잘 모르겠습니다.
-
미해결
[창업 팀원 모집] AI PT 트레이닝 서비스 프론트, 백엔드 개발자 모집🚀
👋안녕하세요! 팀 Moobean 입니다!저희는 휴대폰 카메라를 통해 AI로 동작을 인식해 운동 자세를 실시간으로 분석 및 교정하고 AI 트레이너와 사용자가 소통하는 시스템을 개발중에 있습니다. 🏋♀️운동하는 모든 사람들에게 더 안전하고 효율적인 경험을 제공하고자, 최고의 딥러닝 솔루션을 만들어가고 있어요! 올해 하반기 출시를 목표로 시드 투자를 위한 프로덕트 개발중에 있습니다.따라서 현재 AI PT 트레이닝 서비스 프론트,백엔드 개발자를 모집중에 있습니다.운동과 기술의 만남에 흥미를 느끼신다면, 바로 지원해주세요! 🙌 🔥성과 및 현 상황2024년 생애 최초 청년 창업 지원사업 선정2024년 학생유망창업팀 300(예비트랙) 선정사업자 등록 및 관련 기술 특허 출원 완료AI 헬스 트레이너와의 감성 교류 기반 운동 케어 플랫폼 → 메인 프로젝트 (현재 실제 출시 프로덕트 개발중) 👥 현재 팀 구성 및 일정대표 1명, 운영책임자 1명, 백엔드 2명 프론트엔드 1명, 디자이너 1명, AI 개발자 2명으로 구성되어 있습니다.매주 화요일, 목요일 중 일정 조정을 통해 공덕역 서울 창업 허브 혹은 ICT COC에서 오프라인 회의 혹은 온라인 회의 진행 (일정 조정 가능) 모집 부문 🎯1. 백엔드 개발자 (1명)🤖주요 업무:MSA 기반 백엔드 서비스 설계 및 개발RESTful API 설계 및 구현데이터베이스 모델링 및 쿼리 최적화코드 리뷰 및 테스트 코드 작성 지원 자격 📋필수 조건:Spring, Spring Boot, 또는 Django, Nest 프레임워크를 사용한 RESTful API 설계 및 개발 경험. RDBMS(MySQL, PostgreSQL 등) 설계/운영 경험.Git 기반 협업 경험. 팀 프로젝트 경험 및 협업 능력.우대 조건:Docker, Kubernetes 활용 경험Redis, MongoDB 등 NoSQL 활용 경험Kafka, RabbitMQ 등 메시지 큐 시스템 활용 경험 2. 프론트엔드 개발자 (총 2명 / 1명 마감 )🤖주요 업무:디자이너와 협업 및 퍼블리싱 웹앱 프론트엔드 개발 및 UX 최적화 react native로 크로스 플랫폼 관리 지원 자격 📋필수 조건:html, css, JavaScript(or Typescript) React, react native(or Expo), redux git 기반의 협업능력팀 프로젝트 경험 및 협업 능력우대 조건:html, css, JavaScript 이해도 반응형웹, 모바일 개발 능력 RESTful API 연동 능력📌필독상단에 기술한 우대 사항에 충족되지 않으시더라도 열정만 있으시면 지원 가능합니다 :)예비 창업 단계이고 스타트업인 만큼 현재의 경제적 이익보다는 미래를 위해 노력하며, 진취적이고 행동력 있는 분이었으면 좋겠습니다.저희 “MOOBEAN”도 많이 부족합니다. 함께 성장하고 웃으며 저희와 함께 세상을 변화 시키고 싶으신 분들은 언제든 연락 주시기 바랍니다.논리적인 문제 해결 능력이 있으신 분원활한 커뮤니케이션 능력을 가지신 분새로운 기술 습득에 대한 열정이 있으신 분수익 발생시 팀원 분배 + 시드 투자 유치시 스톡옵션 제공합니다.오피스 위치 : 인천광역시 연수구 갯벌로 12 a동 511호 (인천 1호선 테크노파크역)-> 매주 화요일, 목요일 공덕역 서울 창업 허브 or ICT COC 에서 오프라인 회의 진행 (일정 조정 가능)📲지원문의 및 방법간단한 자기소개, 지원 직무, 관련 역량 및 경력사항에 대해서 기술해서 지원 부탁드립니다!포트폴리오가 있으시다면 첨부 부탁드립니다 :)자세한 문의는 링크를 통한 오픈채팅방으로 부탁드립니다 🙂 https://inf.run/uHN6L운동하는 모든 사람들을 위한 스마트한 헬스 솔루션을 함께 만들어갈 여러분을 기다립니다.📩 지금 바로 지원해주세요!💡 새로운 도전과 혁신을 함께 이끌어 갈 열정 넘치는 여러분을 환영합니다! 🚀
-
해결됨코딩 없이 AI 자동화 전문가가 되는 법, n8n 완벽 가이드
ModuleNotFoundError 확인 요청드립니다.
Code에서 relativedelta 를 import 해서 실행하면 ModuleNotFoundError 가 발생하는데,어떻게 해결이 가능한가요?n8n 은 별도의 n8nio/n8n으로 단독 설치한 버전입니다. (Version 1.99.1)-- 소스 --from datetime import datetimefrom dateutil.relativedelta import relativedelta# 이전 노드의 데이터를 가져옵니다.first_item_json = _input.first().jsoncode = first_item_json.get("code")input_ymd = first_item_json.get("ymd") # 'YYYYMM' 형식의 입력값base_date = None# 'input_ymd' 값이 유효한 'YYYYMM' 형식인지 확인합니다.if input_ymd and len(input_ymd) == 6: try: # 'YYYYMM' 문자열을 datetime 객체로 변환합니다. (일자는 1일로 자동 설정) base_date = datetime.strptime(input_ymd, '%Y%m') print(f"입력된 ymd '{input_ymd}'를 기준으로 계산합니다.") except ValueError: # 형식은 맞지만 유효하지 않은 값(예: '202313')일 경우 print(f"잘못된 ymd 값 '{input_ymd}'입니다. 현재 날짜를 기준으로 합니다.") base_date = datetime.now()else: # 'input_ymd' 값이 없거나, 비어있거나, 길이가 6이 아닐 경우 print("ymd 값이 없거나 형식이 올바르지 않아 현재 날짜를 기준으로 합니다.") base_date = datetime.now()# 기준 날짜로부터 한 달 전을 계산합니다.target_date = base_date - relativedelta(months=1)# 계산된 날짜를 다시 'YYYYMM' 형식의 문자열로 변환합니다.output_ymd = target_date.strftime('%Y%m')print(f"최종 계산된 ymd: {output_ymd}")# 결과를 반환합니다.return [{ "code": code, "ymd": output_ymd}]---- 오류 내용 --
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
새로운프로젝트 만들기
프로젝트 만들었는데 pixel XL api 선택하는 창도 없고 오류가 있는 듯이 빨간 표시가 나옵니다.