inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

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

그룹별 개수 세기 질문

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

groupby() 로 단순히 “그룹마다 몇 개씩 있는지”만 보고 싶을 때는 count() 말고 size() 도 있던데, 두 함수의 차이가 뭔가요?

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
민재 댓글 2 좋아요 0 조회수 75

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

미해결

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

교재 연습문제

미해결

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

선생님, 교재 작업형1 연습문제를 풀어보려고 하는데 연습문제 파일은 어디에 있나요?

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
audreyjy 댓글 2 좋아요 0 조회수 75

작업형 1,문제 7 반복문 질문드립니다.

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

for i in range(0, 5): list_box = [] for k in range(0, 200): ran_num = random.randint(1,200) list_box.append(ran_num) df[i+2000] = list_box df = df.T 제가 이해하기로는 2000 부터 2004까지 5개의 행을 만들고 각 행에 200개의 자료를 넣는데 1부터 199 까지의 정수를 넣는다. 그렇다면 df.T는 어떤 의미일까요? 그리고 randint 이 함수는 랜덤정수를 생성한다는 것일까요? 1부터 200 사이의 정수를 랜덤으로 넣는다는 의미가 맞을까요?

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
bk 댓글 1 좋아요 0 조회수 50

강의에 언급된 영상 질문

미해결

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

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

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

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

미해결

한 입 크기로 잘라먹는 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

딕셔너리 인트문제

미해결

프로그래밍 시작하기 : 도전! 45가지 파이썬 기초 문법 실습 (Inflearn Original)

# 11.Dict Items Sum d = {'a': 17,'b': 114,'c': 247, 'd': 362, 'e': 220, 'f': 728, 'g': -283, 'h': 922} # 방법1 total = 0 for i in d.values(): total += i print(f'ex1 결과 : {total}') # 방법2 print(f'ex2 결과 : {sum(d.values())}') # 방법3 print(f'ex3 결과 : {sum([d[item] for item in d])}') # 괄호 제외 TypeError Traceback (most recent call last) Cell In[13], line 15 11 print(f'ex1 결과 : {total}') 14 # 방법2 ---> 15 print(f'ex2 결과 : {sum(d.values())}') 18 # 방법3 19 print(f'ex3 결과 : {sum([d[item] for item in d])}') TypeError: 'int' object is not callable 인트가 호출이 안 된다고 뜨는데 이유가 뭔지 알 수 있을까요?

  • python
윤휘웅 댓글 0 좋아요 0 조회수 70

tailwindcss 와 ai tool

미해결

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

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

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

사무실 컴퓨터ㅠ

미해결

직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피

사무실 컴퓨터에서는 CMD 창에서 Pip도 안된다그러고 파이썬 설치도 안된다고 하네요. (현재 행정복지센터 근무중) 보안때문일까요.. 이번 국가정보자원관리원 화재때문일까요.. 사실 이건 질문이라기보다는 하소연 입니다.ㅎㅎㅎ 사무실에서 자동화 시스템을 만들어보려고했는데 안되겠네요. 개인 컴퓨터로 만들어서 사무실 컴퓨터에서 사용할 수 있는 방법도 있는거겠죠?

  • python
  • 한컴오피스
geyun6026 댓글 2 좋아요 0 조회수 138

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 조회수 86

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

미해결

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

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

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

private folders 와 전역 폴더

미해결

Next.js 완벽 마스터 (v15): 노션 기반 개발자 블로그 만들기 (with 커서AI)

프로젝트 개발 중에, src/components 폴더에 재사용할 것들을 만들어서 사용하는 것과, src/app/_components 를 사용하는 것을 배웠는데, 둘의 사용성 차이가 있나요? 굳이 이 두 기능을 둘 다 사용을 할 필요가 있을까요? 오히려 하나만 사용하는게 좋지 않나 싶었습니다. 반드시 분리를 해야만 하는 특별한 이유가 있어서 굳이 분리를 하게 되는 것일까요?

  • react
  • 블로그
  • next.js
  • cursor
  • cursorai
Junho 댓글 2 좋아요 0 조회수 110

.

미해결

코드 5줄의 마법, 5줄 머신러닝 PyCaret: 데이터 분석 프로젝트에 AutoML 날개 달기

.

  • python
  • 머신러닝
  • automl
  • mlops
  • 인공지능(ai)
댓글 2 좋아요 0 조회수 148

DELETE 요청의 반환값은 어떤 기준으로 결정하는 게 좋을까요?

해결됨

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

CRUD 중 DELETE 요청의 경우 어떤 기준으로 반환 타입을 정하는 게 좋을지 궁금합니다. 제가 생각하기에는 아래 두 가지 방식이 있을 것 같습니다. 강사님께서는 이러한 상황에서 어떤 기준을 표준으로 사용하시는지 궁금합니다. 1. 일관된 응답 return { success: true, data: null }; CREATE , READ , UPDATE 와 동일하게 성공 여부를 명시 하고 data 는 null 로 처리하여 응답 구조를 통일하는 방식입니다. 이렇게 하면 프론트엔드에서 일관된 형태로 응답을 처리 할 수 있을 것 같습니다. 2. HTTP 표준 준수 (204 No Content) @HttpCode(204) 응답 본문을 따로 내려주지 않고 상태 코드만 반환 하는 방식입니다. 이 경우 RESTful 표준에 부합 하고 불필요한 네트워크 비용을 줄일 수 있을 것 같습니다. 다만 프론트엔드에서는 응답 본문이 없어 분기 처리가 필요 할 수도 있을 것 같습니다. 이 두 가지 방식 중에서 실무에서는 어떤 기준으로 선택하시는지 또는 프로젝트 성격에 따라 구분하는 기준이 있을지 궁금합니다.

  • javascript
  • typescript
  • rest-api
  • nestjs
  • backend
관태 댓글 2 좋아요 0 조회수 101

배달의 민족 문제에서 효율적인 탐색 방법에 대해 질문드립니다

해결됨

38군데 합격 비법, 2026 코딩테스트 필수 알고리즘

해당강의 : 2주차;2-10. 2주차 끝&숙제 설명 강사님 안녕하세요. 강의 중 두 번째 문제인 ‘배달의 민족 - 배달 가능 여부’ 문제를 풀이하며, 아래와 같이 코드를 작성해보았습니다. def is_available_to_order(menus, orders): for order in orders: if order not in menus: return "주문 불가능" return "주문 가능" 강의에서 설명하신 set() 을 활용한 방식이 탐색 효율이 높다는 점은 잘 이해했습니다. 이에 대해 생각해보며 , 제가 작성한 방식도 리스트 탐색만으로 충분히 동작하여 데이터 규모가 크지 않은 상황에서는 큰 성능 차이가 없을 것 같다는 생각이 들었습니다. 두 방식 모두 평균적인 입력 크기에서는 큰 차이가 없을 것 같은데, 혹시 제가 사용한 방법도 일정 규모 이하의 데이터에서는 효율적인 접근으로 볼 수 있을지 궁금합니다. 또한, 실제 서비스 코드에서는 어떤 기준으로 set() 변환을 적용하는 것이 바람직한지 알고 싶습니다.

  • python
  • 코딩-테스트
  • 알고리즘
  • data-structure
  • 시간복잡도
  • set
  • 리스트
하늘소녀 댓글 1 좋아요 0 조회수 60

인기 태그

인프런 TOP Writers

주간 인기글