2024년 1월 30일 화요일

구글링의 고수가 되는 검색 트릭 14

구글링의 고수가 되는 검색 트릭 14

구글은 생각보다 많은 기능을 가진 검색엔진이다. 이제까지 구글 검색을 잘 활용해 왔다고 생각하는 사람들 중 구글의 기능을 다 꿰고 있는 사람은 많지 않을 것이다.

허핑턴포스트가 세계에서 가장 유명한 검색 엔진을 효율적으로 활용하는 방법을 소개한다. 단 몇 개의 키만 입력하면 누구보다 빠르고 쉽게 구글링을 할 수 있다.
 
"Define"을 앞에 붙여라
상황: 단어 게임을 하는데, 어떤 바보가 "야, '파나케이아(panacea: 만병통치약)라는 단어는 없어!"라고 말한다.
해결방법: 찾으려고 하는 단어 앞에 "define"을 붙여라. 그러면 곧장 사전적 정의가 뜬다.

정확한 순서의 단어를 찾아라
상황: 인용문을 하나 찾으려는데, 원래 문장이 뭔지 모르겠다면?
해결방법: 찾으려는 문장에 직접 인용부호 " " 를 붙이면 쉽게 검색이 된다.




마크 트웨인의 명언이 정확히 기억나지 않는다면? 따옴표를 붙여라!
연관 단어를 찾아라

상황: '대체 에너지(alternative energy)'에 대해 검색하고싶은데, '재생에너지(renewable energy)'와 같은 수많은 동의어도 함께 찾고 싶다.

해결방법:검색어 앞에 ~ 를 붙여라. 연관된 문서들을 찾을 수 있다.





특정 단어를 배제하라

상황: '효모(yeast)'라는 단어가 들어가지 않은 제빵 방법(bread recipes)을 검색하고 싶다.

해결방법: 검색할 단어(bread recipes)를 입력한 다음, 배제하고 검색할 단어(yeast) 앞에 마이너스 표시 (-)를 붙인다.





특정 가격 범위 내에서 찾아라

상황: 특정 가격 범위에 속하는 디지털 카메라를 찾고 싶다

해결방법: 검색어를 입력한 후 최저 가격과 최고 가격 사이에 마침표를 두 개(..) 찍는다. 날짜 범위를 설정해 검색할 때도 똑같은 방법이 적용된다. 특정 날짜 대에 발행된 기사를 찾을 때 유용하다.





특정 웹사이트의 컨텐츠를 찾아라

상황: 허핑턴포스트에서 넬슨 만델라에 대한 재밌는 기사를 읽었다. 그런데 기사를 쓴 사람이나 제목이 기억나지 않는다.

해결방법: "site:" 뒤에 찾고자 하는 웹사이트의 주소를 넣은 다음 검색어를 입력한다. 허핑턴 포스트에서 넬슨 만델라의 기사를 찾고 싶다면 "stie:huffingtonpost.com nelson mandela"를, 허핑턴포스트코리아에서 브라질 월드컵에 대한 기사를 찾고 싶다면 "site:huffingtonpost.kr 브라질 월드컵"을 검색창에 치면 된다.





빈칸을 채워라

상황: 예전에 팝락스(Pop Rocks)라는 입에서 톡톡 튀기는 캔디와 '무엇'을 섞으면 '어떻게 된다'는 말을 들은 거 같은데, 기억이 안 난다.

해결방법: 모르겠는 부분에 별표(*)를 대신 넣어라. 구글이 가능성있는 단어를 찾아줄 거다. (한글도 똑같이, "콜라에 *를 넣으면"으로 검색할 수 있다.)





특정 파일 형태를 찾아라

상황: 1920년대 미국 슬랭(속어)에 관한 PPT(파워포인트 프레젠테이션) 파일을 찾고 싶다.

해결방법: 검색어 뒤에 "filetype: PPT"를 붙인다. (한글도 똑같이, "지방선거 filetype:PPT" 이렇게 검색할 수 있다. txt, ai, psd 등도 가능하다)





타이머를 설정해라

상황: 머리도 좀 식힐 겸 유튜브에서 동영상을 보며 놀고 싶다. 하지만 정신 못 차리고 계속 빠져있긴 싫다.

해결방법: "set timer for"을 검색창에 치면 구글 타이머가 뜬다. 원하는 시간을 시, 분, 초 단위로 설정할 수 있다. 시간이 다 되면 "삐삐삐" 알람 소리가 난다.





수학 기능을 써라

상황: 수학실력이 젬병이거나, 혹은 꽤 잘하지만 복잡한 계산을 해야 한다면?

해결방법: 검색창에 방정식을 입력하면 구글이 알아서 계산해준다. 예를 들어 3200의 30%를 알고 싶다면? "30% of 3200"을 치면 된다.





환전 기능을 써라

상황: 태국에 여행갈 일이 있는데 달러로, 혹은 원화로 얼마 가져가야 하는지 모르겠다.

해결방법: "현재 가지고 있는 화폐", "to", "바꿀 화폐"를 차례로 입력한다. 예를 들어 원화를 바트로 바꾸려면 "wons to baht"를 입력하면 된다.





GIF를 찾아라

상황: 예전에 봤던 GIF(일명 움짤)인데, 어떻게 'GIF'파일만 찾는지 모르겠다.

해결방법: '구글 이미지'에 들어가서 'Search tools'를 클릭한다. 그다음 검색어를 입력하고 'Type'에서 'Animated'를 선택한다.





제목으로만 찾아라

상황: 미국 부통령 조 바이든(Joe Biden)의 '졸업앨범'을 찾고 싶다.

해결방법: "intitle:" 다음에 "졸업앨범(yearbook)"을 입력하고 "조 바이든(Joe Biden)"을 더한다. 그러면 "졸업앨범"이 제목으로 들어간 조 바이든의 사진을 우선으로 찾아준다. 또 다른 예로, '타코 만들기'를 검색하고 싶다면 "intitle: 타코 만들기"를 입력하라. "intitle:" 명령어는 바로 뒤에 온 단어만 인식한다. 그래서 제목에 "타코", 내용에 "만들기"가 들어간 문서를 찾아준다. "타코" "만들기" 두 단어가 모두 들어간 제목을 찾고자 할 땐 "allintitle:"을 쓰면 된다.





구글을 회전시켜라

상황: 친구를 놀리고 싶다.

해결방법: "do a barrel roll"를 입력하고 엔터키를 눌러라!






2024년 1월 19일 금요일

Android Studio

단축키

단축키 변경 위치
File > Settings > Keymap
Based on GNOME keymap

리눅스에서는 numeric keypad 쪽 방향키가 먹지 않는다.
Up, Down, Left, Right 키를 찾아서 마우스 오른쪽 클릭
-> "Add keyboard shortcut" 메뉴를 사용하여 keypad 방향키를  추가한다.
Up과 Up with Selection도 같이 설정 할 것.

Ctrl + B, Ctrl + 마우스 클릭 : define, reference 로 이동
Ctrl + Alt + 좌/우 방향키 : 이전 커서 위치로 가는 단축키 (윈도우)
Alt + Shift + 좌/우 방향키 : 이전 커서 위치로 가는 단축키 (리눅스)
* 2022.3.1 버전, 리눅스에서 해당키가 작동하지 않아서 Ctrl + Shift + 좌/우 방향키로 변경하였음.
  Keymap - Main Menu - Navigate - Back/Forward 수정
Ctrl + Alt + H : 함수 호출 경로

Ctrl + Shift + A : Find in Action 찾고 싶은 기능을 영어로 입력하면 기능과 단축키가 나열된다.
단축키를 찾을 때 환경 설정의 keymap 으로 들어가는 수고를 줄여준다.
Ctrl + F3 : Find word at Caret
Shift 두번 : 모든 항목에서 찾기
Ctrl + N : 클래스 이름으로 찾기
Ctrl + Shift + N : 파일 이름으로 찾기
F12 : Open Module Settings
Ctrl + F12 : 클래스 함수를 보여줌.

F4 : [Open Module Settings]
Ctrl+Alt+Shift+S : Project Structure
Ctrl + / or Ctrl + Shift + / : 주석 처리

깃허브 외부라이브러리 적용하기

2024년 1월 18일 목요일

Visual Studio Code (vscode)

Extention 설치
Active File in Status Bar
현재 활성화 파일의 전체 경로를 왼쪽 아래에 있는 상태 표시 창에 보여준다.

테마 변경
File -> Preference -> Settings
Workbench -> Appearance -> Color Theme : Dark High Contrast

단축키 변경
File > Preferences > Keyboard shortcuts
Find previous : F3
Find next : F4
View: Open Previous Editor : Alt + LeftArrow
View: Open Next Editor : Alt + RightArrow
workbench.action.closeActiveEditor : Ctrl + F4

Go Back : Ctrl + Alt + minus(-)
Go Forward : Ctrl + Shift + minus(-)
Go Back : Ctrl + Shift + Left Arrow
Go Forward : Ctrl + Shift + Right Arrow (vscode와 통일하기 위해서 변경함)
Go Back in Navigation Locations (workbench.action.navigateBackInNavigationLocations)
: 이전 Navigation 위치로 이동. Ctrl+Alt+Back 로 키 맵핑
Go to Last Edit Location : Ctrl + K, Ctrl + Q
"Go Back"과 "Go Back in Navigation Locations"의 차이점은 없는 것 같다.

{
  "key": "ctrl+alt+-",
  "command": "workbench.action.navigateBack",
  "when": "canNavigateBack"
}

{
  "key": "ctrl+alt+backspace",
  "command": "workbench.action.navigateBackInNavigationLocations"
}

유용한 단축키
명령 팔레트: Ctrl + Shift + P
모든 명령은 연관된 키 바인딩과 함께 명령 팔레트에 있습니다. 키보드 단축키를 잊어 버린 경우 명령 팔레트를 사용하여 찾을 수 있습니다.

File: Open Recent : Ctrl + R

File > Preferences > Keymaps 에서 다른 에디터의 keyboard map 으로 변경 가능.
아쉽게도 "source insights"는 없었다.

열편집 방법
SHIFT + 오른쪽 화살표 키로 문자열을 선택한 상태에서 ALT 키를 추가로 누르고 화살표 아래 키를 눌러서 열을 선택

DISABLE MINIMAP
minimap에 대고 마우스 오른쪽 눌러서 disable 할수 있다.

DISABLE PREVIEW
File -> Preferences -> Settings [Ctrl + ,] then "workbench.editor.enablePreview": false
VSCode에서 파일을 저장할 때 라인 끝에 공백을 제거하는 설정을 사용하려면 다음과 같이 하실 수 있습니다:

1. **파일 > 기본 설정 > 설정** 또는 단축키 `Ctrl` + `,`를 눌러 설정 창을 엽니다.

2. 우측 상단 메뉴에서 **열린 편집기 설정**(Open Settings (JSON)) 아이콘(조그만 아이콘, 갖다대면 설명이 나옴)을 클릭하여 `settings.json` 파일을 엽니다.

3. 설정 파일에 다음의 코드를 추가합니다:

   ```json
   "files.trimTrailingWhitespace": true
   ```

   만약 이미 `settings.json` 파일에 다른 설정이 있다면, 쉼표로 구분하여 여러 설정을 넣어주어야 합니다.

   ```json
   {
       "files.trimTrailingWhitespace": true,
       // 다른 설정...
   }
   ```

4. 파일을 저장하고 VSCode를 재시작하면 설정이 적용됩니다.

이제 파일을 저장할 때마다 라인 끝에 있는 공백이 제거됩니다. 이 설정은 모든 파일에 적용되며, 파일마다 공백 제거를 원하지 않는 경우, 해당 파일을 저장하기 전에 일시적으로 설정을 비활성화할 수 있습니다.

yocto


https://tutorialadda.com/yocto/how-to-do-clean-build-in-yocto-project


2024년 1월 14일 일요일

Docker



동작중인 컨테이너 확인
docker ps

모든 컨테이너 확인
docker ps -a

컨테이너 모두 삭제
docker rm `docker ps -a -q`

컨테이너 삭제
docker rm [컨테이너id], [컨테이너id]

현재 이미지 확인
docker images

이미지 삭제
docker rmi [이미지id]

컨테이너를 삭제하기 전에 이미지를 삭제할 경우

-f 옵션을 붙이면 컨테이너도 강제삭제
docker rmi -f [이미지id]

Docker 컨테이너를 중지하는 방법은 다음과 같습니다:

  1. 명령 줄 또는 터미널을 엽니다.
  2. 현재 실행 중인 컨테이너의 세부 정보를 얻으려면 다음 명령을 입력합니다: docker ps
  3. 여러 컨테이너가 있는 경우, 중지하려는 컨테이너의 ID 또는 이름을 식별하고 복사합니다.
  4. Docker 컨테이너를 중지하려면 다음 구문을 사용합니다: docker stop <container_id>

여기서 <container_id>는 Docker 컨테이너의 ID입니다123. 이 명령을 실행하면 해당 ID의 컨테이너가 중지됩니다2. 이 방법으로 Docker 컨테이너를 중지할 수 있습니다.

참고로, Docker 컨테이너를 삭제하려면 먼저 컨테이너를 중지해야 합니다2. 그런 다음 docker rm <container_id> 명령을 사용하여 컨테이너를 삭제할 수 있습니다3. 이때 <container_id>는 삭제하려는 Docker 컨테이너의 ID입니다3.


두 개의 디렉토리를 맵핑하려면 -v 옵션을 두 번 사용하면 됩니다1. 예를 들어, 호스트의 /path/on/host1 디렉토리를 컨테이너의 /path/in/container1 디렉토리에, 그리고 호스트의 /path/on/host2 디렉토리를 컨테이너의 /path/in/container2 디렉토리에 맵핑하려면 다음과 같이 명령을 실행합니다:

docker run -v /path/on/host1:/path/in/container1 -v /path/on/host2:/path/in/container2 ...

이렇게 하면, 컨테이너 내부에서 /path/in/container1/path/in/container2 디렉토리를 통해 호스트의 /path/on/host1/path/on/host2 디렉토리에 접근할 수 있습니다1.

참고로, 이 방법은 Docker 컨테이너 사이에도 디렉토리를 공유하는 데 사용할 수 있습니다2. 이 경우, 한 컨테이너가 호스트의 디렉토리를 마운트하고, 다른 컨테이너가 그 디렉토리를 마운트하여 공유할 수 있습니다2.


docker run은 Docker에서 가장 중요하고 자주 사용되는 명령어 중 하나입니다123. 이 명령어는 Docker 이미지를 기반으로 새로운 컨테이너를 생성하고, 그 컨테이너에서 특정 명령을 실행합니다12453.

기본적인 형식은 다음과 같습니다2:

docker run (<옵션>) <이미지 식별자> (<명령어>) (<인자>)

여기서 <이미지 식별자>는 필수이며, 이미지 ID나 리파지토리(repository):태그(tag)를 사용할 수 있습니다2.

docker run에는 다양한 옵션들이 있습니다23. 주요 옵션들은 다음과 같습니다:

이러한 옵션들을 사용하여, Docker 컨테이너를 다양한 방식으로 실행할 수 있습니다23.


Docker 이미지를 다른 컴퓨터로 옮기는 방법은 다음과 같습니다:

  1. Docker 이미지를 tar 파일로 저장합니다:
docker save -o <tar 파일을 생성할 경로> <이미지 이름>
  1. 생성된 tar 파일을 원하는 방법(예: USB, 네트워크 공유 등)으로 대상 컴퓨터로 복사합니다12.
  2. 대상 컴퓨터에서 Docker 이미지를 로드합니다:
docker load -i <이미지 tar 파일의 경로>

위의 명령어에서 <tar 파일을 생성할 경로>는 tar 파일을 저장할 경로, <이미지 이름>은 Docker 이미지의 이름, <이미지 tar 파일의 경로>는 tar 파일의 경로를 나타냅니다12.

참고로, Docker 이미지의 이름 대신 이미지 ID를 사용할 수도 있지만, 이 경우 로드된 이미지가 태그를 유지하지 않으므로 이미지에 태그를 추가하는 추가 단계가 필요할 수 있습니다1. 이를 위해 docker tag 명령을 사용할 수 있습니다1.


Docker 컨테이너에 새 볼륨을 추가하려면 다음 단계를 따르십시오:

  1. Docker 컨테이너를 중지합니다:
docker stop <container_name>
  1. 필요한 경우 새 볼륨을 생성합니다:
docker volume create <volume_name>
  1. 업데이트된 실행 명령을 사용하여 컨테이너를 다시 실행합니다. 이때 --volume 플래그를 추가하여 소스 볼륨과 대상 위치를 설정합니다:
docker run -d --name <container_name> --volume <volume_name>:/path/in/container <image_name>

위의 명령어에서 <container_name>은 Docker 컨테이너의 이름, <volume_name>은 Docker 볼륨의 이름, /path/in/container는 컨테이너 내의 대상 경로, <image_name>은 Docker 이미지의 이름을 나타냅니다12.

참고로, Docker Compose를 사용하고 있다면, 볼륨 구성은 설정 파일을 통해 처리되므로 이 과정을 더 쉽게 자동화하고 추적할 수 있습니다1. 이 경우, docker-compose.yml 파일에 볼륨을 추가해야 합니다1. 그런 다음, Docker Compose의 서비스를 재시작할 수 있습니다1.


2024년 1월 10일 수요일

"File "/usr/bin/repo", line 51 def print(self, *args, **kwargs): ^ SyntaxError: invalid syntax" 에러 해결 방법은?

이 에러는 Python 2에서 Python 3의 문법을 사용했기 때문에 발생하는 것으로 보입니다1. Python 2에서는 print가 함수가 아니라 문장이므로, Python 3에서처럼 *args**kwargs 인자를 사용할 수 없습니다1.

리눅스 커맨드에 현재 아이디 값을 넣고 싶다면...

리눅스에서 현재 사용자의 아이디 값을 얻으려면, whoami 또는 id -un 명령어를 사용할 수 있습니다. 이 값은 스크립트나 다른 커맨드에서 사용할 수 있습니다.

예를 들어, 현재 사용자의 홈 디렉토리에 있는 파일을 나열하려면 다음과 같이 할 수 있습니다:

ls /home/$(whoami)

또는

ls /home/$(id -un)

여기서 $(whoami) 또는 $(id -un)은 현재 사용자의 아이디를 반환하고, 이 값은 /home/ 경로에 추가되어 전체 경로를 형성합니다. 이렇게 하면 ls 명령어가 현재 사용자의 홈 디렉토리에 있는 파일을 나열하게 됩니다.

이와 같이 $() 구문은 리눅스에서 괄호 안의 커맨드를 먼저 실행하고 그 결과를 사용하는 방법입니다1. 이를 '커맨드 치환’이라고도 합니다. 이 기능은 스크립트 작성이나 복잡한 커맨드를 만드는 데 매우 유용합니다.

참고로, 이러한 방법은 리눅스와 맥OS에서 모두 동일하게 작동합니다1. 윈도우즈에서는 WSL2를 사용하여 리눅스 환경의 커맨드라인을 사용할 수 있습니다1.


2024년 1월 8일 월요일

synergy, barrier (share mouse + keyboard)

** synergy
- synergy 오피셜 최신버전이 유료화되었다. 무료 버전 없음.
- ubuntu 18.04 에서는 하기 명령어를 통해서 synergy 1.8.8 버전 설치가 가능.
sudo apt install sni-qt
sudo apt install synergy

- ubuntu 22.04 용 패키지는 아래 사이트에서 다운 받을 수 있음.
https://github.com/DEAKSoftware/Synergy-Binaries/releases

아래 사이트 바이너리는 아직 테스트 해보지 않았음.
https://github.com/amankhoza/synergy-binaries

**  barrier
- barrier는 synergy v1.9에서 fork 하였음.
- synergy와 호환되지 않음.
- ubuntu 20.04, 22.04 바이너리는 제공되지만 18.04용 바이너리는 찾지 못하였음.
- 직접 빌드 하는 방법 (테스트 해보지 않았음)
https://nanbean.net/synergy-%EC%9D%98-%EB%8C%80%EC%95%88-barrier/

Excel 2013 (Windows 10)

엑셀 파일을 바로 열기 불가능 한 경우 해결 방법 Excel 파일 실행 레지스트리 다시 만들기 a. 실행 창에 regedit를 입력합니다. b. 아래 경로로 이동하여 해당 폴더를 리네임(백업/삭제) 합니다. XLSX : HKEY_CLASSES_...