Programming
-
React Native AsyncStorage
AsyncStorage들어가며리액트 네이티브(React Native)에서 로컬에 간단한 데이터를 저장할 수 있는 비동기 저장소인 AsyncStorage에 대해 간단하게 정리해본다. AsyncStorage개념로컬에 간단한 데이터를 키-값(Key-Value) 쌍으로 저장하고 불러오는 비동기 저장소모바일 기기 내부에 데이터를 영구 저장하는 공간웹의 localStorage와 비슷하지만, 비동기 방식이며, 네이티브에 최적화되어 있다.앱 재실행 후에도 데이터를 유지할 수 있다.용량이 크지 않은 간단한 데이터 저장에 적합하다. (예: 토큰, 사용자 설정, 간단한 캐시 등) 설치리액트 네이티브 0.60 이상에서는 공식 패키지 @react-native-async-storage/async-storage를 사용한다.$..
1 2025.08.11 -
React Native navigate와 replace 메서드의 차이 (react-navigation)
navigate와 replace 메서드의 차이 (react-navigation)들어가며리액트 네비게이션(React Navigation)에서 navigate 메서드와 replace 메서드의 차이를 간단하게 정리해본다. 차이navigate 메서드기능새로운 화면을 스택(Stack)에 추가한다.현재 화면 위에 다른 화면을 쌓는(push) 방식이다. 결과이전 화면으로 뒤로 가기(back) 할 수 있다.뒤로 가기 버튼(←)이 자동으로 생긴다. (Stack Navigator 기준) 사용 예시navigation.navigate('Signup'); replace 메서드기능현재 화면을 새 화면으로 교체(replace)한다.이전 화면을 스택에서 제거하고, 새 화면으로 바꾼다. 결과이전 화면으로 뒤로 가기 할 수 없다..
1 2025.08.07 -
React Native 로딩 스피너(Loading Spinner) 만들기
로딩 스피너(Loading Spinner) 만들기들어가며리액트 네이티브(React Native) 개발 중, 간단하게 로딩 스피너(Loading Spinner)를 만드는 방법을 정리해본다. 방법ActivityIndicator 이용하기리액트 네이티브 자체적으로 제공하는 ActivityIndicator를 이용하여 간단하게 로딩 스피너를 만들 수 있다. ① 로딩 스피너 컴포넌트 만들기로딩 스피너는 ActivityIndicator 컴포넌트를 이용하여 만들 수 있다.import { View, ActivityIndicator, StyleSheet } from 'react-native';function LoadingOverlay() { return ( );}export default..
0 2025.06.06 -
React Native BlurView
BlurView들어가며리액트 네이티브(React Native) 엑스포(Expo) 프로젝트에서 블러 효과를 주는 BlurView 컴포넌트에 대해 간단히 정리해본다. BlurView개념Expo에서 제공하는 화면의 일부분에 블러(Blur, 흐림 효과)를 적용할 수 있게 해주는 시각적 컴포넌트React Native에서는 iOS와 Android의 네이티브 블러 효과를 직접 구현하는 것이 번거롭기 때문에, Expo는 이러한 블러 효과를 쉽게 적용할 수 있도록 expo-blur 패키지를 제공한다. 사용 방법BlurView는 배경 이미지나 비디오 위에 올려야 효과가 명확하게 보인다.iOS에서는 기본적으로 잘 지원되며, Android는 일부 기기에서 제한될 수 있음에 주의한다.React Navigation 라이..
0 2025.05.15 -
Node.js NVM(Node Version Manager)
NVM(Node Version Manager)들어가며노드(Node.js) 버전 관리자인 NVM(Node Version Manager)에 대해 간단히 정리해본다. NVM(Node Version Manager)개념Node.js 버전을 손쉽게 관리할 수 있는 명령줄(CLI) 도구Node.js는 자바스크립트 런타임이기 때문에, 프로젝트마다 다른 버전의 Node.js가 필요할 수 있다.이때 nvm을 사용하면 손쉽게 다음의 기능을 수행할 수 있다.여러 Node.js 버전 설치하기원하는 Node.js 버전으로 전환하기프로젝트에 맞는 버전만 사용할 수 있도록 제한하기 종류nvm의 종류에는 플랫폼에 따라 다음과 같이 2가지가 존재한다.플랫폼이름레포지토리 (설치 방법)MacOS / Linuxnvmhttps://g..
0 2025.05.11 -
React.js useLayoutEffect 훅
useLayoutEffect 훅들어가며리액트(React.js)의 useLayoutEffect 훅에 대해 간단히 정리해본다. useLayoutEffect 훅개념컴포넌트가 렌더링되기 직전, 즉 브라우저가 화면을 그리기 전에 실행되는 훅화면에 변화가 나타나기 전에 어떠한 처리를 하고 싶을 때 사용한다. 사용 방법import { useLayoutEffect } from 'react';useLayoutEffect(() => { // 레이아웃 관련 변경, 동기적 DOM 조작 등에 사용한다.}, [dependencies]); useEffect 훅과 비교하기항목useEffect 훅useLayoutEffect 훅실행 시점컴포넌트 렌더링 후, 브라우저가 화면을 그린 뒤컴포넌트 렌더링 직후, 브라우저가 화면을 그리기 ..
0 2025.05.10 -
React Native 화면 간 데이터 전달하기 (React Navigation)
화면 간 데이터 전달하기 (React Navigation)들어가며리액트 네이티브(React Native) 프로젝트에서 React Navigation 라이브러리를 이용하여 화면 간 이동(Navigation) 기능을 구현할 때, 화면 간 데이터를 전달하는 방법을 간단하게 정리해본다. 방법데이터 전달하기navigate() 메서드를 사용할 때, 두 번째 인자로 객체를 전달하면 해당 데이터를 다음 화면에 보낼 수 있다.navigation.navigate('MealsOverview', { categoryId: itemData.item.id,}); ⇒ 첫 번째 인자: 이동할 화면 이름⇒ 두 번째 인자 : params 객체 (원하는 데이터 포함) 데이터 추출하기방법 ① : route prop 사용하기Meal..
2 2025.05.10 -
React Native React Navigation 라이브러리
React Navigation 라이브러리들어가며리액트 네이티브(React Native) 앱에서 화면 간의 전환을 쉽게 구현할 수 있도록 도와주는 라이브러리인 React Navigation에 대해 간단하게 정리해본다. React Navigation개념React Native 앱에서 화면 간의 전환(네비게이션)을 쉽게 구현할 수 있도록 도와주는 오픈소스 라이브러리React Native 앱에 다양한 네비게이션 패턴(스택, 탭, 드로어 등)을 추가할 수 있게 해준다.웹의 라우팅(react-router)과 비슷하지만, 모바일 환경에 맞춘 기능(스와이프, 제스처, 헤더 애니메이션 등)을 제공한다. 주요 기능기능설명스택 네비게이션(Stack Navigation)- A 화면 → B 화면 이동 및 뒤로가기를 할 수 있..
0 2025.05.06 -
React Native 뒤로가기 기능 막는 방법
뒤로가기 기능 막는 방법들어가며리액트 네이티브(React Native)를 이용하여 만든 앱에서 특정 스크린에서 뒤로가기 기능을 막는 방법을 간단하게 정리해본다. 방법방법 ① : BackHandler API 이용하기 (Android)react-native 패키지의 BackHandler API를 사용해서 뒤로가기 이벤트를 무시하도록 설정할 수 있다.이 방법은 안드로이드(Android)에서 물리적인 뒤로가기 기능을 막아준다.iOS에서는 물리적인 뒤로가기 버튼이 없기 때문에 별도로 처리해주지 않아도 된다.import { useEffect } from 'react';import { BackHandler } from 'react-native';function myApp() { useEffect(() => ..
0 2025.04.17 -
React Native .jsx 파일 사용 하는 방법
.jsx 파일 사용 하는 방법들어가며리액트 네이티브(React Native) 프로젝트에서 .jsx 파일을 사용하는 방법을 간단하게 정리해본다.일반적으로 리액트 네이티브에서는 .js 파일만 인식하며, .jsx 파일을 사용하려고 할 경우 에러가 발생한다. 방법현재 리액트 네이티브 프로젝트의 expo-cli 버전에 따라 방법 ① 또는 방법 ②의 방법을 따라한다. 방법 ① : metro.config.js 파일에 확장자 추가하기프로젝트 최상단 경로(/)의 메트로 설정 파일(metro.config.js)에 다음과 같이 코드를 추가한다.만약 해당 파일이 없을 경우 새로 생성해준다. /metro.config.jsmodule.exports = { resolver: { sourceExts: [..
1 2025.04.11 -
React Native StatusBar (react-native, expo-status-bar)
StatusBar (react-native, expo-status-bar)들어가며리액트 네이티브(React Native)의 StatusBar와 엑스포(Expo)의 expo-status-bar에 대해 간단히 정리해본다. StatusBar (React Native)개념상단 상태 표시줄(시간, 배터리, 신호 등)의 스타일, 배경색, 표시 여부 등을 제어할 수 있는 React Native 내장 컴포넌트 사용 방법import { StatusBar } from 'react-native';export default function App() { return ( );} 주요 속성속성설명플랫폼barStyle- 텍스트 색상 설정▶ default : 플랫폼별 기본 색상 (iOS ..
0 2025.04.11 -
React Native Platform API
Platform API들어가며리액트 네이티브(React Native)의 Platform API에 대해 간단히 정리해 본다. Platform API개념리액트 네이티브에서 앱이 실행되고 있는 플랫폼(iOS, Android, Web 등)을 감지하고, 플랫폼별로 다른 동작이나 스타일을 구현할 수 있게 해주는 유틸리티 사용 방법불러오기import { Platform } from 'react-native'; ① Platform.OS현재 실행 중인 플랫폼을 문자열로 반환해 준다.android, ios, web, windows, macosconst platform = Platform.OS;if (platform === 'android') { console.log('Running on Android'..
0 2025.04.11 -
React Native ScrollView
ScrollView들어가며리액트 네이티브(React Native)의 ScrollView 컴포넌트에 대해 간단하게 정리해본다. ScrollView개념스크롤 가능한 컨테이너로, 자식 컴포넌트가 화면의 크기를 넘어설 때 스크롤(Scroll)을 통해 볼 수 있게 해주는 컴포넌트자식 요소들이 많거나 화면보다 커질 경우, 사용자가 스크롤해서 볼 수 있도록 만들어준다. 주요 속성속성타입설명horizontalbooleantrue로 설정 시, 가로 스크롤 가능 (기본 : 세로)contentContainerStylestyle내부 콘텐츠 전체에 적용할 스타일showsVerticalScrollIndicatorboolean세로 스크롤바 표시 여부showsHorizontalScrollIndicato..
0 2025.04.11 -
React Native KeyboardAvoidingView
KeyboardAvoidingView들어가며리액트 네이티브(React Native)의 KeyboardAvoidingView 컴포넌트에 대해 간단히 정리해 본다. KeyboardAvoidingView개념키보드가 화면에 나타날 때 입력 필드 등의 UI가 가려지는 문제를 해결하기 위해 사용되는 컴포넌트키보드 레이아웃이 표시될 때, 자식 요소를 위로 올려서 입력창을 가리지 않도록 해준다.Android에서는 기본적으로 잘 처리되나, iOS에서는 그렇지 않아 이 컴포넌트를 이용하면 유용하다. 주요 속성behavior키보드가 나타날 때의 동작 방식을 조절할 수 있다.플랫폼에 따라 동작이 다를 수 있기 때문에 Platform.OS를 통해 조건 분기해서 쓰는 것이 일반적이다.옵션설명padding키보드의 높이만..
0 2025.04.10 -
React Native 에뮬레이터 디바이스 자동 회전 기능 켜는 방법 (Expo)
에뮬레이터 디바이스 자동 회전 기능 켜는 방법 (Expo)들어가며리액트 네이티브(React Native) 엑스포(Expo) 프로젝트를 에뮬레이터로 실행할 때, 디바이스 자동 회전 기능을 켜는 방법을 간단히 정리해본다. 방법(1) 애플리케이션 설정 파일(app.json) orientation 키 값 변경하기프로젝트 최상단 경로에 있는 애플리케이션 설정 파일(app.json)의 orientation 키의 값을 다음과 같이 default로 설정해준다. /app.json{ "expo": { "name": "section-02", "slug": "section-02", "version": "1.0.0", "orientation": "default", "icon": "./as..
0 2025.04.10 -
React Native Dimensions API
Dimensions API들어가며리액트 네이티브(React Native)의 내장 API 중 하나인 Dimensions API에 대해 간단히 정리해본다Dimensions API를 이용하여 현재 디바이스의 화면 정보를 가져올 수 있다. Dimensions API개념리액트 네이티브(React Native)에서 기본으로 제공하는 내장 API디바이스의 화면 크기(너비(Width)와 높이(Height)) 정보를 가져오는 데 사용된다.반응형 UI 구성에 활용할 수 있다.이러한 정보를 이용하여 폰트 크기(Font Size), 패딩(Padding), 마진(Margin) 등을 디바이스 화면 크기에 따라 조정할 수 있다. 사용하면 좋은 경우다양한 화면 크기에 맞춰 폰트, 간격, 크기를 조절할 때미디어 쿼리(Media Que..
0 2025.04.10 -
React Native 플랫폼 별로 요소에 그림자 효과 넣기 (Android, iOS, Web)
플랫폼 별로 요소에 그림자 효과 넣기 (Android, iOS, Web)들어가며리액트 네이티브(React Native)에서 플랫폼 별(Android, iOS, Web)로 요소에 그림자 효과를 넣는 방법을 간단하게 정리해본다. 방법① AndroidAndroid에서는 elevation 속성을 사용해서 요소에 그림자 효과를 넣어줄 수 있다.style={{ elevation: 5, // 숫자가 클수록 그림자가 진해진다. backgroundColor: 'white', // 배경색 있어야 그림자가 보이므로 넣어준다. borderRadius: 10,}} ② iOSiOS는 elevation 속성이 인식되지 않는다.따라서 다음과 같은 4가지 속성을 사용하여 요소에 그림자 효과를 넣어줄..
0 2025.04.06 -
React Native 아이콘 사용하기 (@expo/vector-icons)
아이콘 사용하기 (@expo/vector-icons)들어가며리액트 네이티브(React Native) 엑스포(Expo) 프로젝트에서 아이콘(Icon)을 사용하는 방법을 간단하게 정리해본다.리액트 네이티브의 엑스포 프로젝트에서는 별다른 패키지를 설치하지 않고도 아이콘을 바로 사용할 수 있다. 방법1️⃣ 패키지 설치하기 (@expo/vector-icons)Expo 프로젝트에서는 이미 기본적으로 @expo/vector-icons 패키지가 포함되어 있어서 따로 설치할 필요는 없다.하지만, 해당 패키지가 설치되어 있지 않을 경우, 아래 명령을 실행하여 설치해준다.$ expo install expo/vector-icons 2️⃣ 아이콘 세트 불러오기우선, 아이콘 세트(Icon Set)를 불러와서 해당 아이콘 세..
0 2025.04.06 -
React Native 커스텀 폰트 사용하기 (expo-font)
커스텀 폰트 사용하기 (expo-font)들어가며리액트 네이티브(React Native) 엑스포(Expo) 프로젝트에서 커스텀 폰트를 적용하는 방법을 간단하게 정리해본다. 방법 1️⃣ 패키지 설치하기폰트 사용을 위해 expo-font 패키지를 설치한다.$ expo install expo-fontexpo install 명령은 현재 Expo 프로젝트의 버전과 호환되는 패키지를 자동으로 설치해준다. 2️⃣ 폰트 파일 준비하기프로젝트의 /assets/fonts 폴더 안에, 추가할 커스텀 폰트 파일을 넣어준다.해당 폴더가 없을 경우, 새로 생성해준다. 4️⃣ 폰트 불러오기 (useFonts 훅)프로젝트 최상단에 있는 App.js 파일에 다음과 같은 커스텀 폰트를 불러오는 코드를 추가해준다.use..
0 2025.04.06 -
React Native SafeAreaView
SafeAreaView들어가며리액트 네이티브(React Native)의 SafeAreaView 컴포넌트에 대해 간단하게 정리해 본다. SafeAreaView개념React Native에서 화면 상단의 상태바나 노치와 같은 UI 요소로부터 콘텐츠가 겹치지 않도록 자동으로 안전한 영역을 설정해 주는 컴포넌트SafeAreaView 컴포넌트를 사용하면 다양한 기기에서 콘텐츠가 적절하게 배치되고, 화면 가장자리나 상단의 중요한 UI 요소에 가려지지 않게 된다. 주요 기능노치, 상태 바, 하단의 홈 바 등과 같은 화면 요소가 있는 디바이스에서 콘텐츠가 겹치지 않도록 자동으로 여백을 추가해 준다.다양한 화면 크기와 해상도에 따라 안전 영역을 자동으로 인식하고, 이에 맞게 여백을 적용해 준다. 사용 방법React N..
0 2025.04.03 -
React Native Alert API
Alert API들어가며리액트 네이티브(React Native)에서 기본적으로 제공하는 Alert API에 대해 정리해본다. Alert API개념사용자가 알림을 띄울 수 있도록 도와주는 API기본적으로 네이티브(iOS와 Android) 알림 다이얼로그를 표시하는 데 사용된다.사용자가 알림을 확인하거나 취소할 수 있도록 버튼을 구성할 수 있으며, 다양한 설정 방법을 지원한다. 사용법기본 사용법Alert는 React Native에서 내장된 객체로, alert() 메서드를 통해 알림을 띄울 수 있다.import { Alert } from 'react-native';Alert.alert('알림 제목', '알림 메시지'); 버튼 추가하기Alert는 기본적으로 [확인] 버튼만 제공하지만, 여러 버튼을..
0 2025.04.03 -
React Native npm install vs. expo install
npm install vs. expo install들어가며리액트 네이티브(React Native) Expo 프로젝트에서 패키지를 설치하는 방법으로 npm install과 expo install 2가지 방법이 있다.이 2가지 방법의 차이점을 간단하게 정리해본다. 패키지 설치 명령어1️⃣ npm install$ npm install 패키지명Node.js 패키지 관리 명령어npm(Node Package Manager)을 사용하여, 프로젝트의 package.json 파일에 정의된 패키지들을 설치한다.Expo 프로젝트에서 npm install을 사용하면, Expo와 관련된 버전 호환성 문제를 직접 해결해야 할 수 있다.Expo가 요구하는 특정 버전의 패키지와 호환되지 않을 수 있으므로 호환성 문제를 일..
0 2025.04.03 -
React Native 환경 변수 파일 사용하기 (react-native-dotenv)
환경 변수 파일 사용하기 (react-native-dotenv)들어가며리액트 네이티브(React Native)에서 환경 변수 파일(env)을 사용하는 방법을 정리해본다.react-native-dotenv 라이브러리를 이용하여 환경 변수를 사용하는 방법이다. 방법1️⃣ react-native-dotenv 패키지 설치하기터미널에 아래 명령을 실행하여 프로젝트에 react-native-dotenv 패키지를 설치한다.$ npm install react-native-dotenv # yarn add react-native-dotenv 2️⃣ .env 파일 생성하기프로젝트 최상단 경로에 .env 파일을 생성하고 환경 변수를 설정한다.API_URL=https://api.example.comAPP..
0 2025.04.03 -
React Native 카메라 권한 요청 메시지 표시 방법 (Expo)
카메라 권한 요청 메시지 표시 방법 (Expo)들어가며엑스포(Expo)를 이용하여 생성한 리액트 네이티브(React Native) 프로젝트에서 카메라 권한 요청 메시지를 표시하는 방법을 정리해본다. 방법패키지 설치터미널에서 아래 명령을 실행하여 expo-camera 패키지를 설치해준다.$ npx expo install expo-camera 앱 설정 파일 구성하기 (app.json)프로젝트의 최상단에 있는 앱 설정 파일(app.json)에 아래의 내용을 추가해준다. /app.json{ "expo": { "plugins": [ [ "expo-camera", { "cameraPermission": "Allow $(PRODUCT_NAME) t..
0 2025.02.24 -
React Native 클립보드 기능 구현하기 (expo-clipboard)
클립보드 기능 구현하기 (expo-clipboard)들어가며엑스포(Expo)를 이용하여 생성한 리액트 네이티브(React Native) 프로젝트에서 클립보드(Clipboard) 기능을 구현하는 방법을 정리해본다. 방법간단하게 expo-clipboard 패키지를 설치하여 클립보드 기능을 구현할 수 있다. expo-clipboard 패키지 설치하기$ npx expo install expo-clipboard 사용하기클립보드에 복사할 때는 Clipboard.setStringAsync() 함수를 사용하고, 클립보드에 있는(복사된) 값을 가져올 때는 fetchCopiedText() 함수를 사용한다.import { useState } from 'react';import { View, Text, Button..
0 2025.02.24 -
React Native blurOnSubmit 속성과 submitBehavior 속성
blurOnSubmit 속성과 submitBehavior 속성들어가며리액트 네이티브(React Native)의 TextInput 컴포넌트에서 사용할 수 있는 blurOnSubmit 속성과 submitBehavior 속성에 대해 정리해본다. blurOnSubmit 속성개념우선 blurOnSubmit 속성은 다음과 같이 TextInput 컴포넌트에서 사용할 수 있다. { setIsFocused(false); Keyboard.dismiss(); }}/> blurOnSubmit 속성은 TextInput 창 텍스트를 입력하고, 엔터(Enter) 버튼을 누르면 입력한 텍스트가 제출(Submit)되도록 해주는 속성이다.따라서 텍스트 필드가 블러 처리되게 된다.기본값은..
0 2025.02.23 -
React Native TailwindCSS IntelliSense 활성화하기 (VS Code)
TailwindCSS IntelliSense 활성화하기 (VS Code)들어가며VS Code에서 리액트 네이티브(React Native)를 이용하여 애플리케이션을 만들 때, TailwindCSS IntelliSense를 활성화 시키는 방법을 정리해본다. 방법(1) Tailwind CSS IntelliSense 확장 설치하기VS Code에서 Tailwind CSS IntelliSense 확장을 설치한다. Tailwind CSS IntelliSense - Visual Studio MarketplaceExtension for Visual Studio Code - Intelligent Tailwind CSS tooling for VS Codemarketplace.visualstudio.com (2) Tailwi..
0 2025.02.19 -
React.js 폼(Form) 처리 방법 (React 19)
폼(Form) 처리 방법 (React 19)들어가며예제 코드와 함께 React 19에서 업데이트 된 폼(Form) 처리 방법에 대하여 간단하게 정리해본다. 사용 방법아래의 코드는 React 19에서 새로 추가된 Form 관련 기능들을 적용한 코드이다. Signup.jsximport { useActionState } from 'react';import { isEmail, isNotEmpty, isEqualToOtherValue, hasMinLength,} from '../util/validation';export default function Signup() { // React 19 이상에서는 폼 제출 시, formData 객체가 생성되고 함수의 인자로 가져와 특정 필드의 입력값을 가져올 수 있다..
0 2025.01.21 -
React Native 클릭 시, 리플 효과(Ripple Effect) 주는 방법
클릭 시, 리플 효과(Ripple Effect) 주는 방법들어가며리액트 네이티브(React Native)에서 요소 클릭 시, 리플 효과(Ripple Effect)를 줄 수 있는 방법을 정리해본다. 방법우선 특정 요소에 클릭 이벤트를 넣기 위해서는 Pressable 컴포넌트로 해당 요소를 감싸줘야 한다.import { View, Text, Pressable } from 'react-native';function MyComponent(props) { return ( {/* 클릭 효과를 넣을 요소를 감싸준다. */} {props.text} );} Android OSPressable 컴포넌트에 android_ripple 속성을 추가하여 요소 클릭..
1 2024.12.11 -
React Native FlatList
FlatList들어가며리액트 네이티브(React Native)의 FlatList 컴포넌트에 대해 정리해본다. FlatList개념효율적으로 대량의 스크롤 가능한 항목을 렌더링하기 위해 사용되는 컴포넌트최적화된 가상 스크롤링 기능을 제공하여 성능 문제를 줄이고, 스크롤 시 필요한 항목만 렌더링한다.ScrollView 컴포넌트와의 차이점 주요 속성속성설명data- 렌더링할 데이터 배열(Array)을 전달- 배열의 각 요소는 렌더링될 항목의 데이터renderItem- 데이터를 어떻게 렌더링할지 정의하는 함수- 매개변수로 { item, index } 형태의 객체를 받는다.keyExtractor- 각 항목의 고유 키를 반환하는 함수- 기본적으로 item.key 또는 item.id를 사용..
0 2024.12.10