Solve Problem 134

dayjs.tz() 사용 시 주의할 점: timezone 등록 (Android Hermes)

react native에서 날짜 관련 코드를 다룰 때, dayjs 라이브러리를 사용하고 있다. 등록되지 않은 timezone 한국 시간으로 고정시켜주고 싶어서 다음 코드를 사용했는데, import dayjs from 'dayjs'; import DayJSUtc from 'dayjs/plugin/utc'; import DayJSTimezone from 'dayjs/plugin/timezone'; dayjs.extend(DayJSUtc); dayjs.extend(DayJSTimezone); const time = dayjs.tz("2023-02-17 09:00:00", "Asia/Seoul"); RangeError: com.facebook.hermes.intl.JSRangeErrorException: Inv..

🎨아스키 아트를 아시나요? :: 텍스트와 특수문자만으로 사진,그림 흉내내기

아스키 아트 : 텍스트와 특수문자만을 조합하여 사진,그림,텍스트를 흉내내는 것을 말한다. : 이모티콘도 문자로 그림을 표현하는 점에서 아스키 아트의 일종이다. ex) -__- , :) 알아두면 재밌는 아스키 아트! 적절한 곳에 이용해보자.. 우리 회사에서 일하셨던 서버 개발자님은 로컬 서버를 켤 때 이 아스키 아트를 이용하셨다. 서버 켤 때마다 괜히 기분 좋음~😁😁 그렇다면 어떻게 만들까? 아래 사이트에서 다양한 폰트로 만나볼 수 있다. 아스키 아트 생성기 사이트👇 https://textkool.com/ko/test-ascii-art-generator?text=Your%20text%20here%20 Test ~330 fonts Ascii 아트 생성기 | TextKool 복사 및 붙여 넣기 Ascii 아트..

Github Action 오류 해결 : InvalidParameterValue

첫번째 InvalidParameterValue 오류 An error occurred (InvalidParameterValue) when calling the UpdateEnvironment operation: Environment named xxx is in an invalid state for this operation. Must be Ready. 환경 상태가 ok가 아닌 다른 상태면 github action 도중 오류가 나는 것 같다. 사진처럼 ok 상태일 때 배포를 다시 진행해보자! 두번째 InvalidParameterValue 오류 An error occurred (InvalidParameterValue) when calling the UpdateEnvironment operation: No Ap..

에러해결: PayloadTooLargeError: request entity too large

AWS 로그를 뜯어보던 중... 다음 에러를 발견했다. PayloadTooLargeError: request entity too large 그대로 구글링하니 해결법은 쉬웠다. 파싱하려는 데이터의 크기가 너무 크기 때문에 생기는 에러이며, 파싱할 수 있는 최대치를 늘려주면 해결된다. 기본은 100kb인데, 50mb까지 늘려주었다. import { urlencoded, json } from 'body-parser'; app.use(json({ limit: '50mb' })); app.use(urlencoded({ limit: '50mb', extended: true })); body-parser란? - 요청의 본문을 해석해주는 미들웨어다. - post, put 요청 메소드의 request.body를 읽어올 ..

[ReactNative] KeyboardAvoidingView 안에 여러 TextInput을 사용할 때 offset 맞지 않는 문제 해결

[ReactNative] KeyboardAvoidingView 안에 여러 TextInput을 사용할 때 offset 맞지 않는 문제 해결 하나의 KeyboardAvoidingView 안에서 여러 TextInput을 사용하면 keyboardVerticalOffset이 첫 TextInput에 맞춰 세팅되어, 키보드 높이가 다른 TextInput을 만나게 되면 KeyboardAvoidingView 본래의 목적을 충족시키지 못하는 현상이 발생한다. 코드는 이렇고, {isStep1 && ( )} {isStep2 && ( )} {isStep3 && ( )} 현상은 이렇다. 분명 공식문서 에는

Prefill Google Form Input Dynamically : 구글폼 설문 답변 미리 채우기(동적으로)

아래와 같은 구글폼을 작성하여 대상자들에게 링크를 공유할 때, 특정 답변은 미리 채워놓은채로 공유하고 싶을 때가 있다. 예를 들어 "안다희"라는 사람이 이 구글폼을 들어오면, 이름 란에 "안다희"가 미리 채워넣어져 있어야 한다. 우선 아래링크 대로 따라해서 미리 채워진 답변의 링크를 얻는다. https://support.google.com/a/users/answer/9308781?hl=ko 미리 채워진 답변의 링크 얻기 짠! 👇 https://docs.google.com/forms/d/e/1FAIpQLSdCm49VsH0-8GqkhE6rBKPkD3B0o_Ai5djyBxbVnZ7SWgUsow/viewform?usp=pp_url&entry.2005620554=%EC%95%88%EB%8B%A4%ED%9D%AC ..

[React Native] 가로의 길이가 바뀌는 디바이스(폴드) 대응: Dimensions -> useDimensions

[React Native] 가로의 길이가 바뀌는 디바이스(폴드) 대응: Dimensions -> useDimensions 루빗(루틴 관리 서비스 어플) 유저중에는 당연히 갤럭시 폴드 사용자도 있다.종종 해당 유저들로부터 버그제보가 들어온다. 디바이스를 접거나 펴면 화면이 그에 맞게 대응되지 않는다는 것. 직접 버그를 재현해보았다. 정말이었다. 접은 상태: A / 편 상태: B라고 하겠다.A에서 B로 바뀌었는데, 하단 탭바는 여전히 A에 맞게 대응되어 있다. 이유가 무엇일까? 바로 Dimensions에 있다./* 👎 Bad*/import { Dimensions, View } from 'react-native';const width = Dimensions.get('screen').width;const T..

중첩된 Promise<Promise<T>>를 조심해!

async await 을 함수에서 리턴을 할 때 주의할 점이 있다. Bad 사례처럼, 이미 async가 붙은 함수에서는 리턴값 가장 바깥에 Promise가 붙기 때문에,리턴값은 Promise가 붙으면 안된다. updateUserGoalVisible = async ( goalId: number, visible: boolean, ): Promise => { /* 👎 Bad 이미 async가 붙었기 때문에 리턴값은 순수한 Goal이어야 하는데, this.prisma.goal.update({}) 를 리턴함으로써 리턴값은 Promise이 되어버린다. 그래서 이 함수의 최종 리턴값은 Promise> 이 되는 것이다. */ return this.prism..

Apollo Client query 시 주의점 (variables)

상황 query에 요구되는 variables가 있는데, 항상 같은 값으로 보내면 refetch되지 않는다. 같은 값으로 보냈던 이유: readQuery로 캐시 사용 위해 -> 캐시 사용을 포기하고 variables를 항상 다른 값으로 보낸다. 1️⃣ : 값이 항상 동일해서 refetch해도 query call 처리가 안된다? 2️⃣ : 값이 항상 달라지기 때문에 refetch하면 query call 처리가 잘 된다. 원인 1. apollo 라이브러리의 결함 또는 2. 프로젝트 내 apollo 설정 문제? (cache도 가끔 제대로 업데이트되지 않는데, 다른 프로젝트에서는 cache가 잘만 동작한다.) 어쨌든, 2️⃣로 하니까 해결됐음! const [query, { loading, data }] = use..

출처: https://mingos-habitat.tistory.com/34 [밍고의서식지:티스토리]