묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
object형 컬럼 카테고리 비교
강의에서 카테고리 비교할 수 있는 응용 코드를 알려주셨는데요, train과 test의 범주형 컬럼의 기초통계값을 확인해서 unique수 차이가 많이 난다면 카테고리 비교하는 과정없이 그냥 무조건 concat으로 합치고 레이블 인코딩 후 다시 분리해도 되나요?
-
해결됨제미니의 개발실무 - 커머스 백엔드 기본편
프로덕트와 카테고리에 대한 질문
안녕하세요!강의 중 잘 이해가 안되는 부분이 있어 질문드립니다.카테고리에 상품이 있는 방향으로 설명을 진행하다가 실제 구현에선 프로덕트의 카테고리이다 라고 정의를 하셨다고 말씀해주셨는데설명과 실제 구현이 다른 이유가 있을까요?
-
미해결
앱 배포 이용약관 작성 문의
팀 프로젝트로 앱 서비스를 배포하려고 하는데, 이용약관과 개인정보처리방침을 직접 작성해야 하는 상황입니다.다른 분들은 이런 문서들을 어떻게 작성하셨는지 궁금합니다.참고할 수 있는 템플릿이나 사이트를 이용하셨는지 아니면 법률 자문이나 자동 생성 도구를 활용하셨는지, 또는 비슷한 서비스의 약관을 참고해서 수정하셨는지 경험이나 팁을 공유해주시면 감사하겠습니다 🙏
-
미해결한 입 크기로 잘라먹는 실전 프로젝트 - SNS 편
21강. 강의와 다른부분에서 todo 타입 에러가 납니다.
import type { Todo } from "@/types"; import { create } from "zustand"; import { combine } from "zustand/middleware"; import { immer } from "zustand/middleware/immer"; const initialState: { todos: Todo[]; } = { todos: [], }; const useTodosStore = create( immer( combine(initialState, (set) => ({ actions: { createTodo: (content: string) => { set((state) => { state.todos.push({ id: new Date().getTime(), content }); }); }, deleteTodo: (targetId: number) => { set((state) => { state.todos = state.todos.filter((todo) => todo.id !== targetId); }); }, }, })), ), );export interface Todo { id: number; content: string; } 오히려 강의에서 7분에 'never'에러나던 state.todos.push({ id: new Date().getTime(), content}); 이 코드 작성 시에는 에러가 나지않고,state.todos.filter((todo) => todo.id !== targetId); 여기서 todo 부분에서 에러가 납니다.'todo' 매개 변수에는 암시적으로 'any' 형식이 포함됩니다.state.todos에 마우스오버해서 확인해보니 any 타입으로 뜹니다.제가 중간에 설정하는 부분이나 놓친부분이 있는걸까요 ㅠㅠ?
-
해결됨오브젝트 - 설계 원칙편
6-2 보호 로직 중복 이슈
안녕하세요 강사님, 강의 잘 보고 있습니다. 이동 로직을 정리하다가 보호(가드) 로직 중복에 대해 질문드립니다.현재 구조에서 Game.tryMove()에서 player.canMove(dir)로 먼저 확인하고, Player.move(dir) 내부에서도 canMove(dir)를 다시 확인하여 막습니다.즉, 이동 가능 여부 판정이 두 번 수행됩니다.// Game private void tryMove(Direction dir) { if (player.canMove(dir)) { // 1차 player.move(dir); // 내부의 2차 showRoom(); } else showBlocked(); } // Player public void move(Direction dir) { if (!canMove(dir)) throw new IllegalArgumentException(); this.position = this.position.shift(dir); } 두 번의 가드가 필요한 이유가 있을까요? SRP/TDA 관점에서는 Game의 판정을 제거하고 player.tryMove(dir)만 호출해 결과만 처리하는 패턴이 더 적절한지, 혹은 move()만 두고 예외로 제어하는 방식을 권장하시는지 궁금합니다.
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
오징어게임 챌린지
쿠폰 신청을 하려고 했는데 사용 가능 수량이 초과되었다고 문구가 뜹니다.혹시 추가 쿠폰 지급 계획은 없으신지 문의드립니다.
-
미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
aws - lightsail 이용 관련
강사님 현재 aws - Lightsail은 7월15일 이후 계정 생성시 유료로 전환이 되었다고 하는데 이럴 경우에는 강의 내용과 완전히 바뀌는 것 같습니다. 이럴 때는 어떤 걸 사용해야 할까요?
-
미해결마케터를 위한 구글 애널리틱스 실무
pdf 강의북 요청드립니다
안녕하세요! 강의북 pdf 파일 요청드립니다!hhaa0423@naver.com
-
해결됨eks를 활용한 spring 운영서버 배포(feat. devops의 모든것)
수업 자료는 어디서 확인 가능한가요?
수업 자료 (노션?) 은 어디서 확인이 가능한걸까요?
-
해결됨이해하면 인생이 바뀌는 Windows API hook
unInjection 관련 질문 입니다.
안녕하세요 injection과 hooking 공부 중 궁금한게 생겨서 질문드립니다.dll을 Injection하고 API hooking한 A라는 함수가 오래걸리는 작업인데(약 10초라 가정) 그 A함수에 진입하였고 그과정에 dll을 unInjection하면 할당한 메모리가 날라가 다음 A함수에 step을 진행하면 프로세스에 영향이가 문제가 있는 걸로 알고 있습니다. 혹시 프로세스에 영향 없이 안전하게 unInjection하는 팁이 있을까요?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
lockType 오류 및 카운트 체크 안 됨
안녕하세요! 강의 잘 듣고 있습니다. 좋은 강의 감사합니다.실습하다가 오류가 생겨 문의 드립니다. void like(Long articleId, Long userId, String lockType) { restClient.post() .uri("/v1/article-likes/articles/{articleId}/users/{userId}/" + lockType, articleId, userId) .retrieve(); } @Test void likePerformanceTest() throws InterruptedException { ExecutorService executorService = Executors.newFixedThreadPool(100); // 100개의 스레드 풀 생성 // 각 lock type별로 테스트 likePerformanceTest(executorService, 1111L, "pessimistic-lock-1"); likePerformanceTest(executorService, 2222L, "pessimistic-lock-2"); likePerformanceTest(executorService, 3333L, "optimistic-lock"); } void likePerformanceTest(ExecutorService executorService, Long articleId, String lockType) throws InterruptedException { CountDownLatch latch = new CountDownLatch(3000); System.out.println(lockType = " start"); like(articleId, 1L, lockType); long start = System.nanoTime(); for (int i = 0; i < 3000; i++) { long userId = i + 2; // String finalLockType = lockType; executorService.submit(() -> { like(articleId, userId, lockType); latch.countDown(); }); } latch.await(); long end = System.nanoTime(); System.out.println("lockType = " + lockType + ", time = " + (end - start) / 1_000_000 + " ms"); System.out.println(lockType + " end"); Long count = restClient.get() .uri("/v1/article-likes/articles/{articleId}/count", articleId) .retrieve() .body(Long.class); System.out.println("count = " + count); }여기서 '람다 식에 사용되는 변수는 final 또는 유사 final이어야 합니다' 라는 오류가 뜨더라고요. // String finalLockType = lockType; 부분 주석 해제하고 람다 내부에 like(articleId, userId, finalLockType); 으로 하면 startlockType = start, time = 914 ms start endcount = 0 startlockType = start, time = 589 ms start endcount = 0 startlockType = start, time = 567 ms start endcount = 0 으로 출력도 잘 안 나옵니다. 애플리케이션 콘솔에는 아래 로고만 찍히고 나머지는 안 나옵니다.Hibernate: select alc1_0.article_id,alc1_0.like_count,alc1_0.version from article_like_count alc1_0 where alc1_0.article_id=?Hibernate: select alc1_0.article_id,alc1_0.like_count,alc1_0.version from article_like_count alc1_0 where alc1_0.article_id=?Hibernate: select alc1_0.article_id,alc1_0.like_count,alc1_0.version from article_like_count alc1_0 where alc1_0.article_id=? 어느 부분이 문제일까요? ArticleLikeController에서 count 경로는 테스트처럼 뒤에 /count 추가했습니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
example 서버 플레이그라운드, API 접속 모두 안됩니다.
2025.10.27. 16:44분 기준 example 서버의 플레이그라운드 접속과 API 접근 모두 안됩니다. 확인 부탁드립니다.
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강기간 연장 부탁드립니다....!
취준하면서 초반에 차근차근 열심히 들었는데 다른 일을 잠깐 하게 됐습니다.다시 들으려고 보니 기간이 얼마남지 않았네요...ㅠㅠ 수강기간 연장 부탁드립니다...!
-
해결됨오브젝트 - 설계 원칙편
3-2 메서드를 얼마나 작게 나누는게 적절한가요?
안녕하세요. 좋은 강의 감사합니다. 덕분에 객체지향에 대한 이해가 많이 정리되었습니다.3-2 강의를 보다 메서드 크기 관련해서 궁금한 점이 있어 질문드립니다.콘솔 입력 의존성(12:17) 부분에서 입력을 분리하는 예시로 아래와 같이 nextLine() 호출을 별도 메서드로 추출하신 것으로 이해했습니다.private String input(){ return Scanner.nextLine(); }그런데 이 관점이라면, 입력 “수집(I/O)” 뿐 아니라 “입력 파싱(문법)”도 별도의 책임으로 분리해야 하는 것 아닌지 고민이 됩니다. 예를 들어:private String[] inputParsing(String input){ return input().toLowerCase().trim().split("\\s+"); }강사님의 강의 및 "객체지향의 사실과 오해" 책을 읽고 난 뒤, SRP의 책임을 ‘하나의 변경 이유’로 보았습니다.위의 콘솔 입력(nextLine)을 분리한 건 입력 장치 변경이라는 액터에 대한 책임 분리로 이해했습니다.그렇다면 입력 파싱(toLowerCase/trim/split)은 명령 문법 변경이라는 또 다른 액터에 대한 책임이므로, 이 역시 별도로 분리해야 SRP를 완전히 지키는 게 아닐까요? 물론 이렇게까지 분리하면 가독성이 떨어질 수 있고, 실제로는 변경 가능성도 낮아 “가치가 작은 분리”로 느껴지기도 합니다. 강사님의 의견이 궁금합니다!+ 외에도 추상화 수준을 맞추기 위한 메서드 추출(9:25) 강의 자료에isRunning 함수의 반환이 void로 되어있으나 실제 내부에선 running == true를 반환합니다. github 코드 상에는 해당 함수가 없어보입니다.
-
해결됨(2026) 일주일만에 합격하는 정보처리기사 실기
C언어 기출문제의 변형 22:50 printf 5번 질문입니다.
arr+1의 값이 22가 나오는 이유가 arr의 배열은 4번까지 진행됐을때 {21, 31, 40, 50, 60}이고, 1번, 3번, 4번까지는 ptr의 포인터 변수의 값을 물어보는 의미이기 때문에 5번의 *arr+1은 arr배열의 초기값인 21에서 1을 더한것을 출력하기 때문에 22가 맞는건가요?
-
해결됨유니티 시스템 프로그래밍 Pt.2 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
우편 기능에 대해 궁금합니다.
안녕하세요. 강의 잘 듣고 있습니다. 모바일 게임에서 흔히 볼 수 있는 우편을 통해 재화를 보상을 주는 우편 시스템에 대해 궁금합니다.강의 내에는 우편 관련 기능이 없긴 하지만 혹시 강사님께서는 우편 기능을 어떻게 구현해서 사용하시는지 알려주시면 큰 도움이 될 것 같습니다. 국내에서는 뒤끝과 같은 외부 서비스에 도움을 받아 할수있지만 혹시 개인이 다른 방법으로도 사용할 수 있을지 궁금해서 여쭤봅니다~!!감사합니다~
-
미해결AWS 배포 완벽가이드 (feat. Lightsail, Docker, ECS)
lightsail 가상서버에서 sudo npm start를 실행했을때 오류 질문드립니다.
강사님 안녕하세요:)강의 들으면서 aws 잘 배우고 있습니다.한가지 질문이 있는데요,.env 파일에서 PORT를 80으로 변경하고관리자 권한인 sudo npm start를 실행했는데 커맨드가 not found라고 나오더라구요..! 이럴땐 어떻게 처리해야하는지 궁금합니다.
-
미해결React Native with Expo: 제로초에게 제대로 배우기
.
.
-
미해결(2026) 일주일만에 합격하는 정보처리기사 실기
range 질문
반복문과 range 강의 챕터 4:51for i in range(3): j=0 while j<3: print("*", end=" ") j+=1print() 위 구문에 대해서 range 의미를 잘 모르겠습니다.range(3)이니까 0~2까지 해서 3개가 된다는 것은 이해가 됐고, 개행이 2번 되어 행이 3개가 된다는 것은 이해가 됐습니다.하지만 왜 각 행마다 개수가 range의 어떤 역할 때문에 *이 3개씩 있는지 이해가 되지 않습니다.
-
해결됨(2026) 일주일만에 합격하는 정보처리기사 실기
typedef 키워드 / 5:45 / 구조체 변수명 선언 관련 문의
안녕하세요.직전 강의인 구조체 강의에서 구조체 선언 방법에 대해 알려주셨는데, 거기서는 typedef 없이도 구조체 선언, 멤버 선언, 구조체 변수 선언을 한번에 다 할 수 있다고 하셨습니다.(구조체 강의 약 1:20)예1: struct{int year;float price;}Bag1;그런데 이번 강의에서는 typedef 없이 struct만 쓰는 경우에는 타입으로 사용할 수 없다고 설명해 주셨습니다.이 부분이 잘 이해되지 않는데요. 예2: typedef struct Bag{int year;float price;}Bag1;위에 예1과 예2의 차이점이 뭔가요?예2는 struct Bag 자료형(타입)의 변수인 Bag1을 선언하는 것이라고 확실하게 이해했는데, 예시1번도 동일한가요?