묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
강의 문의
안녕하세요 강사님! 리액트, 타입스크립트 강의 너무 잘 듣고 있습니다. 8월 중에 nextjs 도 나온다니 기대됩니다!혹시 리액트 심화버전도 추후 진행하실 예정이 있나요? Redux 등등.. 강사님버전으로 배우면 이해하기 좋을 것 같아서요 🙂
-
해결됨인터랙티브 웹 개발 제대로 시작하기
전진! 3D 스크롤 21 강의 질문
전진! 3D 스크롤 21 강의에서,스크롤을 내리거나 올릴 때 css를 적용하는 과정에서 css 코드가 잘 이해가 가지 않아서 질문 드립니다..character[data-direction='forward'] { transform: rotateY(180deg); } .character[data-direction='backward'] { transform: rotateY(0deg); } .character[data-direction='left'] { transform: rotateY(-90deg); } .character[data-direction='right'] { transform: rotateY(90deg); }css 선택자에서 [ ]는 속성을 의미하는 걸로 알고있는데,그렇다면 위의 코드는 클래스 이름이 character인 클래스이고, chracter 클래스 중에서 data-direction = 'forword'라는 속성을 가지는 것을 가리킨다고 해석하면 될까요?클래스 자체도 하나의 속성인데 그 안의 또 다른 속성?이 들어간걸로 이해가 되서 질문드립니다ㅠㅠ
-
해결됨웹 애니메이션을 위한 GSAP 가이드 Part.02
섹션 0, 버그와 리팩토링에서 아이콘 클릭시 진행률을 알아올 수 있나요??
안녕하세요 !강의를 듣다가 궁금한점이 생겨 글을 남깁니다. switch (id) { case 'home': console.log('home'); progress = 0; break; case 'mountain': console.log('mountain'); progress = 0.21; break; case 'river': console.log('river'); progress = 0.47; break; case 'company': console.log('company'); progress = 1; break; } gsap.to(route_animmation, { progress: progress, duration: 1 });위의 코드에서, progress: progress 변수로 사용중에다가, progress를 switch 문에서 직접 치수를 넣어주고 있는데, 클릭시 해당 svg path의 진행률을 직접 가져올 수는 없는걸까요 ? 반응형 코드에서 문제를 어떤식으로 해결하시는지 궁금합니다.
-
해결됨웹 프론트엔드를 위한 자바스크립트 첫걸음
extensions 질문
chrome://extensions 위에서 오른쪽 상단의 개발자모드를 켜고 맨위에 "압축해제된 확장된 프로그램을 로드합니다." 클릭해서 개발한 소스가 있는 newtab폴더를 선택하면 오류 : 매니페스트 파일이 없거나 읽을 수 없습니다매니페스트를 로드할 수 없습니다.뜨면서 안되더라구요, 혹시나 외장하드에 파일이 있으면 안되나 싶어서 컴퓨터의 c나 d드라이브에 옮겨서 동일하게 에러메시지가 뜹니다.예전에 강의내용대로 해서 잘 되었었는데 복습하면서 다시 해보니 이렇게 에러가 나서요혹시 뭔 잘못한걸까요? 아님 기능이 없어진건지....ㅋㅋ
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
도커 설치가 잘 되지 않습니다.
섹션 8의 윈도우에서 도커 설치하는 부분을 보면서 따라하고 있는데 잘 되지 않습니다.이런 오류가 계속 떠서 이것저것 해보다가"Windows 기능 켜기/끄기" 검색: 검색 창에 "Windows 기능 켜기/끄기"를 입력하고 선택합니다.Hyper-V 및 Virtual Machine Platform 활성화: 아래 항목들이 체크되어 있는지 확인하고, 체크되어 있지 않다면 체크합니다.이런게 있어서 체크해보니 이젠 관리자 권한으로 실행하는 것 외에는 실행 자체가 되지 않습니다.
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
자바스크립트 객체 수정 순서 문
🚨 아래의 가이드라인을 꼭 읽고 질문을 올려주시기 바랍니다 🚨질문 하시기 전에 꼭 확인해주세요- 질문 전 구글에 먼저 검색해보세요 (답변을 기다리는 시간을 아낄 수 있습니다)- 코드에 오타가 없는지 면밀히 체크해보세요 (Date와 Data를 많이 헷갈리십니다)- 이전에 올린 질문에 달린 답변들에 꼭 반응해주세요 (질문에 대한 답변만 받으시고 쌩 가시면 속상해요 😢)질문 하실때 꼭 확인하세요- 제목만 보고도 무슨 문제가 있는지 대충 알 수 있도록 자세한 제목을 정해주세요 (단순 단어 X)- 질문의 배경정보를 제공해주세요 (이 문제가 언제 어떻게 발생했고 어디까지 시도해보셨는지)- 문제를 재현하도록 코드샌드박스나 깃허브 링크로 전달해주세요 (프로젝트 코드에서 문제가 발생할 경우)- 답변이 달렸다면 꼭 확인하고 반응을 남겨주세요- 강의의 몇 분 몇 초 관련 질문인지 알려주세요!- 서로 예의를 지키며 존중하는 문화를 만들어가요. - 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.15강 강의 중 문의드립니다.// 1. 객체 생성 let obj1 = new Object(); // 객체 생성자 let obj = {}; let person = { name: "이정환", age: 27, hobby: "테니스", extra: {}, 10: 20, "Like cat": true, }; // 3. 객체 프로퍼티를 다루는 방법 // 3.1 특정 프로퍼티에 접근 (점 표기법, 괄호 표기법) let name = person.name; // console.log(name); let age = person["age"]; // console.log(age); let property = "hobby"; let hobby = person[property]; // console.log(hobby); // 3.1 새로운 프로퍼티를 추가하는 방법 person.job = "fe developer"; person["favoriteFood"] = "떡볶이"; console.log(person); // 3.3. 프로퍼티를 수정하는 방법 person.job = "educator"; person["favoriteFood"] = "초콜릿"; // 3.4 프로퍼티를 삭제하는 방법 delete person.job; delete person["favoriteFood"]; 이렇게 동작했을 때,console.log 찍는 시점에서는 프로퍼티를 삭제를 안했는데삭제가 되어 있어서, 실행 순서가 어떻게 되는지 문의드립니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
nestjs graphql Redis 최신버전 연동 방법입니다.
혹시 저처럼 초보분들을 위해서 남깁니다.저 혼자 삽질할께요 여러분들은 빠르게 세팅하고 빠르게 강의를 들어요✨혹시나 이 글을 강의 처럼 install 다해주고나서 발견하셨다면간편하게 패키지.json에서 관련된거 다 지워주고 yarn.lock를 지워주시고 yarn install 입력해주세요yarn instlal @nestjs/cache-manager cache-manager-redis-store@2.0.0 yarn install -D @types/cache-manager @types/cache-manager-redis-storecache-manager-redis-store만큼은 2.0.0으로 설치해주셔야 합니다. 그래야 redisStore에대한 타입에러가 안납니다.출처: https://4sii.tistory.com/689이 아래부터는 그냥 제 코드 복붙입니다.아래 코드는 위의 출처 사이트를 가보시면 다 적혀있으니 제 코드를 복붙하셔도되고 출처 사이트가셔서 코드 복붙하셔도됩니다.app.module.tsimport { ApolloDriver, ApolloDriverConfig } from '@nestjs/apollo'; import { Module } from '@nestjs/common'; import { CacheModule } from '@nestjs/cache-manager'; import { ConfigModule } from '@nestjs/config'; import { GraphQLModule } from '@nestjs/graphql'; import { TypeOrmModule } from '@nestjs/typeorm'; import { AuthModule } from './apis/auth/auth.module'; import { BoardsModule } from './apis/boards/boards.module'; import { FilesModule } from './apis/files/files.module'; import { PaymentsModule } from './apis/payments/payments.module'; import { PointsTransactionsModule } from './apis/pointsTransactions/pointsTransactions.module'; import { ProductsModule } from './apis/products/products.module'; import { ProductsCategoriesModule } from './apis/productsCategories/productsCategories.module'; import { UsersModule } from './apis/users/users.module'; import { CacheConfigService } from './cacheConfig.service'; @Module({ imports: [ AuthModule, BoardsModule, // FilesModule, PaymentsModule, PointsTransactionsModule, ProductsModule, ProductsCategoriesModule, UsersModule, ConfigModule.forRoot(), // env를 사용할 수 있게 해줌 GraphQLModule.forRoot<ApolloDriverConfig>({ driver: ApolloDriver, autoSchemaFile: 'src/commons/graphql/schema.gql', // context 부분이있어야~ resolver나 다른데에서 // @Context() context:IContext, context.res 등등으로 사용가능함 // req는 기본적으로 들어오지만, res는 이걸 작성해야 들어옴 context: ({ req, res }) => ({ req, res }), }), // https://docs.nestjs.com/techniques/database 참고 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, }), CacheModule.registerAsync({ isGlobal: true, useClass: CacheConfigService }), ], }) export class AppModule {} cache-config.service.tsimport { CacheModuleOptions, CacheOptionsFactory } from '@nestjs/cache-manager'; import { Injectable } from '@nestjs/common'; import redisStore from 'cache-manager-redis-store'; @Injectable() export class CacheConfigService implements CacheOptionsFactory { createCacheOptions(): CacheModuleOptions { const config: CacheModuleOptions = { store: redisStore, host: 'localhost', port: 6379, ttl: 60, }; return config; } }
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
ide 타입추론 기능 사용할 수 없을까요??
template lang=""> <ItemList></ItemList> {{ users[0] }} </template> <script lang="ts"> import ItemList from '../components/lists/ItemList.vue' import {fetchNewsList, User} from '../api/news' export default { data() { return { users: [] as User[] } },vue3에 타입스크립트 적용해서 하는 중입니다.위 코드처럼 interface 만들어서 타입을 사용해보고 있는데{{ users[0] }}에 .id .title 등 ide에서 제공되는 타입추론이 안됩니다. vue는 방법이 없을까요??
-
미해결[코드팩토리] [입문] 9시간만에 끝내는 코드팩토리의 Javascript 무료 풀코스
단축 평가 (short circuit evaluation) 패턴 관련 질문있습니다.
안녕하세요, 알찬 수업 무료로 열어주셔서 감사한 마음으로 배우고 있습니다.이번 강의에서 단축 평가 패턴에 대해 알려주셨습니다.제가 기존에 이해하고 있던 단축 평가 패턴은, false && ... 은 항상 false 이므로 ... 에 대한 확인은 하지 않는다true || ... 은 항상 true 이므로 ... 에 대한 확인은 하지 않는다확인하지 않음으로서 조금의 성능 향상을 얻는다.정도 였습니다.강의 내용에는 console.log(true && '아이브') // 아이브라는 내용이 있습니다.관련하여 이해가 되지 않아 정보를 찾다보니, 이러한 패턴을 이용해서 값이 들어 있는 변수 혹은 값이 들어있지 않은 변수를 찾아내는 데 사용하더라고요.(https://wondev.tistory.com/17)그럼에도 '왜'의 굴레에서 벗어나지 못하고 있습니다..ㅎ..단축 평가 패턴과 관련하여 조금 더 깊은 설명을 들어볼 수 있을까요?혹은 제가 참고하면 좋을 자료를 공유받을 수 있을까요?감사합니다.
-
미해결[웹 개발 풀스택 코스] 순수 자바스크립트 기초에서 실무까지
CRUD 중 like 검색이 안되는거 같아요.
강의 듣는 시점인 현재http://localhost:3000/customers?name_like=${name}위와같은 like 구문은 이름입력& 조회 버튼 클릭시 에러는 안나지만 검색은 안되네요 ^^;;->http://localhost:3000/customers?name=${name}이런식으로 like 검색을 빼면 이름을 대소문자 정확히 입력하면 검색이 됩니다.관련하여 검색해 봤지만 like 검색 관련해선 안나오는데 like 검색을 어떻게 처리 해야 하나요?
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
컴포넌트 링크는 vue peek 익스텐션 설치가 필수인가요??
vue peek 설치 없이는 컴포넌트 위에 컨트롤 마우스로 올려놔도 링크 생성이 안되네요..
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
@Injectable 관련 질문
안녕하세요의존성 주입을 하기 위해 @Injectable 하는걸로 이해했습니다.BearerTokenGuard 을 만들때 @Injectable 을 선언 하지 않는 이유는 BearerTokenGuard은 직접 사용하지 않고 RefreshTokenGuard, AccessTokenGuard 에서 상속을 받아 상속을 받는곳에서 @Injectable 을 하고 super로 실행시키는 거여서 그런건가요??
-
미해결Vue 3 시작하기
volar(vue language features) 검색 안됨
volar 와 vue language features 로 검색해봤지만, 영상에 나오는 플러그인은 검색이 안됩니다. 다른걸 설치해야할까요?
-
해결됨실무에 바로 적용하는 프런트엔드 테스트 - 1부. 테스트 기초: 단위・통합 테스트
TestPayment에 쿠폰 정보를 prop으로 전달하는 이유
안녕하세요. Payment테스트 코드 작성 부분에서 몇가지 궁금한점이 생겨 질문 드립니다. 1. 실제 Payment 컴포넌트에서는 useCouponList훅으로부터 selectedCoupon데이터를 받아와서 사용하는데 테스트 코드에서는 쿠폰 정보를 prop으로 전달하는 이유가 무엇인가요?2. 실제 구현 동작을 보면 ShippingInformationForm에서 쿠폰을 선택하면 Payment 쿠폰란에 곧바로 반영되는데 이런 부분까지는 통합테스트에서 검증하지 않아도 되나요?
-
해결됨실무에 바로 적용하는 프런트엔드 테스트 - 1부. 테스트 기초: 단위・통합 테스트
NavigationBar 테스트 속도가 너무 느린 문제
안녕하세요.지금 챕터5 네비게이션바 테스트 코드 작성 부분을 보고 있는데 테스트 속도가 너무 느린 문제가 발생합니다ㅜ 테스트 항목 하나를 테스트 할때마다 21초씩 걸립니다... 생각보니 이 전 챕터에서도 테스트 시간이 조금 오래 걸리긴 했던거 같긴 해요. 이건 제 컴퓨터 문제일까요, 아니면 속도 저하의 원인을 파악하는 방법이라도 있을지 조언을 구해 봅니다ㅠㅠ
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
섹션11 [UserModel 생성하기] postgresql Explorer 에서 UserModel 생성문제
import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm'; import { RolesEnum } from '../const/roles.const'; @Entity() export class UserModel { @PrimaryGeneratedColumn() id: number; @Column({ length: 20, unique: true, }) nickname: string; @Column({ unique: true, }) email: string; @Column() password: string; @Column({ enum: Object.values(RolesEnum), default: RolesEnum.USER, }) role: RolesEnum; }
-
미해결인터랙티브 웹 개발 제대로 시작하기
eventlistener 질문
이벤트 강의를 듣고 나서 addEventListener를 이용하여 여러 장의 사진이 있으면 슬라이더처럼 하나씩 넘겨서 볼 수 있는 이벤트를 만들 수 있을 것 같아 혼자 코드를 직접 짜봤는데요,body 부분은 아래처럼 작성하고, <body> <div class="container"> <div class="slider" id="slider-01"></div> <div class="slider" id="slider-02"></div> <div class="slider" id="slider-03"></div> </div> </body>css는 아래처럼 작성했고,.container { position: relative; width: 660px; height: 440px; overflow: hidden; } .slider { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-size: contain; background-repeat: no-repeat; transform: translateX(100%); } #slider-01 { background-image: url(./images/cat/cat-01.png); z-index: 3; } #slider-02 { background-image: url(./images/cat/cat-02.webp); z-index: 2; } #slider-03 { background-image: url(./images/cat/cat-03.webp); z-index: 1; } .sliderMove { transform: translateX(0%); transition: 1s; }js코드를 아래와 같이 작성했습니다.<script> window.addEventListener("load", function sliderHandler() { const sliderGroup = document.querySelectorAll(".slider"); let currentSlider; function activate(elem) { elem.classList.add("sliderMove"); currentSlider = elem; } function inactivate(elem) { elem.classList.remove("sliderMove"); } for (i = 0; i < sliderGroup.length; i++) { if (currentSlider) { inactivate(currentSlider); } activate(sliderGroup[i]); } }); </script>후에 실행을 해보니 사진이 슬라이더처럼 작동이 안돼서요.. 작동이 안되는 이유와 어느 부분을 수정해야 하는지 알려주시면 감사하겠습니다!혹 수업 내용과는 조금 벗어난 질문을 한 거라면 정말 죄송합니다ㅜㅜ..
-
미해결실무에 바로 적용하는 프런트엔드 테스트 - 1부. 테스트 기초: 단위・통합 테스트
안녕하세요, 단위 테스트 대상 관련해서 질문있습니다.
web api인 IntersectionObserver을 활용한 훅이 있는데요, 훅은 독립적으로 동작되기 때문에 단위 테스트 대상이라고 말씀하셨는데, 궁금한점은 web api를 활용한 훅은 단위테스트 대상일까요?테스트 환경이 다르고 web api는 이미 검증된 api이기 때문에 단위테스트 대상에서 제외 했거든요만약 단위 테스트 대상이라면 web api를 모킹해서 훅을 통해 반환한 값들을 확인 하면될까요?단위테스트 대상이 아니라면 통합테스트에서 해당 훅을 제대로 호출해서 사용하는지만 확인하면 될까요?
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
감정일기장에서 일기추가와 정렬기능이 되지않습니다.
https://github.com/heeyoung123/OneBite안녕하세요 감정일기장 부분에서 문제가 2가지 생겨서 질문 남깁니다. 일기 작성 후 리스트에 렌더링이 되지않습니다.임시일기데이터에서 정렬을 최신순,오래된순을 바꿔도 적용이 안됩니다.무엇이 문제일까요..
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
반복문 사용 (간단..?)
const solve = (a,b) => { let left = 0, right = 0 const n = a.length + b.length; const answer = []; for (let i = 0; i < n; i++) { if (a[left] < b[right]) { answer.push(a[left]); left ++ } else { answer.push(b[right]) right ++ } } console.log(answer) } const a = [1,3,5]; const b = [2,3,6,7,9] console.log(solve(a,b));반례가 있을까요?