inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

질문아닙니다ㅜㅜ

미해결

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

질문은 아닌데..챌린지 미션에 질문하기가 있어서 쓰니까 신경쓰지 말아주세요... Link Share 공유 url은 components/Post.tsx에 있음 공식문서: share 부분 확인 ios에서는 url을 같이 넣어주면 좋고, 안드로이드에서는 title을 넣어주면 좋음 File Share expo-sharing 라이브러리 설치 후 사용 폰에 있는 파일을 다른 앱에 공유 가능 다른 앱에서 내 expo앱으로 공유하고 싶을 때 expo기본지원x Expo Share Extension이라는 외부 라이브러리를 따로 설치해서 사용해야 함 근데 npm run prebuild를 해야하는데, 이럼 expo-go에서 벗어나 native단을 건듦 한번 설치하면 못돌아옴

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

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

해결됨

프론트엔드 마스터클래스

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

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

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

미해결

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

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

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

3-way merge에서의 conflict를 해소할 수 있는 4가지 방법

해결됨

Git & GitHub, 원리부터 차근차근 - 근본깃 [AI 더빙]

안녕하세요, geek님. 영상 16:55~ 부분에서 설명해주시는 conflict를 해결할 수 있는 방법에 대해서 다음 네 가지를 설명해주셨습니다. main 브랜치 쪽 diff를 더한다. test 브랜치 쪽 diff를 더한다. (선택됨) 둘 다 더한다. 둘 다 더하지 않고, 아예 다른 내용을 적는다. 그리고 예제에서는 2번 방식을 선택해주셨고, 이에 따라서 머지 커밋은 다음과 같이 계산됩니다. base( red ) + main 최신 커밋과의 diff( green ) + test 최신 커밋과의 diff( blue ) 즉, 3개가 더해져서 만들어지는 커밋인데요. 이로 인해 3-way merge라는 이름으로 불린다고 이해했습니다. 여기서 질문이 생기는데요. 만약 1번 방식을 선택한다면, 머지 커밋이 다음과 같이 계산됩니다. base( red ) + main 최신 커밋과의 diff( green ) 즉, 2개가 더해져서 커밋이 만들어집니다. 그런데 앞서 말씀하신 내용을 고려하면 머지의 세부 명칭(예를 들어 3-way merge같은)에 영향을 주는 요소는 '커밋 히스토리의 모양'입니다. 따라서 2개가 더해져서 커밋이 만들어지는 이 상황도 여전히 3-way merge라고 부를 수 있습니다. 그래서 처음 들었던 의문은 "1번 방식을 택했을 때는 2개가 더해지는 건데, 이때도 3-way라고 부르는 것은 그냥 관례적인 표현인가?" 입니다. 그리고 질문을 작성하면서 제가 스스로 내린 답변은 "더하는 개수가 3개여야 하는 것이 아니고, 더할지 말지 고민하는 기준점이 3개 인 상황이라 3-way라는 이름이 붙은 것 같다" 입니다. 즉, 커밋 히스토리가 예제와 같은 상황에서는 다음 3가지 를 기준점으로 사용하게 됩니다. 두 브랜치의 공통 부모 (base) main 브랜치의 최종 커밋 test 브랜치의 최종 커밋 각 기준점에 대해 어떤 판단을 내리느냐에 따라 세 개를 더하는 2번 상황이 되거나 두 개를 더하는 1번 상황이 되거나, 또 다른 3번, 4번 상황이 될 수도 있습니다. 하지만 '기준점이 3개'라는 사실을 모든 상황에서 동일하기 때문에 3-way merge라는 이름이 붙여진 것으로 판단했습니다. 가르쳐주신 내용에 혼란을 느낀 부분을 서술하느라 글이 좀 길어졌는데, 결론적으로 '기준점이 3개라서 3-way merge라고 부른다'는 제 판단이 적절한지 여쭤보고 싶습니다.

  • git
  • github
dev.rudevico 댓글 2 좋아요 0 조회수 192

Expo 강의 질문 (preview build?)

미해결

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

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

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

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

미해결

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

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

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

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

미해결

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

브랜치 병합 전략에 대한 지식공유자님의 생각이 궁금합니다.

해결됨

Git & GitHub, 원리부터 차근차근 - 근본깃

안녕하세요, 강의 잘 듣고 있습니다. Git을 정리하는 데 큰 도움을 받고 있습니다. 다름이 아니라 GitHub에서 브랜치를 메인 브랜치로 병합할 때 사용하는 전략에 대해 궁금합니다. 기본 병합(merge), 스쿼시 & 머지(squash & merge), 리베이스 & 머지(rebase & merge) 방식이 있는데, 어떤 방식을 선호하시는지 여쭤보고 싶습니다. 개인적으로는 로컬에서 작업할 때는 리베이스 & 머지 를 선호합니다. 히스토리를 깔끔하게 유지할 수 있기 때문입니다. 반면에 메인 계열 브랜치(dev, prod 등)로 병합할 때는 기본 병합 을 사용해야 기능 추가 히스토리를 명확히 추적할 수 있다고 생각합니다.

  • git
  • github
  • 브랜치
Robbie 댓글 1 좋아요 0 조회수 136

비공개 보안

해결됨

깃허브 데스크탑으로 프로젝트 관리하기

민감한 정보를 포함하는 비공개(Private) GitHub 저장소의 보안을 강화하기 위해 조치가 있을까요

  • git
  • github
  • github-actions
  • github-pages
  • github-desktop
지웅 장 댓글 2 좋아요 0 조회수 118

강의에 언급된 영상 질문

미해결

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

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

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

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

미해결

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

sitemap 에 Pormise가 필요한 이유

미해결

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

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

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

private folders 와 전역 폴더

미해결

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

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

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

가상환경 같은건 없나요?

해결됨

Supabase, Next 풀 스택 시작하기 (feat. 슈파베이스 OAuth, nextjs 14)

안녕하세요 리액트나 NextJS는 익숙하지 않아 질문드립니다. 파이썬을 쓸때는 가상환경을 만들어서 프로젝트 마다 관리를 하는데 NextJS는 각 프로젝트 폴더마다 관리가 되나요? 이것저것 하다가 실수하면 다 지우고 처음부터 다시 하는편이라서 파이썬 가상환경이 너무 마음에 들었는데 혹시 NextJS도 가능한가 궁금합니다. 잘 모르기 때문에 실수해서 패키지가 엉망이 된 경우가 많아서 걱정부터 되네요. 다들 기본적으로 잘하셔서 그런가 보통 강의를 들을때 이런 부분은 잘 안물어보시나봐요.

  • react
  • 클론코딩
  • next.js
  • supabase
히징징 댓글 3 좋아요 0 조회수 142

git pull merge 요청 시 draft

미해결

Git & GitHub, 원리부터 차근차근 - 근본깃

안녕하세요! 강의 너무 잘 듣고 있습니다. 제가 이번에 git을 처음 써보면서 이것저것 시도해보고 있는데요! git pull merge 요청을 보낼 때 분명 한번에 merge를 시도 했는데 draft라고 남는 경우가 있더라구요! 혹시 이건 제가 요청을 제대로 보내지 않아서 생기는 걸까요?

  • git
  • github
Silver.Jane 댓글 2 좋아요 0 조회수 268

verify_token 함수의 네이밍에 대한 질문입니다

해결됨

React & FastAPI로 만드는 투표 커뮤니티 플랫폼: 결제 시스템으로 수익화까지!

안녕하세요! JWT 구현 중 verify_token 함수의 네이밍이 궁금합니다. app/core/jwt_handler.py def verify_token(token: str) -> int: payload = decode_token(token) return payload.get("uid") verify라는 이름은 보통 boolean을 반환할 것 같은데, 실제로는 uid(int)를 반환하고 있어서 조금 헷갈립니다. get_uid_from_token이나 extract_user_id 같은 이름이 더 명확하지 않을까요? 감사합니다!

  • react
  • mysql
  • docker
  • rest-api
  • FastAPI
고리오영감 댓글 2 좋아요 0 조회수 84

AI와 CSS 라이브러리의 궁합

해결됨

React 완벽 마스터: 기초 개념부터 린캔버스 프로젝트까지

안녕하세요. CSS 라이브러리에 대한 비교 설명까지 너무 감사합니다. 앞으로 AI Agent 를 활용한 코딩을 고려하고 있습니다. 이런 경우 더욱 적합한 CSS 라이브러리를 추천해 주실 수 있을까요? 예를 들어 저는 현재 Cursor AI를 이용하고 있습니다. 좋은 강의 감사합니다.

  • react
  • React-Context
  • react-router
  • tailwindcss
  • react-query
충전중 댓글 1 좋아요 0 조회수 138

CSR , SSR 의 수요 궁금증 질문

미해결

코드로 배우는 React 19 with 스프링부트 API서버

안녕하세요, 개인적으로 궁금한 게 있어서 질문드립니다. 요즘 React Router를 보면 SSR 프로젝트를 위한 프레임워크가 나오는 등, 서버 사이드 렌더링 환경을 지원하는 방향으로 발전하고 있는 것 같더라고요. 그래서 문득 궁금해졌는데, 요즘 시장에서는 CSR 방식의 수요가 많이 줄어드는 추세인가요? 아니면 여전히 CSR 중심의 프로젝트도 많은 편인가요? 현재는 CSR 기반으로 개발하고 있는데, 앞으로의 흐름을 생각하면 SSR 관련 기술도 공부해야 할지 고민 중입니다. 현업에서 체감하시는 부분이나 조언을 듣고 싶습니다

  • react
  • typescript
  • spring-boot
  • jpa
  • jwt
규행 댓글 2 좋아요 0 조회수 107

"!" 은 어떤 문법인가요?

미해결

타입스크립트로 배우는 리액트(React.js) : 기초부터 최신 기술까지 완벽하게

비제어 컴포넌트 - 라디오 수업 2:40 경 const formData = new FormData(formElRef.current!); 에서 !이 null 아님을 보장해 주신다 했는데 의미를 자세히 알고 싶은데 뭐라고 검색해서 찾아볼수 있을까요?

  • react
  • react-router
  • redux-toolkit
  • zustand
  • react.js
신박한 댓글 2 좋아요 0 조회수 68

인기 태그

인프런 TOP Writers

주간 인기글