취미생활
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/MAgdZ/btrQq5DLeFL/FhTjsiErqy6w8S7RqT9y41/img.png)
vim 은 프로젝트 단위의 코딩에서 참 단점이 큰 것 같다. 플러그인을 설치해서 어떻게든 해결이 가능하지만, 플러그인 설치가 불가능한 상황에선 정말 답도 없다. 특히나 특정 변수가 어디서 사용되는 지 알고싶을 때는 참 골치아프다. grep 명령어 써주고 -nRI 옵션에 변수도 손으로 쳐줘야 되고... 솔직히 너무 힘들다. 이러한 경우 .vimrc 파일에 mapping 을 통해 search 키를 만들면 정말 편하게 쓸 수 있다. 홈 디렉토리에 존재하는 .vimrc 파일을 열어 아래 내용을 추가해주자 nnoremap :execute 'grep -nIr "\b\b" .' cw nnoremap :!grep -nIr --color "" . 이제 파일 저장 이후 Ctrl + k 를 누르면 아래 사진과 같이 명령어가..
해당 에러는 printf format 에 std::string 문자를 입력해서 나오는 에러다. printf는 c 기반이고 std::string 는 c++ 기반이라 호환을 하지 않는다. 그러므로 다음과 같이 써주자. printf("%s\n", str.c_str());
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bx3C7C/btrQqLrXA0e/i8G5kSyqr5Er0voG7wO5MK/img.png)
Windows 10 으로 WSL 을 사용하던 도중 vim 에 문제가 생겼다. 그냥 켜기만 했는데 replace가 켜지는 에러가 발생했는데 이를 의식하지 못하고 계속 키보드를 입력하면서 u (되돌리기) 버튼을 연타하는 게 일상이 되었다. 그래서 문제가 뭔고 하니 Automatically triggered Replace mode using vim in OpenSSH on cmd / powershell though Windows Terminal · Issue #1637 · microsof Replace input mode will triggered automatically when using vim though OpenSSH Client in cmd. Environment Windows build number..
나는 2020년 말에 i7 10세대 CPU와 RTX 2060이 탑재된 게이밍 노트북을 구매했다. 구매하고 난 뒤로 꽤나 잘 써먹었지만 아쉬운 부분도 상당히 많았다. 이번 글은 그러한 내용을 한 번 풀어보려 한다. 빠른 요약 1시간도 안되는 배터리 사용 시간 비행기 이륙하는 CPU 팬 소리 금방오는 유통기한 1시간도 안되는 배터리 사용 시간 노트북이라면 필연적으로 외부에서 사용할 일이 생긴다. 게이밍 노트북의 경우, 배터리 사용 시간이 엄청나게 짧아서 외부에서 사용할 수가 없다. 배터리 절전 모드에 리눅스 OS로 절전모드로 사용한다고 해도 1시간을 넘기면 많이 쓰는 수준으로 배터리가 심각하게 부족하다. 이는 어찌보면 당연한 이유인데, 대부분의 게이밍 노트북은 게이밍 퍼포먼스를 위해 고성능의 CPU, GPU..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bTLDkw/btrL2n3Bykh/4V3tKBHOK3MXDoY3W8DQpK/img.png)
기존 내가 사용하던 C++, Python 에서는 for, while, do-while 등등.. 여러가지 반복문을 제공했다. 이번에 내가 배우는 Go는 반복문으로 오직 for문 만을 가지고 있다. 그렇다. 반복문 파트는 for문 하나만 알고 들어가면 끝난다! 실습사이트 A Tour of Go go.dev 일반 for문 package main import "fmt" func main() { for i := 0; i < 100; i++ { fmt.Println(i) } } 처음으로 사용해볼 for문은 아주 고전적인 for문이다. 시작 값, 종료 조건, 증가식을 입력하는 방식으로 거의 모든 프로그래밍에서 사용할 수 있다. while 형식 package main import "fmt" func main() { s..
su password : [비번 입력] cd /proc//fd 각 프로세스 별 파일 디스크립터는 /proc//fd 디렉토리에 저장된다. 프로세스의 pid는 pgrep으로 구할 수 있는데 pid를 개별적으로 구하기가 귀찮다면 아래 명령어로 한 번에 구할 수 있다. cd /proc/`pgrep `/fd `는 ~를 shift 키를 누르지 않은 상태로 출력할 수 있다. 이렇게 실행하면 서브쉘로 pgrep을 실행해 pid를 가져온 뒤 바로 cd 명령어를 실행할 수 있다. 파일 디스크립터 보는 법을 알면 디버깅할 때 굉장히 편리하다. 가끔씩 로그 쓰레드나 소켓 통신 쓰레드가 미쳐 날뛰어서 파일 디스크립터를 1024개씩 만들어내는 경우가 있는데 이럴 때 통신이나 파일 입출력이 안되는 현상이 발생한다. 이러한 에러를 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Ql9Kp/btrLSuOVGSX/IKIDo3BTSJGsTi5DExWNn1/img.png)
Golang 변수 선언은 다음과 같이 할 수 있다. package main import "fmt" func main() { var val1 string const val2 int = 1 val1 = "hello world!" val3 := "test" fmt.Println(val1) fmt.Println(val2) fmt.Println(val3) } 선언시 문법에서 3개로 나눌 수 있는데 [변수/상수] 이름 자료형으로 나뉜다. var / const name type 변수 / 상수 여부 타입 값이 변경 가능한가? var O const X var는 값이 변경될 수 있는 값 const는 최초 선언할 때만 변경하는 값 이라고 생각하면 좋을 듯 C++ 에서는 바뀌지 않는 값은 메모리 최적화를 위해 const로 선..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/eD5znl/btrLNpA6HhM/643EEnK5m58xEBSVWdizV1/img.jpg)
페페씨 코드 업데이트좀 해줘요! 라고 말하고 싶지만 윗사람들이 까라면 까야지 어쩌겠는가 어디보자.. 요청한 내용이 출력하는 글을 변경해달라는 내용이구나! 코드 업데이트가 끝났고 오늘도 칼퇴근각! 어... 이거 수정할 필요가 없었네요? 원래대로 되돌리죠? .... 경험담은 아니고 이런 일이 생길 수가 있다. 이런 경우 야근을 하지않는 가장 좋은 방법이 무엇일까? git을 사용했다면 commit을 전부다 날려버리면 그만이지만, 회사가 엄청나게 보수적이고 git 조차도 사용할 줄 모르는 윗분들 덕분에 그게 안된다면??? (경험담 아님) 윗 코드와 같이 짧은 코드의 경우 주석 처리한 부분만 되돌리면 그만이지만 코드가 너무 꼬여있는 데다가 기존에 주석처리 된 내용도 너무 많다면?? (경험담 아님) 이런 경우 코드..