묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결타입스크립트 입문 - 기초부터 실전까지
ts2345
제가 강의를 따라하면서 코드를 아래처럼 작성했습니다interface PhoneNumberDictionary { [home: string]: { num: number; }; } interface Contact { name: string; address: string; phones: PhoneNumberDictionary; } // api // TODO: 아래 함수의 반환 타입을 지정해보세요. function fetchContacts(): Promise<Contact[]> { // TODO: 아래 변수의 타입을 지정해보세요. const contacts = [ { name: "Tony", address: "Malibu", phones: { home: { num: 11122223333, }, office: { num: 44455556666, }, }, }, { name: "Banner", address: "New York", phones: { home: { num: 77788889999, }, }, }, { name: "마동석", address: "서울시 강남구", phones: { home: { num: 213423452, }, studio: { num: 314882045, }, }, }, ]; return new Promise((resolve) => { setTimeout(() => resolve(contacts), 2000); }); } setTimeout(() => resolve(contacts), 2000); 여기서 contacts에서 에러가 나는데 Argument of type '({ name: string; address: string; phones: { home: { num: number; }; office: { num: number; }; studio?: undefined; }; } | { name: string; address: string; phones: { home: { num: number; }; office?: undefined; studio?: undefined; }; } | { ...; })[]' is not assignable to parameter of type 'Contact[] | PromiseLike<Contact[]>'. Type '({ name: string; address: string; phones: { home: { num: number; }; office: { num: number; }; studio?: undefined; }; } | { name: string; address: string; phones: { home: { num: number; }; office?: undefined; studio?: undefined; }; } | { ...; })[]' is not assignable to type 'Contact[]'. Type '{ name: string; address: string; phones: { home: { num: number; }; office: { num: number; }; studio?: undefined; }; } | { name: string; address: string; phones: { home: { num: number; }; office?: undefined; studio?: undefined; }; } | { ...; }' is not assignable to type 'Contact'. Type '{ name: string; address: string; phones: { home: { num: number; }; office: { num: number; }; studio?: undefined; }; }' is not assignable to type 'Contact'. Types of property 'phones' are incompatible. Type '{ home: { num: number; }; office: { num: number; }; studio?: undefined; }' is not assignable to type 'PhoneNumberDictionary'. Property 'studio' is incompatible with index signature. Type 'undefined' is not assignable to type '{ num: number; }'.ts(2345)라고 뜹니다 제가 잘못 따라한게 있을가요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@GetMappintg("/login") loginForm()의 파라미터로 @ModelAttribute LoginForm을 넣어주는 이유가 loginForm.html에 null값을 넣어주기 위해서인게 맞나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요 로그인 기능 강의를 듣던 중 의문점이 생겨 질문 드립니다.제가 이해하기로는 1.사용자가 GET /login 요청시 "login/loginForm" 뷰 응답 -> loginForm() 메서드 호출 2.사용자가 login/loginFom.html 에서 loginId, password 입력 후 POST /login 요청 -> login() 메서드 호출 이런 순서로 이루어지는 것 같은데 위의 순서 중 1번에서 loginForm()의 파라미터인 @ModleAttribute LoginForm에 들어가는 값은 사용자가 GET /login 호출시 쿼리 파리미터로 넣어준 값이 없으니까 null이 되는 것을 확인했습니다. 이 때 이 ModelAttribute를 받은 이유가 뷰를 렌더링 할 때 null값을 넣어주기 위한 용도로 받았다고 생각하면 되는 것 맞나요??
-
미해결실전! 스프링 데이터 JPA
application.yml에서 format_sql 적용이 안됩니다.
안녕하세요! 강의 수강 중 궁금한 부분이 있어 질문 남깁니다.테스트 코드 실행 시 콘솔 창의 쿼리가 여러 줄로 format된 형태가 아닌 한 줄로 나옵니다.application.yml 에서 hibernate.format_sql: true를 추가했는데도 적용이 안 되는데 이유를 잘 모르겠습니다.
-
해결됨시스템엔지니어가 알려주는 리눅스 실전편 Bash Shell Script
vagrant private key timeout 문제입니다.
커뮤니티 질문글에 동일한 에러인https://www.inflearn.com/questions/544792/cent2-3-timeout-%EB%B0%9C%EC%83%9D이걸 보고 troubleshooting 해봤는데 계속 같은 에러가 발생하네요 환경windows 11virtualbox 7.0vagrant 2.3.4 시도한 방법은cmos 에서 가상환경은 enable 윈도우 기능에서 가상 기능 체크해제 dism.exe /online /Enable-Feature /FeatureName:VirtualMachinePlatform /all /NoRestart 실행 virtualbox cable connection vagrantfile에 추가 및 cpu memory 증설 v.customize ['modifyvm', :id, '--cableconnected1', 'on'] v.customize ["modifyvm", :id, "--uart1", "0x3F8", "4"] v.customize ["modifyvm", :id, "--uartmode1", "file", File::NULL] 윈도우 내부 로컬 환경 방화벽 vagrant로 올려보고 싶은데 왜 안되는지 궁금하네요
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
터미널에 test.mv.db가 home 없어요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]터미널에 test.mv.db가 home 없어요 그래서 찾아보니 document 에있는데 test.mv.db 파일을 home 으로 옮겨야한나요?
-
미해결
저작권관련
인터넷에 있는 코드를 그대로 사용한 경우 저작권 침해 문제 걱정이되어서요
-
미해결남박사의 파이썬으로 실전 웹사이트 만들기
search = request.args.get('search', -1, type=int)
search = request.args.get('search', -1, type=int)에서 -1의 의미를 정확히 모르겠네요. 다시 한번 예를 들어 설명해 주셨으면 감사하겠습니다.
-
미해결Three.js로 시작하는 3D 인터랙티브 웹
threejs의 최적화를 하려면 어떻게 해야할까요?
각기 다른 geometry를 가진 mesh를 매 분마다 많은 양을 생성할때 웹 브라우저에 out of memory가 발생하는 이슈가 발생하고 있습니다. 이러한 경우에 효과적으로 최적화를 하려면 어떻게 해야할까요? 또한 스택오버플로 나 다른곳을 보면 geometry가 아닌 buffergeometry를 사용하는데 둘의 차이가 무엇인가요?
-
해결됨[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
버퍼와 스트림 강의 질문
강의내용이 영상이 아닌, 파일로 되어 있는 것 같은데,다운로드 링크가 보이지 않는 것 같습니다.어디서 다운로드 할 수 있을까요? 아니면 혹시 이전 영상이 3-12 이고 이 강의 다음영상이 3-14로 되어 있던데, 영상이 빠진 거 일까요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
N:M tag 부분 구현 중 findOne 조회 부분 에러
products.service.ts에서 create 부근에 tag를 저장 하기 전 tag를 미리 조회하는 부분을 구현 중인데 findOne에서 {name: tagname} 을 구현하려고 할 때 다음과 같은 에러가 발생합니다. save에서는 에러가 발생하지 않는데 findOne 조회 부분만 에러가 발생하네요관련된 코드 같이 보내드립니다.createProduct.input.tsimport { InputType, Field, Int } from '@nestjs/graphql'; import { Min } from 'class-validator'; import { ProductSaleslocationInput } from 'src/apis/productsSaleslocation/entities/dto/productSaleslocation.input'; @InputType() export class CreateProductInput { @Field(() => String) name: string; @Field(() => String) description: string; @Min(0) @Field(() => Int) price: number; @Field(() => ProductSaleslocationInput) productSaleslocation: ProductSaleslocationInput; @Field(() => String) productCategotyId: string; @Field(() => [String]) productTags: string[]; } products.entity.tsimport { Field, Int, ObjectType } from '@nestjs/graphql'; import { ProductCategory } from 'src/apis/productsCategory/entities/productsCategory.entity'; import { ProductTag } from 'src/apis/productsTags/productTags.entity'; import { User } from 'src/apis/users/users.entity'; import { Column, DeleteDateColumn, Entity, JoinColumn, JoinTable, ManyToMany, ManyToOne, OneToOne, PrimaryGeneratedColumn, } from 'typeorm'; import { ProductSaleslocation } from '../../productsSaleslocation/entities/productsSaleslocation.entity'; @Entity() @ObjectType() export class Product { @PrimaryGeneratedColumn('uuid') @Field(() => String) id: string; @Field(() => String) @Column() name: string; @Field(() => String) @Column() description: string; @Field(() => Int) @Column() price: number; @Field(() => Boolean) @Column({ default: false }) isSoldout: boolean; @DeleteDateColumn() deletedAt: Date; @Field(() => ProductSaleslocation) @JoinColumn() @OneToOne(() => ProductSaleslocation) productSaleslocation: ProductSaleslocation; @Field(() => ProductCategory) @ManyToOne(() => ProductCategory) productCategory: ProductCategory; @Field(() => User) @ManyToOne(() => User) user: User; @JoinTable() @ManyToMany(() => ProductTag, (productTags) => productTags.products) @Field(() => [ProductTag]) productTags: ProductTag[]; } productTags.entity.tsimport { Field, ObjectType } from '@nestjs/graphql'; import { Column, Entity, ManyToMany, PrimaryGeneratedColumn } from 'typeorm'; import { Product } from '../products/entities/products.entity'; @Entity() @ObjectType() export class ProductTag { @Field(() => String) @PrimaryGeneratedColumn('uuid') id: string; @Column() @Field(() => String) name: string; @Field(() => [Product]) @ManyToMany(() => Product, (products) => products.productTags) products: Product[]; } products.service.tsimport { Product } from './entities/products.entity'; import { Injectable, UnprocessableEntityException } from '@nestjs/common'; import { Repository } from 'typeorm'; import { InjectRepository } from '@nestjs/typeorm'; import { ProductSaleslocation } from '../productsSaleslocation/entities/productsSaleslocation.entity'; import { ProductTag } from '../productsTags/productTags.entity'; @Injectable() export class ProductService { constructor( @InjectRepository(Product) private readonly productRepository: Repository<Product>, @InjectRepository(ProductSaleslocation) private readonly productSaleslocationRepository: Repository<ProductSaleslocation>, @InjectRepository(ProductTag) private readonly productTagRepository: Repository<ProductTag>, ) {} async findAll() { return await this.productRepository.find({ relations: ['productSaleslocation', 'productCategory', 'productTags'], }); } async findOne({ productId }) { return await this.productRepository.findOne({ where: { id: productId }, relations: ['productSaleslocation', 'productCategory', 'productTags'], }); } async create({ createProductInput }) { // 1. 상품만 등록하는 경우 // const result = await this.productRepository.save({ // ...createProductInput, // // 하나 하나 직접 나열하는 방식 // // name: createProductInput.name, // // description: createProductInput.description, // // price: createProductInput.price, // }); // 2. 상품과 상품거래 위치 같이 등록 const { productSaleslocation, productCategotyId, productTag, ...product } = createProductInput; const result = await this.productSaleslocationRepository.save({ ...productSaleslocation, }); // productTag // ["#electronics, #computer"] const result2 = []; // [{name: ..., id: ...}] for (let i = 0; i < productTags.length; i++) { const tagName = productTags[i].replace('#', ''); // check the tags that has already registered const checkTag = await this.productTagRepository.findOne({ name: tagName, }); // if the tags has been existed if (checkTag) { result2.push(checkTag); // if the tags hasn't been existed } else { const newTag = await this.productTagRepository.save({ name: tagName }); result2.push(newTag); } } const result3 = await this.productRepository.save({ ...product, productSaleslocation: result, // result 통째로 넣기 vs id만 넣기 productCategory: { id: productCategotyId }, productTags: result2, }); return result3; } async update({ productId, updateProductInput }) { const myProduct = await this.productRepository.findOne({ where: { id: productId }, }); const newProduct = { ...myProduct, id: productId, ...updateProductInput, }; return await this.productRepository.save(newProduct); } async checkSoldOut({ productId }) { const product = await this.productRepository.findOne({ where: { id: productId }, }); if (product.isSoldout) { throw new UnprocessableEntityException('Sold out'); } // if(product.isSoldout) { // throw new HttpException('이미 판매 완료 된 상품입니다.', HttpStatus.UNPROCESSABLE_ENTITY) // } } async delete({ productId }) { // 1. 실제 삭제 // const result = await this.productRepository.delete({ id: productId }); // return result.affected ? true : false // 2. 소프트 삭제(직접 구현) - isDeleted // this.productRepository.update({ id: productId }, { isDeleted: true }); // 3. 소프트 삭제(직접 구현) - deletedAt // this.productRepository.update({ id: productId }, { deletedAt: new Date() }); // 4. 소프트 삭제(TypeORM 제공) - softRemove - id로만 삭제 가능 // this.productRepository.softRemove({ id: productId }); // 4 . 소프트 삭제(TypeORM 제공) - softDelete const result = await this.productRepository.softDelete({ id: productId }); return result.affected ? true : false; } } 내용 확인 부탁드립니다.
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
AWS EC2 우분투 서버
안녕하세요?AWS EC2 우분투 서버를 사용하고 있습니다.Docker를 사용하면 AWS service(aws codeBuild , aws codeDeploy)를 사용하지 않고 CI/CD가 가능한가요? 코드는 react/next 입니다. 감사합니다.
-
미해결[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
register_forward_hook을 활용한 피쳐맵 추출에서 문제가 발생합니다ㅠㅠ
안녕하세요. 현재 코랩환경에서 파이토치 제공 Mask-RCNN을 활용하고 있습니다. 강의에서 알려주신 Hook를 활용하여 중간 레이어의 피쳐맵을 추출하고자 진행하던 과정에서 문제가 발생하여 질문드립니다ㅠㅠ모델은 제가 가진 데이터셋에 맞춰 출력층을 바꾸어준 후에 학습을 완료한 상태입니다. 이후 for문을 통해 모델에 여러 입력 이미지들을 넣어주어 이미지별 중간 레이어의 피쳐맵을 얻으려고 하였으나, 출력결과 하나의 이미지에 대한 피쳐맵만 반복적으로 출력되는 문제가 발생합니다...모델 학습 및 가중치 로드 후 코드는 다음과 같습니다.Hook 함수def get_activation(name): def hook(models, input, output): activation[name] = output return hook입력 이미지별 피쳐맵 저장activation = {} device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") models.to(device) for i in range(1, 5): test_img = Image.open("입력 이미지 루프").convert('RGB') test_img = test_img.resize((800, 800)) test_img = tr.functional.to_tensor(test_img) test_img = test_img.reshape(1, 3, 800, 800) with torch.no_grad(): models.eval() models.backbone.fpn.extra_blocks.register_forward_hook(get_activation("fm{}".format(i))) test_img = test_img.to(device) models(test_img)출력 결과activation["fm1"] 부터 ["fm4"] 까지 동일한 값이 들어가 있음아무리 찾아보고 여러 시도를 해보아도 해결이 되지않아 답답하네요ㅠㅠ추가로 위의 코드를 한번 돌리면 런타임을 다시 시작하지 않는 이상 이후에 코드를 수정하여 hook 함수부터 다시 돌려도 적용이 되지 않는 문제도 발생합니다...
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part3: 자료구조와 알고리즘
1강에서의 List와 자료구조편에서의 List의 차이가 뭘까요?
안녕하세요 1강에서 List를 구현할 때는 head 포인터 하나만 갖고 노드를 연결했는데 자료구조 편에서구현한 리스트는 head와 tail을 갖고있는데 혹시 어떤 차이가 있는걸까요?추가질문list의 중간 삽입/ 삭제도 iterator를 들고있지 않아 순차접근 하는 경우는 시간 복잡도가 O(N)인가요?
-
미해결[백문이불여일타] 데이터 분석을 위한 기초 SQL
연장 가능할까요
이 수업 듣고 중급 들으려고 한 번에 결제했는데 초급은 만료가 되고, 중급과 문제풀이는 11일이 남아서 사실상 전부 수강이 어려운 상태가 되었습니다. 너무 죄송한 말씀이지만 초급 2주, 중급과 문제풀이 (현재 0%입니다ㅠㅠ) 1달 정도 연장 가능할까요?
-
미해결MAYA 3D animation Season 1
2강 잡아당겨도 안 움직여요..
ㄱ강사 분께서 하시는 거 똑같이 다 해도 마우스로 저렇게 잡아당겨도 원이 안 움직여요..이게 안 되니 진행 자체가 안 됩니다..체험판이라 그런건지..빠른 답변 부탁드려요..
-
미해결Atlassian Jira Cloud 입문자를 위한 필수 강의 구성부터 관리까지
Jira 데이터 센터에 대해서
안녕하세요 지금 Jira 관련 강의를 들으면서 5강까지는 잘 따라왔는데 Jira 데이터 센터에서 부터 좀 막힙니다. 혹시 Jira 데이터 센터와 관련된 페이지는 프로젝트란에서 어딜 찾아보면 됩니까?
-
해결됨[코드캠프] 시작은 프리캠프
싸이월드 만들기 1탄 padding margin 질문있습니다.
이게 background이고이게 outer입니다.이게 .background에만 padding을 준거구요.background { width: 1024px; height: 600px; background-image: url("../images/background.png"); padding: 20px 0px 0px 20px; } .outerbox { width: 808px; height: 544px; background-image: url("../images/outerbox.png"); }이게 .outerbox에만 margin을 준거에요..background { width: 1024px; height: 600px; background-image: url("../images/background.png"); } .outerbox { width: 808px; height: 544px; background-image: url("../images/outerbox.png"); margin: 20px 0px 0px 20px; }class="outerbox"가 class="background" 안에 들어가있잖아요? 그럼 .outerbox에 margin을 주면 .background는 여백이 생기면 안되잖아요. .outerbox에만 여백이 생겨야하는거 아니에요? background 위쪽은 그대로이고 outerbox만 여백이 생겨야하는거 아닌가용?이게 웃긴게 margin을 20px 0px 0px 20px줬는데 background의 왼쪽은 그대로이고 위쪽만 내려왔다는거에요.. background의 왼쪽은 여백이 안생김.. +.background { display: flex; width: 1024px; height: 600px; background-image: url("../images/background.png"); } .outerbox { width: 808px; height: 544px; background-image: url("../images/outerbox.png"); margin: 20px 0px 0px 20px; }웃긴게 background쪽에 display: flex 추가하니까 .outerbox에 margin 추가 해도 여백이 제대로 생깁니다 이건 또 뭘까요..
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4659 질문드립니다.
안녕하세요 큰돌님 알고리즘 강의를 보며 많은 도움을 받고있습니다!해당 강의 보면서 조건들을 잘 맞추고 출력형식도 잘 했다고 생각했는데 제출하면 오답이네요ㅠㅜ틀린 내용을 잘 못찾겠어서 질문드립니다!시간되실때 한번 봐주실 수 있으신가요?http://boj.kr/ac9ebe891d7c4734a5f01e78a1e2d13d
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
권한 요청 부탁드립니다.
인프런 아이디 : stomboy2@naver.com인프런 이메일 : stomboy2@naver.com깃헙 아이디 : tyo1012@naver.com깃헙 Username : Five-Sun
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Domain별 패키지 분리에 대한 문의
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요.항상 좋은 강의 감사드립니다.현업에서 업무를 하다보면 package를 도메인별로 분리하고 도메인에 controller, repository, service, entity, dta, dao등 패키지를 구분하고 있습니다.이는 하나의 모든 controller, repository에 담게 되면 유지보수성이 떨어지기 때문인데요.강의에 강사님께서 하나의 패키지에 넣으셔서 질문을 드립니다.MSA구조로 작게 분리한다고 해도 유지보수가 용의하기 위해서는 패키지를 분리하는게 좋다고 생각되는데요.DTA를 controller에 넣는다던지 entity를 모두 하나에 넣고 있어서...현업에서도 이렇게 쓰는게 더 좋은건지,,,아니면 강의에서만 분리하지 않는 것인지 궁금합니다.혹, 강의에서만 분리하지 않는 구조라면sample로 효율적인 패키지 구성을 제공해 주실 수 있나요??