inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

router 질문있습니다.

미해결

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

현재 expo 제일 최신버전인 53.0.20 버전으로 강의를 듣고있습니다. 강사님처럼 const router= useRouter() 말고 import {router} from 'expo-router' 에서 router.push 이런거도 동일하게 동작하나요?

  • react
  • react-native
  • 하이브리드-앱
  • typescript
  • expo
abc2232002 댓글 2 좋아요 1 조회수 81

` /home -> / ` 아니라 ` /index -> / ` 아닌가요?

미해결

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

7.중첩 라우터와 그룹폴더의 활용 / 영상 시작 0:30 질문: ### /home -> / ### 이 아니라 ### /index -> / ### 아닌가요? 이 부분 설명에서 /home 은 실제 home 디렉토리를 찾습니다. 상위 경로에 _layout.tsx, index.tsx 가 있으면 상위 경로 index.tsx 로 이동하니까 index.tsx 파일이 설명에 부합하는거 같아서 질문드립니다. ### /index -> / ###

  • react
  • react-native
  • 하이브리드-앱
  • typescript
  • expo
엔지개그 댓글 1 좋아요 0 조회수 70

apk 파일 추출 관련 문의 드립니다.

미해결

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

만들어보고 있는 앱을 실 기기에 설치해서 테스트 해볼 일이 있어 apk 파일을 추출하려 합니다. 백엔드 url이 http 라 app.json android 내에 useClearTextTraffic true 도 추가해주었습니다. "usesCleartextTraffic": true eas.json 내 build 에 release 를 추가하였고, "release": { "android": { "buildType": "apk" } } eas build --platform android --profile release 명령어를 통해 빌드 했습니다. 생성된 apk 를 실 기기에 설치 후 실행 했을 때 api 호출을 통해 데이터를 받아와서 뿌려주는 부분에 데이터가 하나도 나오고 있지 않습니다. 설치 된 development build 를 에뮬레이터에서 실행해보아도 마찬가지로 데이터가 하나도 나오지 않고, catch 부분에서 에러도 콘솔에 찍히지 않고 있습니다.ㅠㅠ npm run android 실행 후 s > a 입력해서 expo go 환경에서 확인해봤을 땐 데이터도 잘 받아와지는데 혹시 어느 부분을 확인해봐야할까요? npm ls react ├─┬ @expo/vector-icons@14.1.0 │ └── react@19.0.0 deduped ├─┬ @react-native-community/datetimepicker@8.4.1 │ └── react@19.0.0 deduped ├─┬ @react-native-kakao/core@2.4.0 │ └── react@19.0.0 deduped ├─┬ @react-native-kakao/user@2.4.0 │ └── react@19.0.0 deduped ├─┬ @react-navigation/bottom-tabs@7.4.6 │ └── react@19.0.0 deduped ├─┬ @react-navigation/drawer@7.5.7 │ ├─┬ react-native-drawer-layout@4.1.12 │ │ └── react@19.0.0 deduped │ ├── react@19.0.0 deduped │ └─┬ use-latest-callback@0.2.4 │ └── react@19.0.0 deduped ├─┬ @react-navigation/elements@2.6.3 │ ├── react@19.0.0 deduped │ └─┬ use-sync-external-store@1.5.0 │ └── react@19.0.0 deduped ├─┬ @react-navigation/native@7.1.17 │ ├─┬ @react-navigation/core@7.12.4 │ │ └── react@19.0.0 deduped │ └── react@19.0.0 deduped ├─┬ expo-blur@14.1.5 │ └── react@19.0.0 deduped ├─┬ expo-font@13.3.2 │ └── react@19.0.0 deduped ├─┬ expo-image@2.4.0 │ └── react@19.0.0 deduped ├─┬ expo-linear-gradient@14.1.5 │ └── react@19.0.0 deduped ├─┬ expo-linking@7.1.7 │ └── react@19.0.0 deduped ├─┬ expo-router@5.1.4 │ ├─┬ @radix-ui/react-slot@1.2.0 │ │ ├─┬ @radix-ui/react-compose-refs@1.1.2 │ │ │ └── react@19.0.0 deduped │ │ └── react@19.0.0 deduped │ ├─┬ @react-navigation/native-stack@7.3.25 │ │ └── react@19.0.0 deduped │ └─┬ react-native-is-edge-to-edge@1.2.1 │ └── react@19.0.0 deduped ├─┬ expo-status-bar@2.2.3 │ ├─┬ react-native-edge-to-edge@1.6.0 │ │ └── react@19.0.0 deduped │ └── react@19.0.0 deduped ├─┬ expo@53.0.20 │ ├─┬ expo-asset@11.1.7 │ │ └── react@19.0.0 deduped │ ├─┬ expo-keep-awake@14.1.4 │ │ └── react@19.0.0 deduped │ └── react@19.0.0 deduped ├─┬ react-dom@19.0.0 │ └── react@19.0.0 deduped ├─┬ react-native-gesture-handler@2.24.0 │ └── react@19.0.0 deduped ├─┬ react-native-gifted-charts@1.4.63 │ ├─┬ gifted-charts-core@0.1.65 │ │ └── react@19.0.0 deduped │ └── react@19.0.0 deduped ├─┬ react-native-reanimated@3.17.5 │ ├─┬ react-native-is-edge-to-edge@1.1.7 │ │ └── react@19.0.0 deduped │ └── react@19.0.0 deduped ├─┬ react-native-safe-area-context@5.4.0 │ └── react@19.0.0 deduped ├─┬ react-native-screens@4.11.1 │ ├─┬ react-freeze@1.0.4 │ │ └── react@19.0.0 deduped │ └── react@19.0.0 deduped ├─┬ react-native-svg@15.11.2 │ └── react@19.0.0 deduped ├─┬ react-native-web@0.20.0 │ └── react@19.0.0 deduped ├─┬ react-native-webview@13.13.5 │ └── react@19.0.0 deduped ├─┬ react-native@0.79.5 │ ├─┬ @react-native/virtualized-lists@0.79.5 │ │ └── react@19.0.0 deduped │ └── react@19.0.0 deduped └── react@19.0.0 npm ls react-native ├─┬ @expo/vector-icons@14.1.0 │ └── react-native@0.79.5 deduped ├─┬ @react-native-async-storage/async-storage@2.1.2 │ └── react-native@0.79.5 deduped ├─┬ @react-native-community/datetimepicker@8.4.1 │ └── react-native@0.79.5 deduped ├─┬ @react-native-kakao/core@2.4.0 │ └── react-native@0.79.5 deduped ├─┬ @react-native-kakao/user@2.4.0 │ └── react-native@0.79.5 deduped ├─┬ @react-navigation/bottom-tabs@7.4.6 │ └── react-native@0.79.5 deduped ├─┬ @react-navigation/drawer@7.5.7 │ ├─┬ react-native-drawer-layout@4.1.12 │ │ └── react-native@0.79.5 deduped │ └── react-native@0.79.5 deduped ├─┬ @react-navigation/elements@2.6.3 │ └── react-native@0.79.5 deduped ├─┬ @react-navigation/native@7.1.17 │ └── react-native@0.79.5 deduped ├─┬ expo-apple-authentication@7.2.4 │ └── react-native@0.79.5 deduped ├─┬ expo-blur@14.1.5 │ └── react-native@0.79.5 deduped ├─┬ expo-constants@17.1.7 │ └── react-native@0.79.5 deduped ├─┬ expo-image@2.4.0 │ └── react-native@0.79.5 deduped ├─┬ expo-linear-gradient@14.1.5 │ └── react-native@0.79.5 deduped ├─┬ expo-linking@7.1.7 │ └── react-native@0.79.5 deduped ├─┬ expo-router@5.1.4 │ ├─┬ @expo/metro-runtime@5.0.4 │ │ └── react-native@0.79.5 deduped │ ├─┬ @react-navigation/native-stack@7.3.25 │ │ └── react-native@0.79.5 deduped │ └─┬ react-native-is-edge-to-edge@1.2.1 │ └── react-native@0.79.5 deduped ├─┬ expo-status-bar@2.2.3 │ ├─┬ react-native-edge-to-edge@1.6.0 │ │ └── react-native@0.79.5 deduped │ └── react-native@0.79.5 deduped ├─┬ expo-symbols@0.4.5 │ └── react-native@0.79.5 deduped ├─┬ expo-system-ui@5.0.10 │ └── react-native@0.79.5 deduped ├─┬ expo-web-browser@14.2.0 │ └── react-native@0.79.5 deduped ├─┬ expo@53.0.20 │ ├─┬ expo-asset@11.1.7 │ │ └── react-native@0.79.5 deduped │ ├─┬ expo-file-system@18.1.11 │ │ └── react-native@0.79.5 deduped │ └── react-native@0.79.5 deduped ├─┬ react-native-gesture-handler@2.24.0 │ └── react-native@0.79.5 deduped ├─┬ react-native-gifted-charts@1.4.63 │ ├─┬ gifted-charts-core@0.1.65 │ │ └── react-native@0.79.5 deduped │ └── react-native@0.79.5 deduped ├─┬ react-native-reanimated@3.17.5 │ ├─┬ react-native-is-edge-to-edge@1.1.7 │ │ └── react-native@0.79.5 deduped │ └── react-native@0.79.5 deduped ├─┬ react-native-safe-area-context@5.4.0 │ └── react-native@0.79.5 deduped ├─┬ react-native-screens@4.11.1 │ └── react-native@0.79.5 deduped ├─┬ react-native-svg@15.11.2 │ └── react-native@0.79.5 deduped ├─┬ react-native-webview@13.13.5 │ └── react-native@0.79.5 deduped └─┬ react-native@0.79.5 └─┬ @react-native/virtualized-lists@0.79.5 └── react-native@0.79.5 deduped npm ls expo ├─┬ @react-native-community/datetimepicker@8.4.1 │ └── expo@53.0.20 deduped ├─┬ @react-native-kakao/core@2.4.0 │ └── expo@53.0.20 deduped ├─┬ expo-apple-authentication@7.2.4 │ └── expo@53.0.20 deduped ├─┬ expo-blur@14.1.5 │ └── expo@53.0.20 deduped ├─┬ expo-build-properties@0.14.8 │ └── expo@53.0.20 deduped ├─┬ expo-constants@17.1.7 │ └── expo@53.0.20 deduped ├─┬ expo-dev-client@5.2.4 │ ├─┬ expo-dev-launcher@5.1.16 │ │ └── expo@53.0.20 deduped │ ├─┬ expo-dev-menu-interface@1.10.0 │ │ └── expo@53.0.20 deduped │ ├─┬ expo-dev-menu@6.1.14 │ │ └── expo@53.0.20 deduped │ ├─┬ expo-manifests@0.16.6 │ │ └── expo@53.0.20 deduped │ ├─┬ expo-updates-interface@1.1.0 │ │ └── expo@53.0.20 deduped │ └── expo@53.0.20 deduped ├─┬ expo-font@13.3.2 │ └── expo@53.0.20 deduped ├─┬ expo-haptics@14.1.4 │ └── expo@53.0.20 deduped ├─┬ expo-image@2.4.0 │ └── expo@53.0.20 deduped ├─┬ expo-linear-gradient@14.1.5 │ └── expo@53.0.20 deduped ├─┬ expo-router@5.1.4 │ └── expo@53.0.20 deduped ├─┬ expo-splash-screen@0.30.10 │ └── expo@53.0.20 deduped ├─┬ expo-symbols@0.4.5 │ └── expo@53.0.20 deduped ├─┬ expo-system-ui@5.0.10 │ └── expo@53.0.20 deduped ├─┬ expo-web-browser@14.2.0 │ └── expo@53.0.20 deduped └─┬ expo@53.0.20 ├─┬ expo-asset@11.1.7 │ └── expo@53.0.20 deduped ├─┬ expo-file-system@18.1.11 │ └── expo@53.0.20 deduped └─┬ expo-keep-awake@14.1.4 └── expo@53.0.20 deduped

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

윈도우 환경입니다.

미해결

아바타 커뮤니티앱 만들기 (React Native Expo)

import DescriptionInput from "@/components/DescriptionInput"; import TitleInput from "@/components/TitleInput"; import { FormProvider, useForm } from "react-hook-form"; import { StyleSheet } from "react-native"; import { KeyboardAwareScrollView } from "react-native-keyboard-aware-scroll-view"; type FormValues = { title: string; description: string; }; export default function PostWriteScreen() { const postForm = useForm<FormValues>({ defaultValues: { title: "", description: "", }, }); return ( <FormProvider {...postForm}> <KeyboardAwareScrollView contentContainerStyle={styles.container}> <TitleInput /> <DescriptionInput /> <DescriptionInput /> <DescriptionInput /> <DescriptionInput /> <DescriptionInput /> <DescriptionInput /> <DescriptionInput /> </KeyboardAwareScrollView> </FormProvider> ); } const styles = StyleSheet.create({ container: { margin: 16, gap: 16 }, }); KeyboardAwareScrollView를 써도 여전히 키보드가 입력창을 가리는데 이유가 뭔지 잘 모르겠습니다.

  • react-native
  • typescript
  • expo
  • react-hook-form
  • react-query
성혜람 댓글 3 좋아요 0 조회수 125

svg질문

미해결

따라하며 배우는 리액트 네이티브 기초

안녕하세요 react-navie 강의중 18강 보고 있는데요 svg 잘 설치 되어있고, 이미지도 잘 넣었는데 저는 이미지 스타일 편집하는게 안보이고 svg 파일 클릭을 하면 svg 파일 모양만 보이고 있어서 svg 테스트시 화면에 이미지 너무 크게 보입니다. 툴에서 어떻게 설정하면 svg 스타일이 보일까요?

  • react
  • react-native
  • expo
kimdk1406 댓글 1 좋아요 0 조회수 92

카카오 로그인이 안됩니다.

미해결

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

//app\login.tsx import { initializeKakaoSDK, getKeyHashAndroid } from "@react-native-kakao/core"; const onKakaoLogin = async()=>{ console.log(await getKeyHashAndroid()); try{ const result = await kakaoLogin(); // 로그인 완료될 때까지 대기 console.log("로그인 결과:", result); } catch (error) { console.error("로그인 실패:", error); } }; 코드를 이렇게 작성해서 콘솔창에 출력된 키 해시를 kakao dev 홈페이지에도 등록했습니다. 이 화면까지는 잘 뜨는데, accept and continue를 눌러도 다시 앱으로 돌아가지도 않고 콘솔창에도 access token과 같은 로그인 여부 로그가 안뜹니다..

  • react
  • react-native
  • 하이브리드-앱
  • typescript
  • expo
dbrud5804 댓글 3 좋아요 0 조회수 556

새로운 모듈 설치시 모듈 없음.

미해결

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

expo-location 때부터 모듈을 설치를 해도 해당 모듈이 없다는 메시지가 뜹니다. eas build --platform android --profile development 명령어로 새로 빌드하면 되긴 하는데, 모듈 하나 설치할 때마다 빌드하면 5분씩 넘게 걸리는데 다른 방법이 있을까요? 아니면 제가 놓치고 있는게 있을까요?

  • react
  • react-native
  • 하이브리드-앱
  • typescript
  • expo
main 댓글 3 좋아요 0 조회수 192

npm run android 실행시 오류가 발생합니다.

미해결

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

처음에 development build로 진행해도 위와 같은 오류가 발생해서, npx rimraf node_modules , npm i , npx rimraf android 순서대로 실행한 후에 다시 npm run android 로 빌드하려고 하는데, 다음과 같은 오류가 발생합니다. C:\Users\swu\threads-clone>npm run android > threads-clone@1.0.0 android > expo run:android √ Created native directory √ Updated package.json | no changes √ Finished prebuild TypeError: Cannot read properties of undefined (reading 'android:enabled') TypeError: Cannot read properties of undefined (reading 'android:enabled') at C:\Users\swu\threads-clone\node_modules\@expo\config-plugins\src\android\Manifest.ts:219:20 at Array.filter (<anonymous>) at Object.getRunnableActivity (C:\Users\swu\threads-clone\node_modules\@expo\config-plugins\src\android\Manifest.ts:218:90) at getMainActivityAsync (C:\Users\swu\threads-clone\node_modules\@expo\cli\src\run\android\resolveLaunchProps.ts:36:49) at resolveLaunchPropsAsync (C:\Users\swu\threads-clone\node_modules\@expo\cli\src\run\android\resolveLaunchProps.ts:51:24) at resolveOptionsAsync (C:\Users\swu\threads-clone\node_modules\@expo\cli\src\run\android\resolveOptions.ts:51:9) at runAndroidAsync (C:\Users\swu\threads-clone\node_modules\@expo\cli\src\run\android\runAndroidAsync.ts:30:17)

  • react
  • react-native
  • 하이브리드-앱
  • typescript
  • expo
dbrud5804 댓글 3 좋아요 0 조회수 118

ios 개발

미해결

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

multi platform 개발하려면 맥은 그럼 필수로 있어야 하는 건가요? 근데 그럼 프로젝트를 두 개 만들어야 할까요? 윈도우에 하나 만들고, 맥에 하나 만들고? 그럼 개발할 때 버전 컨트롤이나 이런 건 어떻게 하죠?

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

.

미해결

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

.

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

FirebaseApp 초기화 문제가 발생합니다.

미해결

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

[Error: Make sure to complete the guide at https://docs.expo.dev/push-notifications/fcm-credentials/ : Default FirebaseApp is not initialized in this process com.cozyu.threadsclone. Make sure to call FirebaseApp.initializeApp(Context) first.] 처음에 package name을 잘못 입력한 상태에서 등록까지 했었다가 지우고 com.cozyu.threadsclone로 재등록했는데도 계속 같은 오류가 발생합니다... google-services.json의 package_name도 이렇게 되어있고, firebase - 일반에서의 패키지 이름도 동일하게 되어있고, expo dev - credentials에서도 이렇게 되어 있는데 안되네요... 폴더에서 json 키 두 개 제거 후에 다시 다운 받았아서 app.json과 동일한 위치에 넣었고, eas credentials 부터 다시 했는데 안됩니다. 혹시 다른 해결 방법이 있을까요?

  • react
  • react-native
  • 하이브리드-앱
  • typescript
  • expo
dbrud5804 댓글 4 좋아요 0 조회수 181

게시글 post 버튼을 클릭한 후에 화면 이동이 발생하지 않습니다

미해결

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

안녕하세요. 게시글 post 버튼을 클릭한 후에 화면 이동이 발생하지 않습니다... 혹시 제가 코드 작성하면서 누락한 부분이 있는 건가 싶어서 어떤 코드에서 그 부분을 다루고 있는지 잘 모르겠어서 질문드립니다 ㅜㅜ modal.tsx의 handlePost는 동일하게 작성되어 있습니다. post 버튼을 누른뒤에 로그는 아래와 같이 정상적으로 출력되고, cancel 버튼을 눌러서 뒤로 가서 확인해보면 게시글은 잘 작성되어있습니다.. 화면이 자동으로 안넘어가는데 어디를 확인해봐야하나요?? LOG posts [{"content": "dd", "id": "1754381715692", "imageUrls": ["file:///data/user/0/com.cozyu.threadsclone/cache/ImagePicker/b22031f0-a977-4501-86c9-2cbc9cf73ae2.jpeg"], "userId": "cozyu"}] LOG post result [{"content": "dd", "id": "1754381715692", "imageUrls": ["file:///data/user/0/com.cozyu.threadsclone/cache/ImagePicker/b22031f0-a977-4501-86c9-2cbc9cf73ae2.jpeg"], "userId": "cozyu"}]

  • react
  • react-native
  • 하이브리드-앱
  • typescript
  • expo
dbrud5804 댓글 5 좋아요 0 조회수 103

KeyboardAwareScrollView 가 작동이 안돼요

미해결

아바타 커뮤니티앱 만들기 (React Native Expo)

윈도우 환경입니다. KeyboardAwareScrollView 가 작동이 안되네요. absolute를 없애봐도 안되고.. scrollView를 주석 처리하고 해봐도 안되네요

  • react-native
  • typescript
  • expo
  • react-hook-form
  • react-query
min 댓글 2 좋아요 0 조회수 232

prebuild 프로젝트 build 방법

해결됨

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

expo에서 prebuild를 진행한 후 native 코드를 직접 수정한 경우, 이후 빌드는 eas build로 가능한가요? 아니면 Xcode/Android Studio 같은 native 빌드 환경을 사용하는 것이 더 적절한가요?

  • react
  • react-native
  • 하이브리드-앱
  • typescript
  • expo
박준태 댓글 2 좋아요 0 조회수 192

headershown 관련 질문

미해결

아바타 커뮤니티앱 만들기 (React Native Expo)

[2-2] 네비게이션 구조 설정 with Expo Router 여기서 최상단 _layout.tsx뿐만 아니라 모든_layout.tsx 에 모두 headershown을 false로 하는 이유가 따로 있는지 궁금합니다!

  • react-native
  • typescript
  • expo
  • react-hook-form
  • react-query
Jinho Park 댓글 2 좋아요 0 조회수 82

npx expo run:anroid 로 빌드하면 FCM 안되는 이유

미해결

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

npx expo run:android 로 빌드해서 에뮬레이터에서 실행한 경우 FCM이 안되는 것 같은데 이유를 알 수 있을까요 ? 안된다면, eas build를 해야만할까요-? (시간이 오래걸려서요)

  • react
  • react-native
  • 하이브리드-앱
  • typescript
  • expo
정채진 댓글 1 좋아요 0 조회수 77

Error : Default FirebaseApp is not initialized

미해결

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

[Error: Make sure to complete the guide at https://docs.expo.dev/push-notifications/fcm-credentials/ : Default FirebaseApp is not initialized in this process com.lukasdiego.retrythreads. Make sure to call FirebaseApp.initializeApp(Context) first.] npx expo run:android로 앱을 실행하니 위 처럼 FirebaseApp 초기화 부분이 안됩니다. 우선 Credentials는 등록된 것을 확인했습니다 !

  • react
  • react-native
  • 하이브리드-앱
  • typescript
  • expo
정채진 댓글 2 좋아요 0 조회수 249

33 강 부터 코드 적용 시 TabBar가 안보임

미해결

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

코드 수정된 부분 붙여넣기하면서 재학습 중인데, 33강 부터 갑자기 TabBar가 사라지네요 RootLayout에서 Stack부분은 문제가 없는 것 같은데 왜그럴까요 ? https://github.com/lukasdeveloperacc/Study/commit/bbca33bdf8ad62b7240a9ed1d1eb39600965e839 제 커밋 코드입니다

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

리액트 네이티브 구글 로그인

미해결

안녕하세요 지금 expo go에서 구글 로그인 연결 중 인데요. redirectUri를 https://auth.expo.io/@your-username/your-app-slug 식으로 입력하면 Something went wrong trying to finish signing in. Please close this screen to go back to the app. 화면이 뜨면서 액세스 토큰은 불러와지는 것 같고, 밑에 방식으로 하면 redirectUri가 exp://ip주소:포트번호 로 나오면서 구글 클라우드 콘솔에 등록을 할 수가 없는데 어떻게 해결하면 좋을까요?.. 도와주시면 감사하겠습니다.. const [request, response, promptAsync] = Google.useAuthRequest({ clientId: process.env.GOOGLE_CLIENT_ID, //redirectUri: 'https://auth.expo.io/@your-username/your-app-slug', redirectUri: makeRedirectUri({ useProxy: true } as any), scopes: ['profile', 'email'], });

  • react
  • react-native
  • expo
  • google
  • expo-auth-session
댓글 1 좋아요 0 조회수 288

인기 태그

인프런 TOP Writers

주간 인기글