inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

강의를 들으면서 궁금한 점

미해결

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

Spring(Java)을 약 1~2년 정도 공부하다가, 최근 입사 후 NestJS를 새롭게 배우고 있습니다. 공부하기 위한 강의를 듣던 중 문득 궁금증이 생겨 이렇게 질문을 남깁니다. NestJS를 사용하는 이유가 무엇일까요? 제가 지금까지 배워온 관점에서 보면, Spring은 생태계가 훨씬 풍부하고 레퍼런스도 많으며, 엔터프라이즈 환경에서 안정성이 매우 높다고 느껴졌습니다. 반면 NestJS는 비동기 I/O 처리에 강점이 있어 성능적으로 빠르다는 인상을 받았지만, 단순히 그 이유만으로 NestJS를 선택해야 할까 하는 의문이 들었습니다. 물론 기술 선택에는 여러 요소가 있겠지만, 실무적으로나 기술적으로 Spring 대신 NestJS를 선택하는 명확한 이유가 무엇인지 궁금합니다. 단순 궁금증이었습니다...!

  • javascript
  • typescript
  • rest-api
  • nestjs
  • backend
JeonTak 댓글 2 좋아요 0 조회수 138

next와 react query 버전 업데이트 관련 질문

미해결

[풀스택 완성] Supabase로 웹사이트 3개 클론하기 (Next.js 14)

next와 react query 버전이 업데이트 되면서 서버 액션에 폼데이터를 전달하는 것이 불가능해진것 같은데 어떤식으로 수정하면 좋을까요?

  • firebase
  • next.js
  • tailwindcss
  • react-query
  • supabase
둘기 댓글 1 좋아요 0 조회수 95

함수형 프로그래밍 심화 강의 자료 추천

미해결

함수형 프로그래밍과 JavaScript ES6+

좋은 강의 덕분에 함수형 프로그래밍에 더 관심을 가지게 됐습니다. 😊 함수형 프로그래밍을 더 깊에 배우고 싶은데 추천해주실만한 책이나 강의가 있을까요?

  • javascript
  • 함수형-프로그래밍
Grand General 댓글 2 좋아요 0 조회수 116

undo 구현

미해결

TS/JS 디자인 패턴 with Canvas: 제로초에게 제대로 배우기

안녕하세요 좋은 강의 잘 듣고 있습니다 undo 기능을 따라 구현하던 중 이슈가 있어 질문 드립니다 pen mode로 그린 뒤 eraser mode에서 일부 지움 -> undo 실행 -> 화면이 모두 지워집니다 원인은 eraser mode에서 mousedown 시 ctx.globalCompositeOperation = 'destination-out' 로 바뀐 상태가 유지된 채 restore() 내부에서 drawImage() 가 실행되기 때문인 것 같은데요, 제로초님이라면 eraser mode 종료 시점 ( mouseup )에서 source-over 로 되돌리는 방식이랑 restore 에서 source-over 로 바꾼 뒤 drawImage() 하는 것 또는 제 3의 장소?? 어떤 곳에 작업하실지 여쭙고 싶습니다

  • javascript
  • typescript
  • 객체지향
  • 디자인-패턴
  • canvas
padosum 댓글 1 좋아요 0 조회수 82

학습자료는 따로 공유가 안되는건가요?

해결됨

프론트엔드 마스터클래스

그 전까지는 크게 불편함이 없었는데 이번 장에 위에 설명이 건너뛰기가 돼서 놓치게 되네요. 다양한 학습자료 제공에 miro형식 파일이라고 강의 소개에 적혀있긴한데, 따로 첨부파일이나 링크는 등록이 안돼있는것 같아서요.

  • javascript
  • react
  • 함수형-프로그래밍
  • 객체지향
  • next.js
임영민 댓글 2 좋아요 0 조회수 237

알고리즘 학습법 관련해서 질문드립니다.

미해결

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

안녕하세요 코딩테스트를 공부하고 있는 학생입니다. 코딩테스트를 공부할때 모르는 문제를 마주하면 AI를 통해서 알고리즘이나 순서에 관해 힌트를 얻는 편인데, 어떤 방식으로 공부해나가야 하는지 추천하시는 방법이 있는지 궁금합니다

  • javascript
  • 코딩-테스트
왕감자 댓글 1 좋아요 0 조회수 116

query-string과 url파라미터 이름이 같은 경우는 어떻게 되나요?

미해결

한 입 크기로 잘라먹는 Next.js

안녕하세요 예를 들어서 book 디렉토리 밑에 [id.tsx] 을 만들고 /book/10?id=test 이런 형태로 넘긴다면 router.query의 값은 어떤 형태로 저장이 되나요?

  • react
  • typescript
  • next.js
  • 카카오공채-개발
qazwsxqaz 댓글 3 좋아요 0 조회수 134

번들러 이해 및 학습 방향에 대한 질문입니다.

해결됨

프론트엔드 빌드 시스템 완벽 가이드 - Part.1: 모듈 시스템

안녕하세요, 강의 잘 듣고 있습니다! 최근 개인 프로젝트로 래핑 라이브러리를 만들고 있고 번들러로 Rolldown을 사용하고 있습니다. 강의에서 언급된 Rollup과 구조가 유사하고 기본 개념은 거의 동일하다고 알고 있습니다. Rolldown을 사용하고 있는 상황에서 Webpack이나 Rollup의 구조를 먼저 이해하는 것이 학습에 도움이 될까요? 학습 우선순위나 접근 방식을 어떻게 잡는게 좋을지 궁금합니다.

  • javascript
  • node.js
  • 웹팩
  • vite
  • esm
leeebug 댓글 2 좋아요 0 조회수 113

Expo 강의 질문 (preview build?)

미해결

React Native with Expo: 제로초에게 제대로 배우기

혹시 ios나 android 네이티브 빌드해서 연동하는 방법도 해당 강의에서 진행하나요? 현재 25강을 듣고 있긴 한데... 들으면 들을수록 네이티브쪽도 건들어야하는 것 같아서 질문드립니다! 혹시나 해당 강의가 포함되어있으면 몇 강인지 말씀주실 수 있으신가요? 또... 스위프트, 코틀린 말고 자바나 오브젝티브씨도 같이 알아야하나요?

  • react
  • react-native
  • 하이브리드-앱
  • typescript
  • expo
0S 댓글 2 좋아요 0 조회수 80

리액트 개발자 도구 현업 사용 빈도

미해결

한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

안녕하세요, 현재 Vue 2.0을 사용하고 있으며, React로 이직을 하고자 해당 강사님의 강의를 수강하고있습니다. 혹시 현업에서도 해당 도구를 많이 사용하는지 빈도가 궁금합니다. Vue를 사용하면서는 그러지아니하다보니 이것을 알고있는게 좋은지 파악이 안된다보니 쌩뚱한 질문을 드려 죄송합니다.

  • javascript
  • react
  • node.js
  • 카카오공채-개발
임스헝 댓글 2 좋아요 0 조회수 86

사진 촬영 후 갤러리 저장 시 권한 문제

미해결

React Native with Expo: 제로초에게 제대로 배우기

안녕하세요, 제로초님! 강의 잘 듣고 있습니다. 다름이 아니라 ImagePicker 로 카메라 사진 촬영 후 MediaLibrary 를 사용해서 갤러리에 저장할 때, 다음과 같은 에러가 발생합니다. 확인해보니 AUDIO 권한이 선언되지 않았다고 하는데, 아래와 같이 app.json 의 plugin 에 권한을 추가해도 동일한 에러가 발생합니다. { "expo": { // ... "plugins": [ // ... [ "expo-media-library", { "photosPermission": "Allow $(PRODUCT_NAME) to access your photos.", "savePhotosPermission": "Allow $(PRODUCT_NAME) to save photos.", "isAccessMediaLocationEnabled": true, "granularPermissions": ["audio", "photo"] } ] ], // ... } } 제로초님이 올려주신 코드를 그대로 복사 & 붙여넣기 해봐도 같은 문제가 발생하는데, 혹시 제가 놓친 부분이 있을까요...? 강의에서 다룬 부분의 코드와 package.json 첨부하겠습니다. import { FontAwesome, Ionicons } from '@expo/vector-icons'; import * as ImagePicker from 'expo-image-picker'; import * as Location from 'expo-location'; import * as MediaLibrary from 'expo-media-library'; import { useRouter } from 'expo-router'; import React, { useState } from 'react'; import { Alert, FlatList, Image, Linking, Pressable, StyleSheet, Text, TextInput, TouchableOpacity, View, } from 'react-native'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; // ... export default function Modal() { // ... const canAddThread = (threads.at(-1)?.text.trim().length ?? 0) > 0 || (threads.at(-1)?.imageUris.length ?? 0) > 0; const canPost = threads.every( thread => thread.text.trim().length > 0 || thread.imageUris.length > 0, ); const removeThread = (id: string) => { setThreads(prevThreads => prevThreads.filter(thread => thread.id !== id), ); }; const pickImage = async (id: string) => { let { status } = await ImagePicker.requestMediaLibraryPermissionsAsync(); if (status !== 'granted') { Alert.alert( 'Permission not granted', 'Please grant camera roll permission to use this feature', [ { text: 'Open settings', onPress: () => { Linking.openSettings(); }, }, { text: 'Cancel', }, ], ); return; } let result = await ImagePicker.launchImageLibraryAsync({ mediaTypes: ['images', 'livePhotos', 'videos'], allowsMultipleSelection: true, selectionLimit: 5, }); console.log('image result:', result); if (result.canceled) return; setThreads(prevThreads => prevThreads.map(thread => thread.id === id ? { ...thread, imageUris: thread.imageUris.concat( result.assets?.map(asset => asset.uri) ?? [], ), } : thread, ), ); }; const takePhoto = async (id: string) => { let { status } = await ImagePicker.requestCameraPermissionsAsync(); if (status !== 'granted') { Alert.alert( 'Permission not granted', 'Please grant camera permission to use this feature', [ { text: 'Open settings', onPress: () => { Linking.openSettings(); }, }, { text: 'Cancel', }, ], ); return; } let result = await ImagePicker.launchCameraAsync({ mediaTypes: ['images', 'livePhotos', 'videos'], allowsMultipleSelection: true, selectionLimit: 5, }); console.log('camera result:', result); // MediaLibrary 권한 요청 및 사진 저장 status = (await MediaLibrary.requestPermissionsAsync()).status; if (status === 'granted' && result.assets?.[0].uri) { await MediaLibrary.saveToLibraryAsync(result.assets[0].uri); } if (result.canceled) return; setThreads(prevThreads => prevThreads.map(thread => thread.id === id ? { ...thread, imageUris: thread.imageUris.concat( result.assets?.map(asset => asset.uri) ?? [], ), } : thread, ), ); }; const removeImageFromThread = (id: string, uriToRemove: string) => { setThreads(prevThreads => prevThreads.map(thread => thread.id === id ? { ...thread, imageUris: thread.imageUris.filter( uri => uri !== uriToRemove, ), } : thread, ), ); }; // ... } { "name": "expo-threads-clone", "main": "expo-router/entry", "version": "1.0.0", "scripts": { "start": "expo start", "reset-project": "node ./scripts/reset-project.js", "android": "expo start --android", "ios": "expo start --ios", "web": "expo start --web", "lint": "expo lint" }, "dependencies": { "@expo/vector-icons": "^15.0.2", "@react-navigation/bottom-tabs": "^7.4.0", "@react-navigation/elements": "^2.6.3", "@react-navigation/native": "^7.1.8", "expo": "~54.0.12", "expo-blur": "~15.0.7", "expo-constants": "~18.0.9", "expo-dev-client": "~6.0.13", "expo-font": "~14.0.8", "expo-haptics": "~15.0.7", "expo-image": "~3.0.8", "expo-image-picker": "~17.0.8", "expo-linking": "~8.0.8", "expo-location": "~19.0.7", "expo-media-library": "~18.2.0", "expo-router": "~6.0.10", "expo-splash-screen": "~31.0.10", "expo-status-bar": "~3.0.8", "expo-symbols": "~1.0.7", "expo-system-ui": "~6.0.7", "expo-web-browser": "~15.0.8", "react": "19.1.0", "react-dom": "19.1.0", "react-native": "0.81.4", "react-native-gesture-handler": "~2.28.0", "react-native-reanimated": "~4.1.1", "react-native-safe-area-context": "~5.6.0", "react-native-screens": "~4.16.0", "react-native-web": "~0.21.0", "react-native-worklets": "0.5.1" }, "devDependencies": { "@types/react": "~19.1.0", "typescript": "~5.9.2", "eslint": "^9.25.0", "eslint-config-expo": "~10.0.0" }, "private": true }

  • react
  • react-native
  • 하이브리드-앱
  • typescript
  • expo
Sckroll 댓글 1 좋아요 0 조회수 124

cityList 렌더가 안되는 문제

해결됨

한 번에 끝내는 자바스크립트: 바닐라 자바스크립트로 SPA 개발까지

강의 영상대로 코드를 작성하고, localhost:3000을 열어보니 다음과 같은 오류가 계속 뜨네요 ㅜㅠㅠ SyntaxError: Unexpected identifier 'App'. import call expects one or two arguments. 다음은 server.js 입니다 const express = require("express"); const path = require("path"); const app = express(); const PORT = 3000; //현재 탐색기에 위치한 폴더들에 서버가 접근할 수 있도록 하는 코드 //join 안에 경로 작성 app.use(express.static(path.join(__dirname, ".."))); //어떤 경로의 요청이 오던지 항상 동일한 index.html 파일을 반환할 수 있도록 코드 작성 app.get("/*splat", (req, res) => { res.sendFile(path.join(__dirname, "..", "index.html")); }); //우리가 설정한 포트번호에서 서버가 항상 요청을 듣고 있을 수 있도록 하는 코드. app.listen(PORT, () => { console.log("START SERVER"); }); 다음은 index.js 입니다 import App from "./App.js"; const $app = document.getElementById("app"); new App($app); 무엇이 문제일까요? import 경로를 계속 수정해봐도 같은 에러가 뜹니다 ㅠㅠ

  • javascript
  • rest-api
  • spa
  • dom
댓글 2 좋아요 0 조회수 80

강의에 언급된 영상 질문

미해결

Next.js 까보기: "쓸 줄 아는 개발자"에서 "알고 쓰는 개발자"로

안녕하세요! 좋은 강의 만들어주셔서 감사합니다 🙂 수업을 순서대로 보고 있는데, 지난 시간에 살펴봤다는 에러 정의가 담겨 있는 영상이 무엇인지 궁금합니다..! 커리큘럼 상으로는 이전 영상이 라우팅 관련된 것이라서 에러 관련 내용이 없었거든요.

  • react
  • typescript
  • next.js
Lofo 댓글 2 좋아요 0 조회수 91

차후에 추가 업데이트 같은 것이 있을까요?

해결됨

The 10x AI-Native Developer: 회사에서 AI로 압도적 성과를 내는 법

강의 잘 보고 있습니다. 추후에 클로드코드 외에 Codex 같은 새로운 것들에 대한 내용이 추가 업데이트 될 예정이 있을까요?

  • spring-boot
  • next.js
  • 인공지능(ai)
  • ai-활용-(ax)
  • claude
테이크 댓글 2 좋아요 0 조회수 147

추가 강의 주제 문의드립니다!

미해결

한 입 크기로 잘라먹는 Next.js

안녕하세요 정환님! 강의 정말 잘 듣고 있습니다. 설명이 이해하기 쉽게 정리되어 있어 큰 도움이 되었습니다. 혹시 앞으로 Next.js를 활용한 실무 프로젝트나 자바스크립트 심화 개념을 다루는 강의도 제작하실 계획이 있으실까요?

  • react
  • typescript
  • next.js
sujin kim 댓글 2 좋아요 0 조회수 52

실무 적용 관련해서 질문이 있습니다!

미해결

실무에 바로 적용하는 스토리북과 UI 테스트

강의를 듣고 실무에 어떻게 적용해볼수 있을까 생각하다보니 궁금한 점들이 있어서 질문 남깁니다! 규모가 큰 기업들에서는 Storybook을 어떤 구조로 관리하고 있나요? 소규모 팀에서는 "프로젝트 내부 세팅 후 나중에 분리" vs "처음부터 모노레포" 중 뭐가 더 현실적일까요? (초기 비용 vs 장기 유지보수 고려)

  • react
  • typescript
  • tailwindcss
  • storybook
  • ui-testing
dydgus0421 댓글 2 좋아요 0 조회수 101

tailwindcss 와 ai tool

미해결

TailwindCSS 완벽 마스터: 포트폴리오부터 어드민까지!

ai tool(cursor, claude code ...) 에서 tawilwindcss 를 다룰 때, 팁이나 주의해야 할 점에 대해서 공유해주셔도 좋을것 같다는 생각이 들었습니다. 🙂

  • HTML/CSS
  • javascript
  • 반응형-웹
  • tailwindcss
Jiho Bak 댓글 1 좋아요 0 조회수 104

sitemap 에 Pormise가 필요한 이유

미해결

손에 익는 Next.js - 블로그 만들기

5:53 부분에서 sitemap 에서 Promise가 필요하다 하셨는데 왜 필요한지 궁금합니다.

  • react
  • 블로그
  • next.js
gmldnjs0402 댓글 2 좋아요 0 조회수 95

virtual dom과 관련된 인식 피드백

미해결

시나브로 자바스크립트

안녕하세요. 강의 내용이 좋아서 재밌게 잘 보고 있습니다. 피상적으로 virtual dom을 접했을때는 virtual dom과 dom을 비교하는 글들위주로 보다보니 dom은 전체를 렌더링해서 느리고 virtual dom은 일부만 조작해서 성능이 향상된다는 인식이 있었는데요. 강의를 듣다보니 virtual dom의 기능이 이런 방향과 다른결이라고 느꼈습니다. 강의에서 이해한 내용과 찾아본 지식을 종합해서 virtual dom에 대한 나름대로의 정리를 해보았는데요. 제대로 인식한 것이 맞는지 피드백이 가능할까요? dom의 렌더링과 virtual dom의 렌더링은 서로 다른 시점이고 다른 책임을 가지고 있다. virtual dom은 dom렌더링을 낚아채서 빠르게 최적화하는게 아니고 dom렌더링은 브라우저가 항상 진행하는것이다. virtual dom은 빠른호출이 아니라 개발편의성 관점으로 보아야한다. 전체 트리에서 변경된부분을 찾기 때문에 하드코딩된 것과 비교해 호출속도에 있어서 오히려 오버헤드가 있을수있다. 기존의 상태가 변경될때, 필요한 요소를 일일히 찾아서 innerHTML로 업데이트하는 과정을 virtual dom을 통해 추상화하여 제공하는것이다. 필요한부분만 업데이트하는것이 중요한것은 17.1 innerHTML and its inefficiency에서 말씀하신대로 상태유실가능성 방지를 위한것이다.

  • javascript
  • vanilla-js
  • virtual-dom
꼬꼬록 댓글 1 좋아요 0 조회수 87

[프론트엔드 문서화 관련 질문]

미해결

TS/JS 디자인 패턴 with Canvas: 제로초에게 제대로 배우기

안녕하세요, 제로초님. 프론트엔드 문서화 관련하여 질문을 드릴 게 있습니다. 저희 회사에서 단기간에 규모가 큰 프로젝트를 진행하다보니 AI의 도움을 빌려 만들기는 만들었는데 문서화가 제대로 되지 않은 상태입니다. 최근 한 명의 백엔드 개발자가 프론트엔드도 함께 개발을 하게 되어 문서화의 필요성을 느끼고 있는데, 문서화에 대한 경험이 없어 제로초님께 여쭤봅니다. 현재 폴더 구조는 FSD를 채택하여 개발 중입니다. 구상중인 것은 Slice 단마다 문서를 만드려고 하는데, 해당 Slice에 포함된 파일의 사용 방식(API input값, output 값 등)에 대해 작성하고, store(zustand)에 저장된 값을 적고, ui에서 필요한 정보값들에 대해서도 적어보려고 합니다. 이렇게 모든 폴더에 정리하게 된다면 못해도 50개가 넘는 문서가 만들어지게 될텐데, 괜찮은 방법인지 확신하지 못하겠네요.(현재 회사에 있는 개발자분들은 딱히 관심이 없어보이십니다ㅠ) 제로초님이라면 해당 문서에 어떤 내용을 담으실지 궁금합니다. 그리고 프로젝트 전체를 소개하는 문서에는 Tech Stack, 프로젝트 구조 이외에 어떤 항목을 넣는 것이 좋을지도 궁금합니다. 이 수업에서 배운 디자인패턴에 대해서도 작성하는 것이 좋을까요?

  • javascript
  • typescript
  • 객체지향
  • 디자인-패턴
  • canvas
dusehd1 댓글 1 좋아요 0 조회수 100

인기 태그

인프런 TOP Writers

주간 인기글