코드와 커피를 좋아합니다. 커피 한 잔 어떠신가요 ☕
- 🏠 서울에 살고 있습니다.
- 🔭 프리윌린에서 프론트엔드 개발자로써 즐겁게 일하고 있습니다.
- 😍 혼자보다 같이, 어제보다 내일을 위해 개선하려 노력합니다.
프로젝트를 진행하면서 있던 오류와 해결을 기록하는 repo
4.1일 출석앱 버그에 대한 사후부검
GlobalEventHandlers
GlobalEventHandlers - Web API | MDN
"globaleventhandler" | Can I use... Support tables for HTML5, CSS3, etc
onClick
ontouchstart
이벤트 → React에서 합성이벤트로 지원하는 경우 onTouchStart
사용ontouchstart
는 모바일에서 켜는 웹의 경우 지원되는 이벤트
- 참고 - mdn & caniuse
[Touch events - Web API | MDN](https://developer.mozilla.org/ko/docs/Web/API/Touch_events)
✨ What?
발견된 이슈 간단히 정리하기
어떻게 Mobx에서 Observable한 값을 관리를 할까?
📚 캡쳐한 사진들
✨ What?
발견된 이슈 간단히 정리하기
📚 캡쳐한 사진들
Ex)
clock.svg -> clock.tsx 변환
#!/bin/bash
# svg filename 받기
echo "Enter the svg filename: "
read svgFileName
echo "echo $svgFileName"
# svg 파일명 만들기
type=".svg"
svgFile=$svgFileName$type
echo "echo $svgFile"
# svg 파일에 접근해서 안에 정보를 가지고 오기
svgValue=`cat $svgFile`
echo "value $svgValue"
# 새 tsx 컴포넌트 파일명 만들기
newFileName=$( echo ${svgFileName}"_icon" | perl -pe 's/(^|_)./uc($&)/ge;s/_//g')
newFile=$newFileName".tsx"
echo $newFile
# tsx 컴포넌트 파일에 script 넣기
cat > $newFile <<EOF
import { s } from './icon.style'
import React from 'react'
import { IconProps } from '../iconProps'
export const $newFileName = React.forwardRef<SVGSVGElement, IconProps>(
({ size = 16, name = 'icon', color, style, ...props }: IconProps, ref) => {
return (
$svgValue
)
}
)
EOF
# svg 에 있는 width="xx", height="xx", fill="xx" 제거하기
sed -i "" 's/width="24"//g' $newFile
sed -i "" 's/height="24"//g' $newFile
# svg 에 props 넣어주기
sed -i "" 's/fill="none"/\ncss={s}\nstyle={{ width: size, color, ...style }}\ndata-svg-name={name}\n{...props}\nref={ref}/g' $newFileName.tsx
# index.ts 에 tsx export 추가하기
newFilePath="export { $newFileName } from './$newFileName' "
echo $newFilePath >> index.ts
# 원본 svg 제거하기
rm -rf $svgFileName".svg"
# ------------------
# - 참고
# https://wikidocs.net/33828
# https://codechacha.com/ko/shell-script-substring/
Code Pipeline 설정시
Phase context status code: YAML_FILE_ERROR Message: mapping values are not allowed in this context at line 2
AWS Code Pipeline 셋팅 예제하면서, 해당 에러 발생하면서 오류남.
웹뷰 프로젝트를 진행하기 앞서서 신경쓸 것들 정리
플랫폼(안드로이드, IOS) 지원범위
기획의 중요성
네이티브 개발자와 소통
우선은 이정도
NextJS에서 build시, /component 아래에 있는 파일들이 /public아래에 있는 이미지들을 찾지 못하는 현상이 발생하고 있다.
image를 불러오기 쉽게 next-images를 쓰고있는데 이쪽에 문제가 있지 않나 추측을 우선 해본다.
✨ What?
발견된 이슈 간단히 정리하기
사내에서 쓰는 CRA + CRACO를 Vite로 변환하기
📚 캡쳐한 사진들
ERROR 1045 (28000): Access denied for user 에러 발생
password를 분명히 맞게 입력했는데, 해당 에러 발생
해결
위 해결책이 있었으나, 그 동안 mysql 공부한걸 복습할 겸 지우고 다시 설치함
Homebrew 를 이용한 mysql 설치
현재 웹 매쓰플랫 프로젝트 구조는
이렇게 구성되어있다.
문제가 되는건, API에서 일어난 에러 처리를 위해 UI에서 처리해야하는 것들이 몇가지 보이는데, 어떻게 처리하는게 좋을지 질문을 받았다.
(Ex - 로그인 요청시 서버에서 http error처리 외에, 따로 주는 에러메세지와 code들)
그동안에는 UI와 api 두개로만 분리를 해서 try catch를 통해 바로 처리를 했는데,
이렇게 layer가 분리된 프로젝트에서는 에러가 어디 층에서 난 것인지 확인이 쉽지 않아보였다.
✨ What?
발견된 이슈 간단히 정리하기
회사 내부에서 진행중인 웹 프로젝트를 진행하고 있다. IOS도 대응을 안하고 있는데, 유저 요청건중 1등이 해달라는 이슈여서, 잠깐 살펴보았다.
다행히 UI가 크게 뒤틀리거나 그러진 않아서 살짝살짝 수정하고 마무리 된 상황 + 하는김에 PWA도 적용시켜서 해볼까 해서 시작하게 되었다.
📚 캡쳐한 사진들
원인 : Application을 재배포 하기 위해 작업 후 빌드 중,
구글 플레이 스토어에 배포전에 어플리케이션에 서명하는 keystore를 삭제해버림
결과 : 복구 불가능이라서, 새로운 어플리케이션으로 배포함.
react-native-cli: 2.0.1
pod --version : 1.8.4
react-native: 0.61.5
React native 개발 셋팅하기 따라하던 중, IOS관련 설치가 불가능하고 실행이 안됨.
error Could not find "Podfile.lock" at /Users/kangseunghun/Desktop/ksh/sample/ios/Podfile.lock. Did you run "pod install" in iOS directory?
AWS codepipeline, codebuild로 SPA 자동배포하기
해당 예제를 보면서 따라하는 중, 마지막에 빌드 후 결과물이 배포 버킷에 들어가지 않는 문제 발생.
흠.. 뭐가 문제일까.. 글을 다시한번 정독해봐야겠다.
✨ What?
발견된 이슈 간단히 정리하기
Github 인증이 ID/PW 가 사라지고 personal access token으로 인증해야 함.
EC2에 git clone 후 배포시, private한 레포는 인증이 안되 git clone이 실패하는 이슈
📚 캡쳐한 사진들
✨ What?
발견된 이슈 간단히 정리하기
Nested Array 안에서 value가 변경되었을 떄, 해당 input을 손 댔는지 비교하는 isDirty
, dirtyFields
값이 제대로 동작하지 않음
📚 캡쳐한 사진들
aws s3에 배포자동화 셋팅을 해두었는데, webpack 번들링하면서 고유한 이름의 파일들을 생성하고 있었다.
푸시 및 빌드할 떄마다 새로운 파일들을 추가하고, 이전에 빌드한 파일들을 지워야 해서 찾아보던중,
aws s3 remove문서를 참고해서 buildspec.yml을 수정하였으나 build가 실패해버림 ㅠ
[AWS] AWS Codebuild에서 JS heap out of memory 로 인한 빌드 실패 - 해당 건에 대해서 찾아보던중에, Icon.tsx가 왜이렇게 많이 용량을 잡아먹는지 궁금해졌다. 이미지 파일이지만 그래도 이렇게 많이 잡아먹나?
- AllowedMethods - 허용되는 요청
aws s3
cors option guide
aws cloudfront
✨ What?
발견된 이슈 간단히 정리하기
3주전 스토리북 컴포넌트를 추가 작업한 뒤, 나중에 확인하려니 갑자기 안된다는 이슈가 들어와서 확인중.
최근에 몇몇 패키지 업한것만 있는데, 거기서 부터 확인해봐야 할듯 함.
📚 캡쳐한 사진들
MySQL 8.0 - Client does not support authentication protocol requested by server; consider upgrading MySQL client 에러 발생
검색해보니 8버전의 문제인듯함.
코드리뷰중에 나온 동료 개발자의 개선방안을 보고, 의문점이 들어서 찾아보기로 함.
stackoverflow 링크
개발 스킬 : React-native / Mobx / Typescript
Runtime Error: Expected a constructor 발생
mobx스토어 연결을 하지 않으니 에러가 생기지 않는 것으로 보아 mobx에 문제가 있다고 판단함.
✨ What?
발견된 이슈 간단히 정리하기
📚 캡쳐한 사진들
Mobx에서 상태관리를 통해 값을 observable하게 관리하고 가져다 쓸 수 있다. React와 같이 쓴다면 어떻게 React Component가 알고 view에서 보여줄 수 있을까??
증상 : React-native run-ios 후 정상적으로 빌드되지 않고 Error 발생
Error를 읽어보면, Yoga에 문제가 있는것 같다.
package.json
{
"name": "menu",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node node_modules/react-native/local-cli/cli.js start",
"test": "jest",
"ios": "react-native run-ios",
"android": "react-native run-android"
},
"dependencies": {
"react": "16.8.3",
"react-native": "0.59.8",
"react-native-firebase": "^5.4.0",
"react-native-gesture-handler": "^1.2.1",
"react-navigation": "^3.11.0"
},
"devDependencies": {
"@babel/core": "^7.4.5",
"@babel/runtime": "^7.4.5",
"@types/react": "^16.8.18",
"@types/react-native": "^0.57.60",
"@types/react-navigation": "^3.0.7",
"babel-jest": "^24.8.0",
"jest": "^24.8.0",
"metro-react-native-babel-preset": "^0.54.1",
"react-test-renderer": "16.8.3",
"typescript": "^3.2.2"
},
"jest": {
"preset": "react-native"
}
}
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.