2022년 11월 10일 목요일

예금 금리

네이버에서 예금이라고 검색하면 자세하게 비교 해 볼수 있음. 켁...

사이다 뱅크 파킹 통장 3.2%, 1억원까지, 그외 조건 없음.
페퍼스 파킹 통장 3.2%, 5천만원까지, 분기마다 이자 지급
케이뱅크 플러스박스 2.7%
케이뱅크 정기예금 4.6%



2022년 11월 6일 일요일

대출

보금자리론 대출자격 총정리

안심전환대출

주택금융공사 콜센터 : 1688-8114

보금자리론, 디딤돌 대출과 같은 정부상품은 입주시기가 다가올때 신청합니다.

1) 주택금융공사 사이트를 통해 신청하는 경우: (보금자리론/디딤돌)
입주민께서 분양대금을 완납하는 날짜를 기준으로 약 40일 전에 신청하시면 됩니다.

2) 수탁은행에 신청하는 경우: (디딤돌)
입주민께서 분양대금을 완납하는 날짜를 기준하여 약 2~3주 전에 은행에 방문하셔서 신청하시면 됩니다.

신규입주아파트의 경우 디딤돌대출 신청을 인터넷으로 하는지, 지점방문으로 신청하는지에 따라 기간이 다릅니다.

주택금융공사 사이트를 통해 인터넷으로 신청하는 경우 입주민께서 입주하려는 날짜를 기준으로 약 40일전에 신청하시면 됩니다.
지점 방문으로 신청하는 경우 입주하려는 날짜 기준으로 약 2~3주 전에 방문하시면 됩니다.


2022년 10월 26일 수요일

전기차

전기차 충전소 찾는 앱 : EVInfra, 모두의 충전


배터리 수명 오래가게 하려면

- 가급적 완속충전을 할 것

- 배터리 충전을 20%~80%를 유지하게 할 것. 더 좋은 방법은 30%~70%를 유지 하라고 함.


2022년 10월 20일 목요일

rsync 증분백업

검토를 해 보았으나 제가 활용하고자 하는 용도로는 적절하지 않는 것 같다.

https://notes.harues.com/posts/incremental-backup-using-rsyncssh/
https://www.linuxadictos.com/ko/rsync-como-crear-copia-seguridad-incremental.html

2022년 10월 19일 수요일

ld-linux-x86-64.so.2를 찾지 못해서 실행 안되는 문제

yocto 에서 생성한 arm-poky-linux-gnueabi-gcc 이 아래와 같은 에러가 나면서 실행이 되지 않아서 검토.

toolchain/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc
bash: toolchain/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc: No such file or directory

> ldd arm-poky-linux-gnueabi-gcc
linux-vdso.so.1 (0x00007fff18bd4000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f840e5da000)
/HDD2/work3/build/tmp/sysroots-uninative/x86_64-linux/lib/ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2 (0x00007f840e9cb000)

결론적으로는 ld-linux-x86-64.so.2 shared library가 존재하지 않는 패스를 사용하는 것이 문제 인 거 같은데 위에 메시지로 보아서는 lib64 폴더 안에 있는 것으로 치환되는 느낌이라... 애매함.

실행 방법 #1
/lib64/ld-linux-x86-64.so.2 arm-poky-linux-gnueabi-gcc
실행은 되지만 Makefile 에서 정상 작동하지 않음.

실행방법 #2
동일 폴더를 만들어서 해당 파일을 복사 또는 link 를 걸어두면 실행됨.
/HDD2/work3/build/tmp/sysroots-uninative/x86_64-linux/lib/ld-linux-x86-64.so.2

더 좋은 방법은 없을까?

2022년 10월 13일 목요일

바이너리 파일 패치 만들기

http://www.daemonology.net/bsdiff/
https://github.com/rgov/courgette-build/releases

상기 2개의 툴을 테스트 해 보았으나 목표로 하는 바이너리(50G)는 너무 용량이 커서 정상 작동하지 않음.


2022년 8월 8일 월요일

ADB Connection failed 알림 (notification) 중지 (disable)

ubuntu 18.04 사용중인데, 개발 목적으로 usb adb 연결 이후
"Connection failed" 알림이 너무 빈발하여 해당 알림을 죽이는 방법을 찾아보았다.

ubuntu settings -> Notification (알림) -> Network 에서 Notification (알림) 을 OFF 하여 해결함.

자주 사용하는 git 명령어

git status : 변경된 파일 목록을 보여줌. svn st 와 동일. default는 모든 변경된 파일을 보여줌.
"git status ./" 와 같이 경로를 지정해줘야 해당 경로 변경 파일만 보여줌.
git diff : 변경된 내용을 보여줌. svn diff 와 동일.
git rm <filename> 파일 삭제.
git rm -cache <filename> 원격 파일만 삭제.

git checkout -- <filename> : 변경 사항을 취소함. svn revert 와 동일.
git checkout . : 현재 폴더 이하의 변경 사항을 취소함.
git clean -f : untracked 파일 삭제
git clean -fd : untracked 파일 및 디렉토리 삭제

git remote -v : 원격 저장소 주소를 알려줌.
git commit -m "주석"
git commit -a : 수정된 모든파일을 add 해서 commit 진행됨.
git merge <branch> --squash
topic branch가 있었다는 정보나 커밋 로그도 모두 남지 않는다.
topic branch에서 행한 작업이 작아 1커밋으로 정리해버려도 문제가 없는 경우 사용.
git pull : 새로운 업데이트를 받음. svn up 과 동일.
가급적이면 commit 하기 이전에 pull 해서 최신버전에 작업 하는 게 좋은 것 같음.
그렇지 않으면 branch/merge가 발생해서 불필요한 merge commit 생성됨.
동일한 파일을 수정하여 충돌 상황이 발생하면 업데이트가 취소됨.

git tag <tag-name> <commit-id>
ex) git tag rel20160627 3d96f7
git log, tig : 로그 정보를 확인, 현재 tag 정보도 확인 가능.
HEAD : checkout 된 branch 의 최상위.
revision 으로 checkout 되었을 경우에는 detached HEAD 상태가 됨.
git log -g
git reflog : 리퍼런스 로그를 보여줌. HEAD의 이동이나 log에 나오지 않는 중요한 정보를 보여준다. detached HEAD의 숨겨진 커밋도 찾을 수 있다.
git log --stat : 어떤 파일이 수정됐는지, 얼마나 많이 변경됐는지 보여주고 commit과 관련된 파일을 살펴볼 수 있습니다.
git log --oneline : 하나의 커밋을 한줄로 요약해서 보여줌
git log --branches --graph --decorate --oneline : 로그를 보기 좋게 만듬
git log --name-only : 로그에서 수정된 파일을 보여줌

git config branch.autosetuprebase always
: 만약 모든 브랜치에 설정하고 싶을 경우 상기 커맨드로 설정

git branch : branch 리스트 보기
git checkout <branch name> : branch 전환
git checkout -b <branch name> : branch 생성 및 전환
git checkout -B <branch name> <tag-name or commit-id>
: <tag-name or commit-id> 기준으로 새로운 브랜치를 생성하고 전환됨.

** 간단한 수정 사항이라 merge commit 이 불필요해 보이는 경우

1. merge commit을 줄이기 위한 방법
topic branch 를 만들어서 수정 사항을 commit 하고
git pull --rebase 를 하면 working branch의 commit 을 상위로 올려줌.

2. merge commit을 줄이기 위한 방법 (repo 등을 사용하여 --rebase 옵션을 줄 수 없을 때)
branch 를 만들어서 수정한 파일을 commit 하고
repo sync 한 후에 git merge <branch> --squash 를 하면 branch 의 commit한 내용이 현재 branch 로  stage 상태(add 한 상태)로 전달되며 이후 commit, push 진행하면 됨.
merge squash 하지 않으면 바로 merge commit 이 생성됨.

3. merge commit을 줄이기 위한 방법 (방법 2에서 branch를 만들고 싶지 않을 때)
수정한 파일을 commit 하고, repo sync 한 후에 git reflog 명령어로 이전 commit-id 를 알아냄.
git merge <이전 commit-id> --squash 를 하면 이전에 commit한 내용이 현재 branch 로 stage 상태(add 한 상태)로 전달되며 이후 commit, push 진행하면 됨.

git 사용 도중 프로그램이 비정상 종료되어 아래와 같은 에러 메시지 출력 시 해결 방법
Another git process seems to be running in this repository, e.g. an editor opened by 'git commit'. Please make sure all processes are terminated then try again. If it still fails, a git process may have crashed in this repository earlier: remove the file manually to continue.

git 명령어 사용 시 위와 같은 메시지가 나오면 index.lock 파일을 삭제한다.
rm -f .git/index.lock

--------------------------------------------------------------------------------------
.gitignore로 쓸모 없는 파일은 무시할 수 있다

gitignore는 Git이 인식하는 특수한 파일이다.
안에 적힌 폴더/파일들은 마치 없는 취급을 해서 내 파일 상태가 깨끗해 진다.

GitHub 저장소를 만들 때 설정하면 편하다.
원하는 .gitignore 검색해서 넣어줘도 괜찮다.

(주의) 이미 Track된 파일들은 나중에 .gitignore파일을 추가해도 무시되지 않는다.
이땐 index를 초기화해주면 해결된다. 내가 작업 중인 Git 저장소의 루트 디렉토리(최상위 디렉토리)에서 git rm -r --cached .명령어를 써서 index를 초기화할 수 있다.

--------------------------------------------------------------------------------------


2022년 5월 23일 월요일

repo


repo init은 repo를 현재 폴더에 설치하는 명령어. .repo폴더를 만들어서 안에 Git의 저장소를 넣게 된다. 또한 manifest.xml을 포함하게 되어서 이 .repo/manifests에 심볼릭 링크로 연결되어 있다.

option-u : manifest repository의 url을 지정한다.

-m: 저장소에서 manifest file을 선택할 수 있다. 어떤 manifest 이름도 선택되지 않으면 default.xml을 선택하게 된다.
-b: revision을 선택하게 된다. 예를 들어서 특정 manifest-branch를 선택하게 된다.




repo sync 사용법 및 option

repo sync -c -j4

c : 현재 manifest에 설정된 branch 의 소스만을 sync함
j : job number (쓰레드를 몇 개 사용)
d : 지정된 프로젝트를 manifest revision으로 변경한다. 만약 프로젝트가 현재 topic branch인데, 임시로 manifest revision이 필요할 경우에 유용하다.
s: 현재 manifest에 있는 manifest-server element를 통해서 지정된 가장 좋은 빌드와 동기화 한다.
f : 프로젝트가 fail 하더라도 다른 프로젝트들과 동기화를 계속 이어간다.



repo sync는 변화되었거나 업데이트 된 파일들을 내 환경에 다운로드 한다. 어떤 인자도 포함하지 않고 실행하게 된다면, 모든 프로젝트에 대한 파일들을 받게 된다.


repo sync 실행 시 동작하는 것은 아래와 같다.
프로젝트가 처음 동기화 되는 것이라면, repo sync는 git clone 과 동일하게 동작하게 된다. 모든 branch 들이 local 프로젝트 디렉토리에 카피 되게 된다.
이미 한번 동기화가 동작했었다면 repo sync는 git remote update와 gir rebase origin/BRANCH를 실행한 것과 동일하게 동작한다고 생각하면 된다.
만약 git rebase operation의 결과가 merge 를 하면서 충돌로 나타난다면, Git commands를 통해서 충돌 문제를 해결해야 한다.

repo sync가 성공적으로 마무리되면 최신의 코드가 저장되게 된다.




출처
https://source.android.com/source/using-repo.html
https://bluelight.tistory.com/221
https://sincenwhile.tistory.com/entry/repo-init-sync-%EC%98%B5%EC%85%98%EB%93%A4

2022년 5월 20일 금요일

리눅스 멀티 코어(쓰레드) 압축 및 해제

sudo apt install pigz pbzip2 pxz

pigz (gzip)
pbzip2 (bzip2)
pxz (xz, lzma)
pxz 가 압축률을 가장 좋을 것이라 판단함.

압축 하기
> tar -I pigz -cvf abc.tar.gz abc/
> tar -I pbzip2 -cvf abc.tar.bz2 abc/
> tar -I pxz -cvf abc.tar.xz abc/

압축 풀기 (풀때는 쓰레드 하나만 사용하는 것 같음)
> tar -I pigz -xvf abc.tar.gz
> tar -I pbzip2 -xvf abc.tar.bz2
> tar -I pxz -xvf abc.tar.xz


"진행률-Linux에서 (cp, mv, dd, tar 등) 명령에 대한 진행률을 모니터링 하는 작은 도구"

"이전에 Coreutils Viewer로 알려진 Progress는 시스템에서 현재 실행중인 cp, mv, tar, dd, gzip/gunzip, cat, grep 등과 같은 coreutils 기본 명령을 검색하고 복사 된 데이터의 비율을 표시하는 가벼운 C 명령입니다. "", Linux 및 Mac OS X 운영 체제에서만 실행됩니다."

"또한 예상 시간 및 처리량과 같은 중요한 측면을 표시하고 사용자에게 "최고 수준"모드를 제공합니다."

"/proc 파일 시스템에서 흥미로운 명령을 완전히 스캔 한 다음 디렉토리를 검색하여 열린 파일을 찾고 위치를 찾고 광범위한 파일에 대한 상태를 보고합니다. 매우 가벼운 도구이며 거의 모든 명령과 호환됩니다."

설치 방법
sudo apt install progress

도움말
progress -h

모니터링 실행 (자주 사용하는 옵션)
progress -m <Ctrl+C> 호출하면 종료됨

출처
https://ko.linux-console.net/?p=1882

2022년 4월 28일 목요일

Ubuntu - VirtualBox Extension Pack 설치 오류

VirtualBox 확장 패키지 설치 시 아래와 같은 오류가 발생하는 경우가 있었다.

Progress state: NS_ERROR_FAILURE
VBoxManage: error: Failed to uninstall "Oracle VM VirtualBox Extension Pack"
VBoxManage: error: The installer failed with exit code 1: VBoxExtPackHelperApp: error: The owner is not root: '/usr'
VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component ExtPackManagerWrap, interface IExtPackManager
VBoxManage: error: Context: "RTEXITCODE handleExtPack(HandlerArg*)" at line 1465 of file VBoxManageMisc.cpp

error: The owner is not root: '/usr' : 해당 라인을 주목해야 한다.
/usr 폴더의 owner를 root로 변경해줘야 한다. 언제부터 root가 아니었을까??
답을 이미 알려 주고 있었는데 엄한 곳을 삽질했음. ㅋ

아래와 같이 커맨드 라인 명령어로도 설치가 가능하다.
$ sudo VBoxManage extpack uninstall "Oracle VM VirtualBox Extension Pack"
$ sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-6.1.34.vbox-extpack

2022년 1월 13일 목요일

GIT remote url 변경

https로 git clone된 폴더가 있다면, git remote url-set 명령어로 ssh로 변경이 가능하다.

git remote 확인 명령어
$ git remote -v

remote 주소 변경하기
$ git remote set-url origin git@github.com:{git-user-name}/{RepositoryName}.git

git remote add 하기
$ git remote add origin git@github.com:{git-user-name}/{RepositoryName}.git

!! 당연한 얘기지만 새로운 디렉터리를 생성하고 새롭게 remote 하기전엔 git init 진행 후 해주세요 !!

GIT 계정 여러 개 사용하기

git config list 보기 : git config -l

첫번째 방법.

우분투(리눅스)를 기준으로 작성된 글입니다.
폴더 별로 다른 git 계정을 사용할 수 있게 설정할 수 있습니다.

만약 git 계정을 private, office 란 이름으로 구분으로 하고 싶다면,
~/.gitconfig 파일에 아래와 같은 형태의 구문을 파일 제일 아래에 추가합니다.
[includeIf "gitdir:~/office/"]
  path = .gitconfig-office
[includeIf "gitdir:~/private/"]
  path = .gitconfig-private

.gitconfig-office 파일에서 사용할 git 계정을 아래와 같이 추가합니다.
github가 아니라면 github 항목은 생략하셔도 됩니다.
[user]
  email = john@abc.co.kr
  name = john
[github]
  user = john

.gitconfig-private 파일도 동일하게 작성하시면 됩니다.

또한 .gitconfig 항목에 계정 정보를 넣으시면 모든 폴더에서 사용 하실 수 있습니다.
물론 위에 includeIf 로 기술된 폴더는 제외됩니다.
.gitconfig 에 기술 되는 항목은 global 하게 적용이 됩니다.

두번째 방법.

특정 repo 폴더에서 아래와 같은 명령어로 해당 repo 에서 만 사용하는 계정을 설정 할 수 있습니다.

git config --local user.name "john"
git config --local user.email "john@abc.co.kr"

2022년 1월 10일 월요일

백그라운드 터미널 (tmux, screen)


Tmux 사용법

sudo apt install tmux

명령 프롬프트에서 tmux new -s session_name
원하는 프로그램을 실행하세요.
키 시퀀스 Ctrl-b+ d를 사용하여 세션에서 분리합니다.
tmux attach-session -t session_name 를 입력하여 Tmux 세션에 다시 연결합니다

Windows 11 세팅

기존에 리눅스만 깔아서 사용중인 삼성컴퓨터에서 Windows 11을 설치 후 정품인증이 되지 않았다. Windows 10을 설치 하여도 여전이 정품인증이 되지 않았다. 이 컴퓨터는 윈도우를 깔아본 적이 없다. 에러코드는 0xC004F213, 윈도우 제...