소프트웨어 & 잡다
-
[쉬운 Git] git submodule 간단하게 삭제하기소프트웨어 & 잡다 2020. 4. 13. 22:50
git 을 사용하다보면 왠만해서는 git submodule을 사용할 일이 없다. 그리고 대부분의 경우에도 git submodule 없이 해결 가능하는게 바람직하다. 하지만 어쩌다가 불가피한 이유로 submodule 을 추가하게 되었고, 불필요함을 느껴서 삭제하기위한 방법을 찾다가 이상하게 복잡한 방법들이 난무하는 것을 보고 당황하는 경험을 해보았을 것이다. 이글을 적는 이유는, 2020년 현재까지 불필요하게 시간낭비를 하지 않기를 바라기 때문이다. 특히 스택오버플로우(stackoverflow.com) 에서 아래 글을 발견한 분은 "뭐지 이게?" 하는 생각을 했을 것이다. https://stackoverflow.com/questions/1260748/how-do-i-remove-a-submodule How..
-
[쉬운 Git] git rebase 의 방법과 다양한 문제 해결소프트웨어 & 잡다 2020. 4. 12. 01:59
Git 의 'rebase'는 가장 강력한 무기중의 하나라고 생각한다. Git의 특성과 더해져 수많은 버전 컨트롤의 문제가 미연에 예방되는 마법과 같은 툴이다. Git의 사용법은 매우 쉽지만, SVN에서 Git으로 갈아타시는 분들의 경우 이런저런 컨셉의 차이때문에 많이 혼란스러워 하기도 한다. SVN에 대해서 싹 잊어버리고, 버전컨트롤이라는 개념을 처음 배우는 아기같은 기분으로 받아들여야 할 필요가 있다. 이 글은 Git을 많이 사용하는 분들이 대상이지만, 블로그의 다른 글들을 보면 Git을 처음 사용하는 분들도 도움을 받을 수 있을것이다. Rebase는 왜 사용하나? 쉽게 설명하자면, 내가 브랜치에서 작업하고 있는 동안 master 에 적용된 커밋들을 나의 브랜치에 적용하기 위해서다. 아래의 그림을 살펴..
-
[머신러닝] 한손으로 큐브 퍼즐을 푸는 로봇소프트웨어 & 잡다 2019. 10. 16. 21:43
오늘 정말 놀라운 뉴스를 접했다. Open AI 팀이 한손으로 큐브 퍼즐을 풀수 있는 로봇 손에에 대한 연구 결과를 발표 한 것이다. 사실 컴퓨터 공학을 전공했고, 15년째 소프트웨어 엔지니어로 일하고 있지만 머신러닝쪽 개발은 해본 적도 없고 지식도 별로 없기에 머신러닝과 로봇 기술이 얼마나 발전하고 있는지 상당히 둔감한 편이다. 그런데 오늘 뉴스를 보고 정말 놀랐다. 큐브를 푸는 로봇은 예전부터 있었고, 이런 로봇들은 0.5초도 안되는 시간에 풀어버린다. 큐브를 푸는 알고리즘 자체는 사실 머신러닝을 이용하지 않더라도 로직으로 충분히 가능하기 때문에, "큐브를 푸는 로봇" 이라는 것은 놀라운것이 1도 없다. 사실 예전에 있던 로봇은 말이 로봇이지 그냥 무식하게 생긴 기계다. 하지만 이번에 공개된 로봇은 ..
-
내 티스토리 블로그가 다음 검색에 노출되지 않는 문제 해결소프트웨어 & 잡다 2019. 10. 14. 19:32
티스토리 방문통계 기능을 통해서 제 블로그를 검색해서 오시는분이 어디서 검색하시는지 한번 살펴봤습니다. 워낙 방문객이 없는지라 살펴봐도 별 재미가 없기 때문에 아주 오래전에 살펴 보고는 신경 쓰지 않았었는데, 내 글에는 왜이렇게 무플일까 하는 생각과 함께 좀더 알아봐야 겠다는 생각이 들었죠. 어디보자.. 대부분은 구글 검색이고, 네이버 개미 눈물만큼.. 그래 뭐 네이버가 그렇지 뭐. 그럼 다음은.. 티스토리는 다음꺼니까 당연히 다음은 내편..... 음? 네이버가 19인데 다음 검색이 0이라니. 팀킬인가? 황당했습니다. 뭔가 문제가 있다 싶어서 본격적으로 파악에 나서기 시작했습니다. 구글을 검색해보니, 같은 문제가 있던 분들이 많이 있었고, 간단한 방법으로 해결했다는것을 보고 저도 바로 시작했습니다. 여러..
-
아직도 SVN 사용하는 분이 많으신가요?소프트웨어 & 잡다 2019. 10. 2. 01:55
비록 방문해 주시는 분들이 별로 없는 외로운 블로그이긴 하지만 저도 종종 블로그 유입 경로 통계를 확인하곤 합니다. 그럴 때마다 놀라워하는 것이 하나 있습니다. 그것은 바로, 저의 블로그에서 가장 많이 읽힌 글이 늘 변함없이 SVN에 관한 글이기 때문입니다. 7년도 전에 썼던 글인데, 사실 내용도 허술해서 괜히 썼나 싶을 만큼 지우고 싶은 글인데요. 아직도 이 글이 가장 많이 읽히고 검색되고 있다는 것이 놀라울 따름입니다. SVN 사용시에 branch와 merge 잘 이용하기 저 당시 다니던 회사에서도 머지않아 SVN 사용을 중단하고 Git으로 마이그레이션 했기 때문에 사실 저 글을 업데이트 한 이후로는 SVN을 사용해 본 적이 한 번도 없습니다. 일부로 사용을 피한 것이 아니라, 정말 눈 씻고 찾아봐도..
-
Vagrant up 수행시 새로운 VM이 생성되는 문제소프트웨어 & 잡다 2016. 5. 25. 18:56
현재 개발환경 구성을 위해 Vagrant를 사용하는데 여러모로 편리하다. 그런데 가끔 vagrant up을 하면, 기존의 VM을 구동하는 대신, 새로운 VM을 빌드하는 경우가 있다. VagrantFile 의 내용이 바뀌는 경우 생길 수 있는 일인데, 정확한 원인은 잘 모르겠다. 암튼, 개발환경 세팅이 끝난 상황에서, 새로운 VM이 설치되어 버리니 몹시 짜증나는 상황이 아닐 수 없다. 긴 시간의 설치가 끝나고 vagrant ssh 를 해보면, 역시나 새로운 VM으로 연결된다. 하지만 기존의 VM이 사라진 것은 아니기 때문에, 다시 복구가 가능하다. (처음에는 이걸 몰라서, 당황한 나머지 그냥 모든걸 새로 설치 했었다.. -_-) VirtualBox를 실행 해 보면, 두개의 VM이 구동 되고 있는 것을 알 ..
-
간단한 리눅스 서버 성능 향상소프트웨어 & 잡다 2016. 4. 4. 20:02
renice 혹은 setpriority() 를 이용한 프로세스 우선순위 스케쥴링이 원하는 대로 되지 않는 문제로 구글링을 하다가 발견한 내용을 공유한다. 다수의 서버 애플리케이션을 하나의 노드에 올려야 할 일이 있어서, 중요도에 따라 스케쥴링을 하기 위해 renice와 setpriority 함수를 이용하여 테스트 코드를 작성 하였다. 테스트 결과, 동일 터미널 내에서는 우선순위가 제대로 적용 되나 다수의 다른 터미널에서 실행하면 예상했던것과 다르게 적용 되는 것을 확인 하였다. 예를 들어, 동일한 우선순위를 가진 무한루프 프로세스를 터미널A 에서 4개 돌리고 터미널B 에서 1개 돌리면, 각각 20%를 점유하는 것이 아니라 터미널 B에서 돌린 1개가 CPU 1개를 100% 점유하고, 터미널A 에서 돌린 프..
-
NodeJS 입문을 위한 text editor - Visual Studio Code소프트웨어 & 잡다 2015. 11. 25. 08:39
새로운 포지션을 위해 NodeJS를 공부중이다. 역시 새로운 언어와 환경에 익숙해 지기 위해서는 자기에게 맞는 에디터를 찾는것이 필수이다. 그동안 Notepad++, Atom, VIM등을 사용해 오면서 조금씩 아쉬웠던 부분들이 있었다. Atom은 가장 입맛에 잘 맞았으나 auto completion를 설정하는 과정에서 계속 실패 하는 바람에 잠정적으로 사용을 중단 하였다. 그 다음으론, 10년도 넘게 사용해왔기에 너무나 익숙한 VIM에 온갖 번들을 설치하여 그나마 가장 가까운 개발 환경을 구축 하였다. 상당히 만족스럽기는 하지만 역시 auto completion가 완벽하지가 않았다. 그리고 번들 설치하는 과정이 꽤나 번거로와서 추후에 다시 개발 환경을 셋업하기에는 상당히 번거로울것 같다. 번들을 설치하면..