본문 바로가기
반응형

개발 프레임워크56

[Flutter] 앱 빌드버전, apk 파일 앱 빌드버전 다른 사람한테 공유할 때 apk 파일 만들기 안드로이드 스튜디오에서 플러터를 사용하여 개발하고 출시전 apk파일로 다른 사람한테 공유할 때 apk 파일을 추출하는 방법은 다음과 같다. 1. 안드로이드 스튜디오 상단바에 Build를 클릭한다. 2. Flutter 선택 후 Build APK 파일을 선택하면 된다. 3. APK 파일의 다운로드 위치: StudioProjects\flutter_app\build\app\outputs\flutter-apk 4. 이를 압축하여 다른 사람한테 공유하면 된다. 2023. 5. 28.
[Flutter] SharedPreferences 기능 및 사용법 앱에서 간단한 DB역할을 할 수 있는 SharedPreferences란? SharedPreferences는 기기 내부 디스크에 내용을 저장한다. 이것을 사용하는 이유는 앱이 종료되도 이전에 사용한 내용들을 저장해놓고 불러오기 위하여 많이 사용된다. 1. 데이터가 Key-Value형태로 저장되게 됩니다. 2. 저장될때는 파일 입출력을 사용하기 때문에 사용량이 많을 경우엔 DB와 연동하는 것이 낫다. 3. 팝업창을 '다음에 보지않기' 라는 체크 박스를 저장하는 정도의 간단한 데이터만 저장합니다. 4. 다른 플랫폼에서는 이와 같은 기능을 웹에서는 캐시, 아이폰에서는 UserDefaults, 안드로이드에서는 SharedPreferences라는 개념으로 말합니다. 설치 dependencies: flutter: s.. 2023. 5. 23.
[Next.js] 컴포넌트에 props로 useState값 넘기기 컴포넌트를 재사용하기 위해 분리시켜 props를 넘겨 제어할 때 useState를 props 넘겨줘야 하는 상황이 온다. * useState는 state의 초기값을 정할 수 있고, return 값으로 state, setState를 돌려주는 hook이다. 예를 들어 아래와 간은 DatePicker UI를 컴포넌트방식으로 만든다고 하자. 예제 코드는 다음과 같다. 1. 이번달의 첫 날과 마지막 날을 선언해주고 각각의 DatePicker로 전달할 useState값 또한 초기화 한다. const firstFormat = dayjs().startOf("month").toDate(); const lastFormat = dayjs().endOf("month").toDate(); const [selectedDate1,.. 2023. 5. 15.
[Next.js] Module parse failed: Shorthand property assignments are valid only in destructuring patterns, [js] SyntaxError: Invalid shorthand property initializer [Next.js] Module parse failed: Shorthand property assignments are valid only in destructuring patterns 에러 [js] SyntaxError: Invalid shorthand property initializer 에러 아래와 같이 객체 안에서 c = 3으로 선언하였을 경우의 코드가 존재하였을 경우 x = { a:1, b:2, c=3 } console.log(x) [Next.js]에서의 에러창 ./src/main.tsx Module parse failed: Shorthand property assignments are valid only in destructuring patterns (62:34) File was processe.. 2023. 4. 19.
[Next.js] undefined, null strict모드 해제 tsconfig.json의 compilerOptions내부의 strictNullChecks를 false로 설정해주면 된다. "compilerOptions": { ... "strictNullChecks": false, ... } 2023. 4. 14.
[Nextjs] client의 IP주소를 가져와 비교하여 특정 IP주소에서만 홈페이지 이용을 허용 [Nextjs] client의 IP주소를 가져와 비교하여 dev, qc서버를 허용하고 싶은 IP 주소 (ex. 회사 IP주소 or 집 IP 주소)가 아니라면 리다이렉트하기 1. Next.js에서 client의 IP주소를 가져오는 방법 axios.get("https://geolocation-db.com/json/").then((res) => { console.log(res?.data?.IPv4); }); 출력값 "내가 사용하고 있는 IP주소가 string 형태로 출력" 2. router를 사용하여 외부주소로 리다이렉트하는 방법 import { useRouter } from "next/router"; const router = useRouter(); router.push("redirect하고 싶은 주소");.. 2023. 4. 3.
[js] 유한수인지 판별하는 isFinite() 메소드 [js] 유한수인지 판별하는 isFinite() 메소드 정리 isFinite() 전역 함수는 주어진 값이 유한수인지 판별합니다. 필요한 경우 매개변수를 먼저 숫자로 변환한다. 문법 isFinite(testValue); 매개변수 ( testValue ) 유한한지 판별할 값이다. 반환 값 testValue가 양 또는 음의 Infinity, NaN, 또는 undefined면 false, 아니면 true가 출력된다. 예제) console.log( isFinite(Infinity), isFinite(NaN), isFinite(-Infinity), isFinite(0), isFinite(2e64), isFinite(-910), isFinite(null), isFinite('0') ); Infinity, NaN, -.. 2023. 3. 30.
[Next.js] window is not defined, document is not defined 1. Next.js에서 window is not defined, document is not defined가 출력되는 이유 1. Next.js는 서버측에서 움직이는 SSR(Server Side Rendering)과 클라이언트 측에서 움직이는 CSR(Client Side Rendering)을 수행하는 프레임워크이다. 2. document, window 두 객체는 클라이언트 측에서만 정의되는 전역 변수이다. 3. 서버측에서 Redeing을 할 때, 코드를 읽으면서 document와 window 두 객체를 읽을 수 없기 때문에 window is not defined, document is not defined 두 error가 출력된다. 4. 따라서 document, window를 쓴다면 서버쪽에서 docume.. 2023. 3. 29.
[Next.js] <Link> 태그 사용 Next.js에서 URL 혹은 경로이동을 할 때, Link 태그 사용 pages 하위 디렉토리 구조일 때 pages/index.js pages/about.js pages/blog/[slug].js import Link import Link from 'next/link' 사용하는 방법 // pages/index.js Home // pages/about.js About Us // pages/blog/[slug].js Blog Post Link의 props정리 필수 값 1. href ... 이동할 경로 혹은 URL을 입력한다. 옵션 값 1. as ... 브라우저의 주소창에 표시될 URL을 입력한다. 2. passHref (기본값: false) next Link에서 하위 컴포넌트로 href 속성을 전달해주는 역.. 2023. 3. 27.
[MongoDB, NestJS] DB 트랜잭션을 이용한 자원소비 코드 [NestJS, MongoDB] DB 자원(임계구역)에 동시접근할 때, 트랜잭션을 이용해 자원소비 제어 코드 Why? 1. DB자원이 0이하로 내려가지 않게 백엔드에서 구현한다. (자원이 0이하면 소비할 수 없고 Error처리) 2. 하지만 트랜잭션을 걸어주지 않는다면 DB 임계구역에 있는 자원에 동시에 접근하여 소비하여 자원이 동시에 -2가 되어 자원이 -1이 되는 경우가 있다. 이를 해결하기 위해 트랜잭션을 걸어주는 코드이다. (동시에 접근하는 것을 방지한다) async spendResource() { const session = await this.model.db.startSession(); session.startTransaction(); try{ // 자원이 없으면 예외처리 추가 부분 (roll.. 2023. 3. 26.
반응형