목록전체 글 (388)
만족
현재 시간 기준으로 타겟SDK가 31 미만인 경우 업데이트 제출이 불가능하다. 추후 또 기준이 변경되면 올리고 문제찾고 해야하는데 이것이 귀찮기 때문에.. 이번에 33까지 한번에 올렸다. 아니나다를까 오류가 우수수 쏟아졌는데 하나씩 해결법을 설명하겠다. kaptDefaultsDebugKotlin ... InvocationTargetException Execution failed for task ':app:kaptDefaultsDebugKotlin'. > A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction > java.lang.reflect.Inv..
요약 맥에서 mx keys시리즈 키보드에서 f1~f2가 눌리지 않는 현상은 카라비너(karabiner)등의 키 맵핑 유틸리티와 충돌을 일으켜 발생하는 문제다. 해당 유틸리티에서 mx keys mini에 대한 매핑 정보를 날려주면 된다. https://m.blog.naver.com/bzwon/221953747472 로지텍 MX Keys - Karabiner Elements 설정 로지텍 MX Keys 리뷰 포스팅 링크 본 포스팅은 OSX 사용 환경에서 로지텍 MX keys의 한/영 전환 설... blog.naver.com
시간없어서 일단 참고링크만 걸어두고 나중에 작성할 예정 https://medium.com/@niraj_prajapati/automate-android-app-publishing-on-play-store-using-github-actions-554de7801c36 Automate Android App Publishing on Play Store using GitHub Actions In this post, I’ll show how I managed to automate android app publishing on Play Store. medium.com https://github.com/r0adkll/upload-google-play/issues/127 Error: Invalid value at 'tra..
웹 서버를 구성할 때 가장 간단하면서 흔한 LAMP Stack(Linux, Apache, Mysql, Php)를 사용하고 별다른 설정을 하지 않았다면 이 포스트가 도움이 될 것이다. 기본적으로 prefork기반의 mpm을 사용하게 되는데, prefork방식은 요청 1개가 프로세스 1개에 대응되기 때문에 사용자가 늘어날 수록 메모리 사용량이 급증한다. (30~40%정도의 메모리를 사용하고 프로세스의 갯수도 매우 많다) 나 역시 이 문제를 해결하기 위해 event기반 mpm으로 변경했다. mpm은 어떤 종류가 있을까? 종류별로 어떤 장단점이 있을까? 어떻게 변경할 수 있을까? 한번 알아보자 Apache mpm prefork (기본값) 프리포크 방식은 한 개의 프로세스가 한 개의 연결을 처리한다. 아파치 설치..
2600x+b350m 쓰다가 5600x로 올렸는데 바이오스 업뎃하면서 설정이 날아가가지고 램타이밍값을 다시 잡기 어려웠다. 왜냐면 18년도에 램값개비쌀때 싼거 하나 집어온거라 국민오버도 안먹는 개뿔딱 게일램이기 때문이다. 뭔짓을해도 2933클럭 위로는 먹지를 않는데, 너도 뿔딱이라면 아래 값으로 한번 3200에 도전해보기 바란다. 설정값 램타이밍: 18-20-20-20-40 램클럭: 3200Mhz 램전압: 1.25V 램전압은 맨날 1.3, 1.35주다가 라이젠은 오히려 전압을 낮게 줬을때 오버가 잘먹는다는 글을 봐서 1.25로 해봤더니 잘되더라~
apache mpm을 prefork에서 event로 변경하면서 php 모듈도 변경했는데 해당 작업 이후 발생한 문제이다. Uncaught Error: Call to undefined function apache_request_headers() ... 원인 기존의 apache php 모듈을 제거하고 php-fpm을 대신 활성화해서 apache_request_headers() 함수가 지원되지 않는다. apache-php 연결 모듈에 따라 지원 여부가 갈린다. + 이것도 좀 웃긴게 php 공식 문서에서도 어떤 페이지는 모듈 연결 방식에 상관없이 모두 된다고 하고 또다른 페이지에서는 안된다고 나온다. + 정확한 것은 php_info()를 호출해서 지원되는 환경 변수들을 체크해보면 알 수 있다. 당연하게도 apa..
./node_modules/react-simple-wysiwyg/lib/index.es.mjs Can't import the named export 'createContext' from non EcmaScript module (only default export is available) 원래 잘 됐는데 github action에서 빌드 중 위와 같은 오류가 발생했다. https://github.com/megahertz/react-simple-wysiwyg GitHub - megahertz/react-simple-wysiwyg: Simple and lightweight React WYSIWYG editor Simple and lightweight React WYSIWYG editor. Contribute ..
배경 현재 redux와 swr를 동시에 사용 중이다. redux는 설정 값이나 검색 기록 등의 로컬에서만 다루는 상태들을 관리하는데 사용하고 있고, swr에는 서버로부터 받아온 데이터(상태)를 관리하는데 사용하고 있다. 기존에는 swr를 사용하지 않고 redux만을 사용해 모든 전역 상태를 관리했었지만, 캐시 관리 등의 문제로 서버에서 받아오는 데이터는 swr로 이관한 상태였다. 그러나 redux의 높은 복잡성과 swr의 단순함을 보면서 로컬 값도 swr로 관리하면 안될까 하는 생각을 하게 되었다. redux의 라이프사이클에서 알 수 있듯 보면 redux에서 새로운 상태를 다루고자 할 때 새로운 state를 정의하고 그 상태의 변화를 일으킬 때 필요한 action과 reducer를 만들고 store에 통..
http://item.gmarket.co.kr/detailview/item.asp?goodscode=2469911941 노트북 ₩735,000 갤럭시북2 NT550XEZ-A58A 최종57만 인텔12세대 대학생추천 인강용 교육용 사무용 item.gmarket.co.kr 한가위 세일때 57만원에 구매한 2022년형 갤럭시북 2이다. 스펙시트는 이렇다. 딱 보급형 사무용 노트북 스펙이다. 디자인은 나름 나쁘지 않다고 생각한다. 플라스틱 바디로 되어있어 무게를 줄이려고(+ 원가절감) 한것 같긴 한데, 1.8kg라 그래도 무겁다. 두께 역시 18.5mm로 두꺼운 편이다만, 두꺼운 덕분인지 포트 구성이 나름 다양하다. 입력 포트는 HDMI, USB3.2, USB2.0, USE C(2개), 랜, 오디오가 있다. 특히..
https이 적용된 상태에서만 정상 작동하는 동작들이 있다. 이 포스트에서는 로컬에서 https를 적용하는 방법을 알아본다. 아이디어 우리가 https 가 적용된 웹사이트에 접속할 때 어떤 일이 일어날까? https://nuritech.tistory.com/25 HTTPS 통신 원리 쉽게 이해하기 (Feat. SSL Handshake, SSL 인증서) 이 글을 쓰게 된 이유는,, 나의 평소 HTTPS 에 대한 지식은 HTTPS 가 암호화된 네트워크 통신 프로토콜이고 HTTPS 를 사용한 네트워크 통신에서는 주고받는 패킷을 까도 데이터가 암호화되어 있어 안 nuritech.tistory.com 암/복호화 부분을 제외하고 살펴보면 1. 서버가 클라이언트에게 인증서를 제시 2. 클라이언트는 인증 기관(CA)에..
결론만 보고싶다면 스크롤 맨밑으로 ㅎㅎ.. 현재 apache+express 조합으로 서비스를 운영중이다. client가 request를 보냈을 때 express project까지 도달하는 과정은 위와 같다. 그런데 express에서 req.ip 값을 확인하니, 전부 127.0.0.1로 찍혀 있었다. 왜 그럴까? 사실 express의 관점에서는 앞단에서 아파치가 프록시를 해주고 뭐고 그런건 관심없고 apache가 express에게 request를 보내는 것으로 인식된다. 따라서 자기 자신에게 포트 번호만 바꿔서 보내는 것으로 작동하므로, 요청 ip가 127.0.0.1로 찍히는 것이다. req.ip express의 req.ip는 어떻게 구현되어 있을까? expressjs https://github.com/e..
지난 포스트에서 jest, eslint를 적용해봤다. 그렇다면 이 스크립트를 커밋 전 실행해서 안전한 코드일때만 허가할 수는 없을까? https://www.npmjs.com/package/husky husky Modern native Git hooks made easy. Latest version: 8.0.1, last published: 13 days ago. Start using husky in your project by running `npm i husky`. There are 2316 other projects in the npm registry using husky. www.npmjs.com husky 허스키를 사용하면 githooks 스펙을 손쉽게 사용할 수 있다. https://git-s..
https://jestjs.io/docs/getting-started Getting Started · Jest Install Jest using your favorite package manager: jestjs.io 설치 yarn add --dev jest devDependency에 jest를 추가한다 yarn jest --init 초기 설정이 필요한 경우(browser 환경, typescript 사용 등) 위 커맨드를 이용한다. 테스트 코드 작성 // index.js // object[key] value is not null? const requireValues = (object, keys = []) => { let result = true; keys.map(key => { if (!object[ke..
top 명령어를 사용하면 실행 중인 nodejs 프로세스는 다음과 같이 표시된다. 별도의 부가 정보 없이 node로만 표시되기 때문에 정확히 어떤 스크립트가 실행되고 있는지는 알 수 없다. ps -aef | grep node 이 명령을 이용하면 실행 중인 node 프로세스의 상세 정보를 함께 보여준다 (윈도우 계열에서는 사용할 수 없다) 마지막 행에 node프로세스가 실행중인 스크립트 정보가 표시된다. (정확히는 node 프로세스 실행 시 사용한 커맨드 전체가 출력된다) 첫 행이 pid이므로, 종료할 프로세스가 있는 경우 그 node 프로세스가 어떤 스크립트를 실행하는 것인지 확인한 후 kill 커맨드를 이용해 종료할 수도 있다.
nodejs 환경에서 개발하다 보면 오타 등으로 인한 syntax error 가 발생하는 일이 잦다. const foo= ''; fooo.split('1'); // fooo is not defined 가령 이런 코드는 당연히 오류가 나지만, 실행 전에 알아차릴 수 있는 오류임에도(fooo가 정의되지 않음) 적극적으로 알려주지 않는다. 그래서 추후 오류가 발생하면 코드를 한줄한줄 읽어 내려가면서 찾곤 하는데 여간 쓸데없고 재미없는 일이 아니다. Eslint eslint를 사용하면 문법 오류를 사전에 알려주고, 심지어 자동으로 수정해줄 수도 있다. 예를 들어 위의 오류 코드에 eslint를 적용하면 오류를 하이라이팅해줄 뿐만 아니라 일부 규칙에 어긋나는(foo의 경우 선언 후 사용되지 않음)구문까지 잡아낼 ..
Uncaught Error: A is only ever to be used as the child of element, never rendered directly. Please wrap your in a . 갑자기 를 로 감싸라는 오류가 출력됐다. 그런데 Mac환경에서는 정상 작동하다가 플랫폼을 옮기니 이 오류가 발생해서 의아했다. 원인과 해결 react-router 6버전부터 로 를 감싸는게 강제되었기 때문이다 return ( ) 버전 5까지는 위처럼 작성할 수 있었지만 버전 6부터는 아래처럼 작성해줘야 한다 return ( ) Mac에서는 됐던 이유? package.json에 react-router의 버전이 latest로 되어있었기 때문이다. 과거 5버전이 최신 버전일때 설치하고 package.loc..
지난 번 작성했던 github action이 됐다 안됐다 한다. 아예 터져버리는것도 아니고 queued상태로 몇시간째 있으니 답답하기만 하다. 원인 https://stackoverflow.com/questions/71027513/all-github-action-jobs-are-queued-and-never-running all github action jobs are queued and never running Updated: 2~3days After, my job is failed automatically with below message I have some trouble all github action jobs are queued and never executed. I have checked Git..
https://satisfactoryplace.tistory.com/106 [React] scp명령어를 이용한 배포 간소화 현재까지 배포 과정은 다음과 같았다. 1. yarn build 입력 후 빌드 대기 2. FTP클라이언트를 켠 후, build폴더 내용을 원격 서버에 복사 터미널에 yarn build후, 다른 창으로 이동하여 작업을 이어나가야 satisfactoryplace.tistory.com 이전에 배포 간소화를 위한 스크립트 작성법을 소개했었다. 그러나 매번 deploy 스크립트를 입력하는 것과, test code가 통과되는지를 확인하는 점이 번거로웠다. 또 scp 명령어에서 pem키를 입력으로 받는데 여러 환경에서 작업하다 보면 pem키를 옮겨오는 것도 일이라서 다른 방법을 찾아보기로 했다. ..
바탕 화면에 있는 것을 누르거나, 뭐 직접 explorer.exe를 실행시키면 문제되지 않지만, 작업 표시줄의 탐색기 아이콘을 누르면 explorer(파일 탐색기 뿐만 아니라 작업 표시줄에도 관여하는 프로세스)가 마치 꺼졌다 켜지듯이 동작한다. 뭐 찾은 해결법에서는 레지스트리를 등록, 삭제해라... 시스템 스캔을 해라... 이미지 복구를 해라.... 아무 소용도 없어서 2일동안 스트레스 왕창받다가 결국 MS 포럼(영문)에서 답을 얻었다. https://techcommunity.microsoft.com/t5/report-an-issue/windows-11-taskbar-file-explorer-crashes/m-p/3150492 Windows 11 Taskbar File Explorer crashes Hi..
npm run build후 결과물로 번들링된 javascript가 출력된다. 이 bundle의 크기가 크면 SEO의 단점인 '첫 로딩 속도'가 부각되므로, 번들 사이즈 관리는 매우 중요하다. 그렇다면 이 번들 사이즈가 얼마나 큰지, 또 어떤 부분을 점검해야 하는지 어떻게 알 수 있을까? webpack-bundle-analyzer를 사용하면 번들에서 어떤 요소가 얼마나 용량을 차지하는지를 알 수 있다. 설치 yarn add -D webpack-bundle-analyzer webpack-bundle-analyzer를 설치한다. webpack 설정을 건드려야 하기 때문에, eject 하지 않았다면 해준다. yarn eject /config/webpack.config.js에서 맨 위에 const BundleAn..