묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결생초보를 위한 파이널컷 프로
수강기간연장을 부탁드려도 될까요?
안녕하세요.강의를 다 못들어서 그런데 수강기간연장을 부탁드려도 될까요?
-
미해결[2025 리뉴얼]플러터플로우로 코딩 없이 한달 안에 앱 만들기
Project Setup Step 절차가 나오지 않아요, 테마를 어디서 고르죠?
히 적어줄수록 좋아요!
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
26분 자식 this() 3단 체인
역순 호출시 child5(int) 에 int 값 1을 넣어서 출력해야 하는거 아닌가 하고요이미 3번에서 1을 대입 하면 더이상 안쓰는건가요?볼땐 알겠는데 뒤돌아보면 다시 리셋 되네요~ㅠㅠ
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
PayOption
package poly.ex.pay2; public class PayOption { Pay findPay(String option) { //결제 수단 추가시 변경되는 부분. if (option.equals("kakao")) { return new KakaoPay(); } else if (option.equals("naver")) { return new NaverPay(); } else if (option.equals("newPay")) { return new NewPay(); } else { return new DefaultPay(); } } }마지막 강의 실전 문제 중에서 결제 수단 관련 문제입니다.위와 같이 코드를 작성하게 되면 결제 수단이 추가될 때마다 클래스 내부 코드가 변경이 되는데, OCP를 위반한 것 같은데, 왜 이렇게 작성한 것인지 궁금해서 여쭤봅니다.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
해결됨GPT + Bitget API로 만드는 실전 자동매매: 나만의 선물거래 봇 완전히 구현
실행이 안 되는 분들을 위한 질문
실행이 안 되서 교수님께 질문을 하러 들어오니 llm에게 문의하라고 적어놓으셔서 문의 후 방법을 공유드리려고 질문 남겨놔요~알아서 하셨을 수도 있지만?1. 모든 코드를 잘 작성하셨는지 체크해보세요2. 초반에 말씀하셨던 install관련 다음 내용을 터미널에 입력한다=> pip install requests=> cursor에서 물어보면서 진행하는데 가상환경으로 만들어서 진행해야하는 경우도 있다고 하니 다들 체크하셔요~ 경험 공유드립니다!P.S. 좋은 양질의 강의 감사합니다. 내일 또 와서 들을게요~ 짬짬이 따라가는 중 입니다!
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
31. 업캐스팅 (부모 형태, 자식 생성자)
제가 제대로 이해한 것이 맞는지 헷갈려서 질문 드려요 ㅠ 부모 자식 클래스 관계에서 super()라는 명시적 호출이 생략되어 있는 거고, 상속 관계에서는 무조건 자식 생성자 생성하기 전에 부모 생성자부터 생성하는 건 이해했습니다.근데 그럼 상속 관계에서 명시적 호출 super()이 아닌, this()라고 선언 해놓았을 경우, 부모 생성자를 생성하지 않고 자식 생성자만 생성하는 건가요? 너무 헷갈리네요 ..
-
해결됨아키텍처와 함께하는 부하(성능) 테스트 with Locust
RPS 개념을 잘모르겠어요
20명을 동시에 테스트 했을 경우 RPS가 API 당4.96, 0.33, 0.18, 0.13, 0.08 등등 숫자가 높을 수록 좋은건가요? 0.08 등 숫자는 왜 나오는건지 이해가 안되요SequentialTaskSet 써서 시나리오 API 순차적인 처리를 해야 RPS가 균등하게 나올까요
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
yarn으로 express 다운 후 node 2_server.js 실행 안되는 경우
저는 yarn node 2_server.js 로 실행하니 되네요![코드팩토리 디스코드]https://bit.ly/3HzRzUM - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
해결됨남박사의 파이썬으로 실전 웹사이트 만들기
google.py 몽고db 샘플데이터 만들기
[남박사의 파이썬으로 실전 웹사이트 만들기] 강좌를수강중 입니다.강좌내용대로 코딩후 실행해봐도 db 생성이 안되어 강좌의 이후단계로 진입을 못하고 있습니다.샘플데이터가 탑재된 db 를 다운받을 방법이 없을까요?
-
미해결[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; } }