본문 바로가기

분류 전체보기178

문자열 리터럴 타입이란? as const TypeScript 문자열 리터럴 타입 완벽 정리React Native로 개발하다 보면 fontWeight 같은 속성에서 타입 에러를 만나게 됩니다. 이 글에서는 문자열 타입과 문자열 리터럴 타입의 차이를 알아보겠습니다.문제 상황// ❌ TypeScript 에러 발생const customStyle = { textStyle: { fontWeight: "500" // Error: 'string' 형식은 할당할 수 없습니다 }};문자열 타입 vs 문자열 리터럴 타입1. 문자열 타입 (string)let name: string = "철수";name = "영희"; // ✅ OKname = "민수"; // ✅ OKname = "아무거나"; // ✅ OK특징: 어떤 문자열이든 다 들어갈 수 .. 2026. 1. 15.
VScode에서 사용하기 편한 콘솔로그 단축어 설정 { // Place your snippets for typescriptreact here. Each snippet is defined under a snippet name and has a prefix, body and // description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are: // $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. Placeholders with the // same ids.. 2026. 1. 12.
react-native-magic-modal 이중 모달 사용 시 첫번째 모달 닫히지 않는 이슈 / 백핸들러 안되는 이슈 해결 게시글 제목을 어떻게 써야할지도 모르겠는데 어떻게든 내가 삽질하다가 구현 완료된거를 공유하고 싶었다 우선 내가 원했던 플로우는로그인 화면 -> 회원가입 이동 -> 즉시 약관동의 바텀시트 띄움1. 약관 필수 동의 모두 체크 -> 완료 -> 회원가입 진행2. 필수 동의 미체크 -> 완료 -> 필수 체크 안내 알림 모달 띄움 -> 확인 -> 다시 1번 진행 or 뒤로가기 백핸들러 실행 -> 바텀시트 닫히고 로그인 화면 이동3. 필수 동의 미체크로 백드랍 터치 시 바텀시트 닫히지 않게 방어4. 아무것도 동작하지 않고 백핸들러 작동하면 바텀시트 닫히고 로그인 화면 이동 그런데 문제 상황은로그인 화면 -> 회원가입 이동 -> 즉시 약관동의 바텀시트 띄움1. 약관 필수 동의 모두 체크 -> 완료 -> 회원가입 진행2.. 2025. 12. 31.
react native 다양한 애니메이션 효과 사이트 https://www.animatereactnative.com/animations AnimateReactNative.com - Premium and Custom React Native animations.AnimateReactNative.com - Premium and Custom React Native animations.www.animatereactnative.com 2025. 12. 29.
초성만 검색해도 검색결과가 나오는 api https://es-hangul.slash.page/ es-hangul – es-hangul es-hangul.slash.page 2025. 12. 29.
react native 키패드 있을 때 버튼 함수 바로 실행하는 방법 로그인 화면에서 아이디와 비밀번호 input에 포커스가 되면 키패드가 열리는데키패드가 열린 상태에서 로그인 버튼을 터치하면 키패드가 먼저 닫히는 동작이 돼서 로그인 버튼을 결국 한번 더 눌러야 하는 불편함이 생긴다.이 부분은 ScrollView로 감싸서 ScrollView의 속성인 keyboardShouldPersistTaps="handled"을 추가하면 된다. 그런데 또 문제는 로그인 버튼 밑의 계정찾기와 회원가입 버튼이 있다는 것 .. !원래라면 두 버튼들도 터치 시 바로 화면 이동해도 되는데 이번 프로젝트에서는 특히 회원가입 버튼을 누르면 바로 넘기면 안됐다(는 내맘이긴 함).왜냐하면 회원가입 화면 이동 즉시 약관동의 바텀시트가 뜨기 때문이다.로그인 화면에서 키패드가 안 닫힌 채로 회원가입 이동하면.. 2025. 12. 23.
react native 컴포넌트 높이 구하기 캐러셀을 구현하다가 react-native-reanimated-carousel 라이브러리를 쓰게 됐는데이 라이브러리가 컴포넌트의 width, height값을 정적으로 주는 것 같았다.캐러셀 밑에 또 추가한 Pagination 컴포넌트를 두니 캐러셀 내부의 컴포넌트 길이가 길어지면 Pagination이 화면 밑으로 내려가서 가려지는 등의 문제가 생겼다.그래서 캐러셀의 height 값만은 꼭 동적으로 줘야했는데 이때 onLayout 속성을 사용하니 해결됐다. import Carousel, { ICarouselInstance, Pagination } from "react-native-reanimated-carousel";// 스크립트 & 스타일시트 로직 생략 const [carouselHeight, setC.. 2025. 12. 22.
eas build는 됐는데 eas submit이 안될 때 eas build로 앱 빌드 파일은 만들었는데 언제 파일 하나하나 다운 받아서 구글 스토어랑 앱 스토어 또 언제 들어가서 언제 파일 업로드 하고 있음 ? 바ㅏㅏㅏㅏㅏㅏ로 eas submit으로 라이브러리 추가 하면 되는데 ? 라고 너무 편하게만 생각했다가 며칠을 submit이 안돼서 일단 수동으로 다운 받고 올림 ㅋㅋㅋㅋㅋㅋ 계속 이렇게 살면 능률 따지는 개발자의 걸맞는 자세가 아니라고 생각돼서 이번에야 말로 해결하고자 함 ! 도대체 왜 안되는걸까 일단 submit 명령어를 치면✖ Something went wrong when submitting your app to Google Play Store.The service account is missing the necessary permissions to.. 2025. 12. 18.
expo eas update 안되는 문제 해결 / call to function expoUpdates.checkForUpdateAsync has bee rejected. caused by failed to check for update expo eas로 빌드, 스토어에 제출까진 성공했는데 update가 안되는거....업데이트 내역이 있으면 앱 작동 시 알림이 뜨게 UpdateProvider 만들어서 넣었었는데 자꾸call to function expoUpdates.checkForUpdateAsync has bee rejected. caused by failed to check for update 이 에러가 뜨면서 업데이트 안됐었다. runtime version, build number도 스토어에 등록한 것과 모두 일치했는데도 안됨 ㄷㄷㄷ며칠 고생하다가 회사에서 문제 없이 쓰는 앱의 expo 사이트 들어가서 확인 해보니update 올린 내역에 들어가서 맨 밑에 있는 Deployments 항목이 있었던 것이다. 문제가 있던 프로젝트에는 D.. 2025. 12. 18.
맥북 키보드 꾹 눌렀을 때 반복 입력 안되는 현상 해결 맥북에서 키보드를 꾹 눌렀을 때 반복 입력이 안 되는 이유는 macOS 기본 설정이 “문자 악센트 선택”으로 되어 있기 때문해결 방법 1. 터미널로 설정 변경 (가장 확실함)터미널 실행아래 명령어 입력defaults write -g ApplePressAndHoldEnabled -bool false로그아웃 후 다시 로그인또는 재부팅이후 키를 길게 누르면 정상적으로 반복 입력됨.해결 방법 2. 반복 속도 조절 (보조 설정)시스템 설정 → 키보드에서 아래 두 값 확인키 반복 속도: 빠르게반복 지연 시간: 짧게이 설정만으로는 해결 안 되는 경우가 많아서반드시 방법 1을 같이 해야 함.원래 상태로 되돌리고 싶을 때 defaults write -g ApplePressAndHoldEnabled -bool true 2025. 12. 17.
eas build 시 build number 수동으로 관리하기 / eas build number 다운그레이드 하기 빌드할때 빌드 넘버를 version 따로 설정한 파일로 수동 관리하려고 했는데 자꾸 자동 업데이트 돼서 번호가 제각각이었다.내가 설정한 빌드 넘버가 15라면 android 는 16, ios는 14 이렇게 ㅋㅋㅋㅋㅋ 휴 .....일단 급한대로 무지성으로 업데이트 했다가 이제는 도저히 회피하면 안될 것 같아서 정리하려 한다. 일단 버전 업데이트 하는 로직이 있는 파일이다. 프로젝트 최상단 루트에 만든다.//version-manager.jsconst fs = require("fs");const argv = process.argv ?? [];const versionInfo = require("./versionInfo");function incrementVersion() { versionInfo.VERSION .. 2025. 12. 8.
포크한 레포지토리에서 PR 충돌 해결하기 GitHub에서 포크한 레포지토리로 작업하다 보면, 원본 저장소로 PR을 올린 뒤 다음 메시지를 마주칠 때가 있다.“These conflicts are too complex to resolve in the web editor.”이 메시지가 뜨면 GitHub 웹에서 충돌을 해결할 수 없다는 뜻이고,반드시 로컬에서 직접 충돌을 해결한 뒤 push 해야 한다.포크에서 넘어오는 PR인 만큼 충돌 해결 방식이 일반 저장소와 조금 다르다.아래는 내가 실제로 해결한 절차를 정리한 내용이다.1. 원본 저장소를 upstream으로 등록포크한 저장소를 로컬에 클론하면 기본 remote는 origin 하나만 잡혀 있다.원본 저장소의 최신 내용을 가져오기 위해 upstream을 등록한다. // 먼저 upstream 되어 있는.. 2025. 11. 18.