묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결데브옵스(DevOps)를 위한 쿠버네티스 마스터
namespace 사용
안녕하세요 강사님. namespace를 사용하다 궁금한점이 있어서 질문드립니다. namespace는 application 별로 구분하는 것이 좋은가요? 예를 들어, airflow, granfa, prometheus 각각 namespace를 갖는 방법 아니면, prd, dev 등으로 추상화하고 그 안에 모든 application을 넣는 것이 좋은가요? 실제로는 어떻게 사용하는지 궁금합니다.
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
node_module 질문 드립니다.
안녕하세요! 강사님. 강의 내용 중 궁금한점이 생겨 질문 작성하였습니다.Volume을 사용하여, Docker에서 Local 폴더 (혹은 파일)을 참조하는 부분에서 어떤 폴더(혹은 파일)이 생성될지 미리 알고 있어야 하나요?예를들어, 1. node를 활용한 application을 만들 때, 종속성을 담은 node_module 폴더가 생긴다는 사실을 이미 알고 있다.2. docker의 volume 기능을 활용하고자, -v /usr/src/app/node_module -v $(pwd):/usr/src/app으로 docker를 실행한다. 여기서 1번처럼 미리 알고있어야 하는걸까요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
네트워크 입출력이 아닌 파일입출력에서의 직렬화
파일 입출력 할 때 파싱하는것과 패킷 열어보는거랑 비슷한 느낌이 들었습니다. 그렇다면 엔진같은곳에서 저장하는 프리팹, 씬 등의 정보도 직렬화 시켜서 저장하는게 더 효과적인가요? 강의 내용처럼 저도 학원에서 통째로 저장하다가 터져서 하나씩 따로 수동으로 했었는데 3편까지 보고오니 굉장히 효율적이라고 생각나서 질문드려요 결론 : 네트워크 외의 모든 저장할 파일은 직렬화를 통해 저장하는게 좋나? 가 궁금증입니다
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
반례를 알고 싶습니다!
const solution = (m, arr) => { let min = Math.floor(arr.reduce((acc, cur) => acc + cur, 0) / m); let sum = 0; let result = 0; for (let i = 0; i < arr.length; i++) { if (sum + arr[i] >= min) { result = sum + arr[i]; sum = 0; } sum += arr[i]; } return result; };
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
이전 오류는 해결했지만 여전히 input box text내용이 추가가 안됩니다.
해결을 못 하고 있습니다..
-
미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
NonBlocking IO와 코루틴 에 대한 질문이 있습니다.
강의에서 (08:29) "서브와 메인이 서로 제어권을 주고받는 게 NonBlocking IO 이며, 타 함수는 작업을 지속한다" 라고 필기를 해주셨는데요. 여기서 의문이 생겼습니다. 서브와 메인이 서로 제어권을 주고받는 건 코루틴인데.. 제가 코루틴을 이해하기로는 코루틴이 작업을 끝내기 전까지 다른 함수(메인)들이 그 작업을 기다리고 있는 것으로 알고있었습니다. 어떻게 코루틴이 작업을 하는동안 타 함수가 일을 지속할 수 있는지 이해가 잘 안됩니다. 제어권을 전달한다는 자체가 Blocking 작업이라는 거 아닌가요? 저는 오히려 코루틴은 Blocking 이고 스레드가 NonBlocking 이라고 이해가됩니다. 제가 틀린건가요?
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
권한요청드립니다.
-인프런 아이디 : sunny_pk@naver.com -인프런 이메일 : sunny_pk@naver.com -github 아이디 : park.sunny74@gmail.com -github username : sunnypk74
-
미해결PHP 7+ 프로그래밍
터미널로 php 실행시 document root 지정
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. $php -S localhost:8080 -t lang/BasicSyntax/HTMLTemplate/ 이부분에서 경로 지정시 강의 내용을 보면 현재 파일 위치가 d://Development/php/phplec/lang/BasicSyntax/HTMLTemplate 인것 같은데 document root 지정시에서는 저렇게 lang 폴더부터 써줘도 되는건가요? 다른 설정이 필요한건지 제 윈도우에서는 제대로 진행이 되지 않습니다.
-
미해결
emmet 단축키 pdf
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 강의를 듣던 중 css에서 사용하는 emmet 단축키 설정 pdf 자료를 업데이트 하였다고 하는데 어디서 받는지요. 강의 자료 받는 곳을 잘 모르겠습니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
aggregate 단위당 레파지토리 하나
안녕하세요 영한님 영한님 jpa강의를 쭉 들었었지만 aggregate 관련된 내용을 듣지 못한 것 같아 질문 남겨봅니다. aggregate 단위당 레파지토리 하나 라는 내용을 간혹 보게 되는데요 어떤 entity 가 여러 연관관계를 가졌다면 부모 entity의 repository만 작성해야 한다는 그런 뜻인지 궁금합니다.
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
connect() failed (113: No oute to host) 에러
해당 에러 때문인지는 모르겠지만 서버는 정상적으로 실행되고 react도 실행됩니다. 하지만 input box에 text 입력하고 submit하면 아무런 반응이 없습니다.
-
미해결
React ERR_TOO_MANY_REDIRECTS 오류
react 로 프로젝트 중 로컬에서는 문제가 없었는데 젠킨스로 배포 후에 실제서버에서 확인하면 ERR_TOO_MANY_REDIRECTS 오류가 뜹니다 ex> 사이트 주소///////////////////sign-up 무한반복입니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
build 오류 (JAVA_HOME 문제)
빌드를 하려고 하니 JAVA_HOME 이 유효하지 않은 디렉토리에 세팅되었다고 뜨는데 이거 어떻게 해결해야 할까요...?
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
예제문제가 안보입니다.
예제문제 폴더를 다운 받아도 문제가 보이지 않습니다. 이메일로 따로 보내 주실 수 있을까요? zz12xx12c12@naver.com입니다!
-
미해결윤재성의 Kotlin 기반 안드로이드 앱 개발 Part4 - 실전 프로젝트
오류 좀 봐주세요. ':app:debugCompileClasPath';
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. splash 화면을 추가하는 과정에서 부터 오류메세지가 괴롭히네요. 구글 지도 사용하기 과정에서 발생했습니다. 구글 API 가져오기까지는 잘 되는 것 같았으나 맵이 보이지 않았습니다. 뭔가 잘못했나 싶어 처음부터 다시 해보자는 심정으로 프로젝트 만드는 것 부터 해봤습니다. 각 단계별로 실행해보면서 체크했는데요. 첨부된 에러 메세지 때문에 진행이 안되네요. 3번 프로젝트를 지우고(폴더 삭제) 새로 만들어서 해보지만 splash화면 만들기에서 넘어가질 못하고 있습니다. 내용을 좀 읽어보면 환경 설정이나 버전 문제 인것 같은데요. 알 수가 없네요. 도움 부탁드립니다.
-
미해결코딩으로 학습하는 GoF의 디자인 패턴
ioc 컨테이너이의 singleton scope를 무너뜨리는 방법
(IoC 컨테이너는 ApplicationContext를 사용해서 bean을 관리하는걸로 아는데 그럼 강의해서 설명해주신 ApplicationContext를 이용한 spring에서 사용되는 예제가 같다고 생각해서 IoC 컨테이너로 워딩 하였습니다.) IoC 컨테이너의 기본 scope가 singleton scope인걸 학습했었는데 IoC 컨테이너를 사용하더라도 다른 hash 값을 가진 인스턴스를 뽑아낼 수 있다고 언급하셨는데 어떻게 다른 인스턴스를 뽑아내는건가요?
-
해결됨Slack 클론 코딩[백엔드 with NestJS + TypeORM]
데코레이터의 인자로 클래스내의 프로퍼티 혹은 메서드등을 this로 전달할 수 없나요?
안녕하세요 조현영님. 이번에는 데코레이터에 this를 전달하려는데 this에 빨간줄에러가 나서 문의드립니다. 이미지 업로드등을 하기 위해서 아래처럼 MulterProvider라는 provider를 만들고 해당 모듈에 provider에 넣어주었습니다. // multer.provider.ts import { Injectable, Logger } from "@nestjs/common"; import { MulterOptions } from "@nestjs/platform-express/multer/interfaces/multer-options.interface"; import * as fs from "fs"; import * as path from "path"; import * as multer from "multer"; @Injectable() export class MulterProvider { private readonly logger = new Logger("Multer"); createFolder(folder1: string, folder2: string) { try { this.logger.log("create uploads folder"); fs.mkdirSync(path.join(__dirname, "../../../uploads")); } catch (err) { this.logger.log("uploads folder is already exist"); } try { this.logger.log(`create ${folder1}folder into uploads foler`); fs.mkdirSync(path.join(__dirname, `../../../uploads/${folder1}`)); } catch (err) { this.logger.log(`${folder1} is already exist`); } try { this.logger.log(`create ${folder2}folder into uploads folder`); fs.mkdirSync(path.join(__dirname, `../../../uploads/${folder2}`)); } catch (err) { this.logger.log(`${folder2} is already exist`); } } storage(folder1: string, folder2: string): multer.StorageEngine { this.createFolder(folder1, folder2); return multer.diskStorage({ destination(req, file, cb) { if (file.mimetype.includes("image")) { const folderName = path.join( __dirname, `../../../uploads/${folder1}`, ); cb(null, folderName); } else { const folderName = path.join( __dirname, `../../../uploads/${folder2}`, ); cb(null, folderName); } }, filename(req, file, cb) { const ext: string = path.extname(file.originalname); const fileName = `${path.basename( file.originalname, ext, )}-${Date.now()}${ext}`; cb(null, fileName); }, }); } apply(folder1: string, folder2: string) { const result: MulterOptions = { storage: this.storage(folder1, folder2), }; return result; } } // upload.module.ts import { MulterProvider } from "src/model/upload/multer.provider"; import { TypeOrmModule } from "@nestjs/typeorm"; import { Module } from "@nestjs/common"; import { UploadService } from "../upload/services/upload.service"; import { UploadController } from "../upload/controllers/upload.controller"; import { ImagesEntity, VideosEntity } from "./entities/upload.entity"; import { UploadRepository } from "./upload.repository"; @Module({ imports: [TypeOrmModule.forFeature([ImagesEntity, VideosEntity])], controllers: [UploadController], providers: [UploadService, UploadRepository, MulterProvider], exports: [UploadRepository], }) export class UploadModule {} 그리고 이미지를 업로드 할 컨트롤러에 MulterProvider를 적용시키기 위해 아래 처럼하였습니다. @Controller("upload") export class UploadController { constructor( private readonly uploadService: UploadService, private readonly multerProvider: MulterProvider, ) {} @UseInterceptors( FileInterceptor("image", this.multerProvider.apply("image", "video")), ) 이 때 FileInterceptor() 함수의 this가 들어간 인자가 빨간색 에러가 뜨며 에러 내용은 개체가 'undefined'인거 같습니다 라고 뜹니다. 위 예시를 di하지 않고 this.multerProvider 대신 new를 사용해 클래스를 초기화 한다면 정상작동 하기는 합니다. 어찌보면 FileInterceptor에 this로 된 인자를 전달해서 데코레이터에 인자로 준거랑은 다른 맥락인거 같아서 아래처럼 테스트를 해봤는데 this에 '개체가 'undefined'인거 같습니다'라는 에러가 나는 것은 똑같습니다. private readonly te = "hello"; @Get(this.te) test() { return "hello" }
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
질문있습니다
아직 수업을 다들은게 아니지만 제가 이 보일러플레이트를 통해 홈페이지를 만들어 배포를 하고싶다면 혹시 어떻게 해야할까요???
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
MemberRepository 구현 시, findAll() 메서드 질문 드립니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용] public List<Member> findAll() { return new ArrayList<>(store.values()); } store에 있는 값을 전체 조회하는 부분에서 new ArrayList<>(); 를 해주었는데이 이유가 반환값에 컬렉션이다 보니 store.values()를 반환하게 되면findAll() 메서드를 호출하는 곳에서 store의 데이터 조작이 가능하기 때문인게 맞을까요??맞다면 findAll() 메서드 외에도 다른 경우에도 리턴값을 줄때 변경이 불가능하도록 new를 통해 새로운 객체를 리턴해주던지 dto와 같은 객체를 통해서 리턴을 해주어 변경에 닫혀있도록 구현해주는 것이 좋은 구현인지 궁금합니다
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
@Transactional, public 제어자 질문입니다.
안녕하세요, 강사님. 해당 강의 관련 질문이 있어 질문드립니다. 1. 해당 강의 마지막 부분에서 'public이 아닌 곳에 @Transactional이 붙어있는 경우 예외가 발생하지 않고 트랜잭션 적용만 무시된다.'를 설명해주셨는데요, 이 말이 '@Transactional을 '비즈니스 시작점(외부 트랜잭션)'에 걸 때 그 메서드의 제어자가 private일 경우 예외가 발생하지 않고 트랜잭션 적용이 무시된다.'를 말씀하시는 것인가요? 즉, 내부 트랜잭션은 제어자가 어떻든 관련이 없다인가요? 아래 질문부터는 1번 질문이 맞다고 가정하고 질문드립니다. 예를 들어, 한 클래스 내에 다음의 3개 메서드가 있고, A 메서드(public, @Transactional 붙음) B, C 메서드(모두 private) A 메서드 내에 B와 C 메서드를 각각 호출하는 로직이 존재하고, C 메서드 내에 B 메서드를 호출하는 로직이 존재한다고 할 경우 2. A메서드가 비즈니스 로직의 시작점이기 때문에 B, C 메서드가 기존의 트랜잭션에 참여하는 형태를 가진다고 봐도 될까요? 3. B와 C 메서드 사이에 호출이 일어나게 되는 경우 이미 논리적으로 하나의 트랜잭션(A, B, C)에 속해있기 때문에 B와 C의 제어자를 private으로 그대로 두어도 괜찮을까요? 4. 호출 관계가 복잡해 함수를 각각의 클래스로 나눈다면, 기존의 B, C 함수(이제는 클래스)를 다룰 때는 @Transactional을 어떻게 적용해야 할까요? 저는 비즈니스 시작점인 A 클래스에 @Transactional을 남기고, B, C 클래스에는 두 클래스 사이에 호출이 일어나기에 @Transactional(REQUIRES_NEW) 옵션을 주는 식으로 작성했는데요, 이미 논리적으로 하나의 트랜잭션으로 묶여있는데 굳이 REQUIRES_NEW 옵션을 주는 건 트랜잭션을 과도하게 설정한 것이 아닌가 생각하게 되어 해당 질문을 남기게 되었습니다.