전체 글 15

[INSTALL_FAILED_NO_MATCHING_ABIS: INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113] 오류 해결

F-Droid에서 안드로이드용 VLC 앱을 다운 받아서 adb로 설치하려고 했을 때 발생했다. 여러 가지 원인이 있을 수 있지만, 내 모바일 환경과 다른 아키텍처의 앱을 설치하려고 할 때 이 오류를 마주쳤다.원인을 알았으니 해결법은 간단하다. 자신의 모바일 아키텍처에 맞는 앱을 받아서 설치하면 된다. 스마트폰 아키텍쳐는 보통 armeabi-v7a, arm64-v8a 두 가지가 있으며, 간단히 32비트, 64비트라고도 부른다.특정 시점을 기준으로 arm64-v8a만 나오기 때문에, arm64-v8a용 앱을 받으면 된다.확실하게 확인하려면 adb shell getprop ro.product.cpu.abi를 입력해서 나오는 결과를 보면 된다. 결과값: arm64-v8a / armeabi-v7a 출처: htt..

안드로이드 2026.04.14

ssh 비밀번호 로그인 막기 (key만 사용)

보안을 위해, 비밀번호를 이용한 ssh 로그인을 막고 key pair만 이용하도록 하는 설정 방법이다.중요! 이 설정을 마치고 적용까지 한 후에는 ssh private (secret) key 외에는 접속할 수가 없습니다.반드시 별도의 shell을 열어서 ssh 로그인이 정상적으로 되는지 확인한 후에 마지막 ssh 세션을 닫으세요!ssh key 발급 및 설정법은 여기와 여기를 참고.1. 편집기로 설정 파일 열기/etc/ssh/sshd_config를 nano든 vim이든 본인에게 편한 편집기로 sudo 권한으로 연다.2. 설정 파일 수정하기여러 기본 설정 내용이 뜰 텐데, "Pass"라는 문자열을 검색해서PasswordAuthentication no를 설정하면 된다.노파심에 덧붙이자면, 앞에 #이 붙은 것들..

Linux 2026.04.07

Debian, Ubuntu 랩탑 닫아도 절전 모드 안 들어가게 하기

랩탑을 클램쉘 모드로 쓰거나, ssh로 접속하는 원격 서버로 쓰고 싶은 사람을 위한 설정법이다.1. 편집기로 설정 파일 열기/etc/systemd/logind.conf를 nano든 vim이든 본인에게 편한 편집기로 sudo 권한으로 연다.2. 설정 파일 수정하기여러 기본 설정 내용이 뜰 텐데, "Lid"라는 문자열을 검색해서3개의 줄에 suspend 대신에 ignore를 설정해주면 된다.노파심에 덧붙이자면, 앞에 #이 붙은 것들은 주석이니까우리가 설정하는 것은 #을 빼고 작성해야 한다!(전략)HandleLidSwitch=ignoreHandleLidSwitchExternalPower=ignoreHandleLidSwitchDocked=ignore(후략)3. 설정 파일 적용하기Debian의 다른 많은 설정들처..

Linux 2026.04.06

Adguard Home 설치 시 문제 해결

53번 포트가 이미 사용 중일 경우리눅스의 기본 DNS 설정을 비활성화sudo systemctl disable systemd-resolvedsudo systemctl stop systemd-resolved 필요에 따라 아래 명령어도 실행sudo mv /etc/resolv.conf /etc/resolv.conf_backecho "nameserver 1.1.1.1" | sudo tee /etc/resolv.conf 1.1.1.1은 cloudflare의 DNS로서, 정말 가끔 가다 터지는 것 빼고는 엄청난 속도를 자랑함.나는 Adguard Home의 업스트림 DNS로도 저길 설정한다.

Linux 2026.03.27

nginx: [alert] kill(648371, 1) failed (3: No such process) 오류 해결

nginx가 비정상 종료되어, 얘가 기록해서 알고 있는 자신의 pid와 실제 구동되는 nginx의 pid가 다를 때 발생하는 오류다.여기저기 검색한 끝에, "nginx -T | grep pid" 를 입력했더니 아래와 같이 떴고,nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successfulpid /usr/local/nginx/logs/nginx.pid;혹시나 해서 "/usr/local/nginx/logs/nginx.pid"를 열어보니 숫자가 들어있었는데,이게 "ps -aux | grep nginx"..

Linux 2026.01.30

우분투에서 자주 쓰는 tar에 대한 간단 정리

우분투에 기본적으로 tar이 설치돼있고 zip/unzip은 apt install로 따로 설치해야 하기 때문에, 우분투 환경에서는 tar을 애용하는 편이다. 이 글에서는파일 묶기를 위한 tar cf파일 압축을 위한 tar cfz묶은 파일 풀기를 위한 tar xf에 대해 설명한다.묶기 (아카이빙)tar cf (묶음 파일명) (...묶을 대상(들))c = Createf = File(name)tar은 압축하는 것이 아니라, 폴더 계층 구조에 맞게 한 파일로 묶어놓는 명령어이다.그래서 "압축"이 아니라 "묶기"라고 적었다. (원문 표현은 archive여서 참고용으로 병기했다.)출력 파일명의 확장자는 어떤 것이든 무관하고, 아예 없어도 된다.다만, 받아보는 사람이 알아보기 쉽게 .tar로 붙이곤 한다.예1) tar..

Linux 2025.04.17

우분투(리눅스)에서 발급 받은 ssh키 활용하기 1 - 원격지 ssh 연결

이전 글에서 이어집니다: 우분투(리눅스)에서 ssh키 발급 받기 ssh키를 발급 받았으니, 이걸 활용해보자. 원격지 설정원격지에 ssh키를 이용해 접속하고자 할 때는, 원격지에서의 설정이 먼저 필요하다.a. 우선, ssh 연결이 닿는 곳이라고 가정하고 scp 명령어로 ssh 키페어 중 공개키(.pub)를 송신하자.(여기서는 8022 포트로 통신하기 위해 -P 옵션을 넣었다.)b. 원격지에 들어가서, cat (퍼블릭 키) >> ~/.ssh/authorized_keys 를 입력한다. ssh 연결을 하려는 클라이언트 중 해당 공개키와 페어를 이루는 비밀키로 접속 시도하는 걸 허용해주는 작업이다.여기까지 하면 원격지의 설정은 끝난다. 이제 아래와 같이 입력하면 이제 비밀번호 없이 원격지 접속이 가능하다!ssh ..

Linux 2025.02.26

우분투(리눅스)에서 ssh키 발급 받기

발급 방법은 굉장히 쉽다.터미널에서, ssy-keygen을 입력&엔터 후, 엔터를 3번 더 하면 완료된다.이렇게 하면 ~/.ssh 폴더에 비밀키인 id_rsa와, 공개키인 id_rsa.pub 파일이 생성된다.이름에서 알 수 있듯이, 비밀키는 유출되어선 안 되고, 공개키는 어디에 공개되든 무관하다. 간단하게 사용하려면 여기서 멈추고, id_rsa 페어를 사용하면 된다. 더 깊게 알아보고 싶다면, 위에서 엔터 3번 눌러서 건너뛰었던 설정들에 대해서 알아보겠다. 1. Enter file in which to save the key (/home/balatro/.ssh/id_rsa):비밀키와 공개키의 파일명을 지정하는 부분이다. 지정하지 않으면 기본적으로 id_rsa라는 이름으로 생성되지만, 이미 id_rsa 페..

Linux 2025.02.13

useQuery의 re-fetch 시 data의 동작과, 이전 값 유지하기

useQuery는 기본적으로 re-fetch 시마다 data가 undefined로 바뀐다.이게 문제가 되는 상황을 직면하게 됐는데, 한 페이지 안에서 re-fetch를 할 때다.위의 예시에서는, 버튼을 누를 때마다 데이터를 새로 받아오게 되는데, 데이터가 캐시되기 전, 새로운 데이터를 받아올 때마다 "자료를 불러오는 중…"이 떠서 좋지 않은 사용 경험을 줄 수 있다. (받아오고 렌더링하는 데이터의 양이 많아서 페이지가 긴데, 버튼을 누를 때마다 확 줄어들었다가, 다시 확 늘어나는 게 반복된다고 생각해보자.) 그래서 나는 화면이 마구 바뀌기보다, 재요청한 데이터가 수신 완료됐을 때 바뀌면 좋겠다고 생각했다.사실 걱정이 앞섰다. '"아 useQuery 그렇게 쓰는 거 아닌데~" 하며 onSuccess, on..

React.js 2024.11.12

[TypeScript] TypeScript에서의 Array.at 내장 메서드

들어가기 전에: ES2022에 추가된 .at() 내장 메서드에 대해 설명합니다.또한, 타입스크립트에 대한 부분부터는 tsconfig.json에 최소한 아래의 설정이 들어가있는 것을 전제로 합니다. 자바스크립트에서 배열의 요소에 접근할 때는 주로 대괄호에 인덱스를 넣어서 한다.이를 테면 아래와 같다.const arr = [1,2,3,4,5];console.log(arr[2]) // 3 출력console.log(arr[6]) // undefined 출력 이 방식으로 배열의 뒤쪽에 있는 요소에 접근하려면, 다들 아시다시피 아래처럼 배열의 길이를 이용해서 길고 지루하게 코드를 작성해야 한다.const arr = [1,2,3,4,5];console.log(arr[2]) // 3 출력console.log(arr[a..

TypeScript 2024.09.11