라벨이 ETC인 게시물 표시

다시 시작!

2017년 군입대 후 2019년 군복무를 마치고 2020년 다시 시작한다. 전역하고 공인중개사를 준비하느라 컴퓨터 공부를 하지 못했다. 군입대 전 머신러닝에 대해 열심히 공부하다가  알파고의 등장으로 대학원의 길이 좁아졌었다. 연락해보니 같은 대학 학부생들에게 인기가 너무 많아진 랩실이 외부 대학에서 들어오는 대학원생을 덜 뽑는다고 했다. 그렇게 도피식 입대를 하게 되고 전역 후 지금 다시 시작한다. 3년 동안 머신러닝은 너무 발전한 듯 하다. 공부를 새로 처음부터 할 계획이다. 그래도 옛날에 했던 거라 힘들지는 않지만 갈 길이 멀다. 우선 차근차근 바로 앞만 보며 하나씩 해나가야겠다.

VirtualBox Resize 오류 정리

VirtualBox Resize 오류 정리 흠.. 하둡을 공부하다가 10기가면 충분하겠지 하고 하드디스크를 10기가로 설정했었다. 나의 큰 오산이었다.. 캐글에서 제일 커봐야 2기가짜리 데이터를 보던 내가 12기가짜리 데이터를 만나게 될 줄은 상상도 하지 못했다.. 결국 가상 머신을 resize 해야하는 결정을 했다. 하지만 여기서 4일을 보냈다.. 옛날에 잘만 되던 cmd에서 modifyhd를 쳐도 resize가 안되는 것이었다.. 그 동안 텐서플로우를 열심히 했지만 하둡을 못한 것이 좀 아쉽다.. 이 내용은 구글링 해서 한글로 나온 결과 중엔 찾을 수 없던 내용이다. https://www.virtualbox.org/ticket/9103 영어로 구글링해서 위 사이트를 찾아 답을 겨우 얻을 수 있었다. 우선 문제는 snapshots이었다. 버추얼 박스의 저장소에 연결하는 vdi 뿐만 아니라 snapshots도 vdi라는 것을 오늘 처음 알았다. 한국 유저들은 snapshots들을 잘 사용하지 않아서 해결책이 없었던건지 잘 아시는 분들이 공유를 안해주신건지 궁금할 따름이다 ㅠ 찾아보니 스냅샷은 정말 중요한 사항에 대해 백업해두는 용도라 많은 스냅샷은 용량도 많이 차지하고 지우기도 힘들단다.. ㅠ 너무 많은 스냅샷 때문에 걱정이다.. 여튼 해결책은 그냥 snapshots 모두 resize해주는 것이다. $ cd $HOME/'VirtualBox VMs/vmname' $ for f in *.vdi Snapshots/*.vdi ; do VBoxManage modifyhd "`pwd`/$f" --resize  16000 ; done 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% 0%...10%...20%....

리눅스 메모리 및 프로세스 관리

이미지
라즈베리파이를 하다보니 메모리나 프로세스 관리에 대해 관심이 많아졌다. 무거운 프로그램 하나만 돌리면 메모리가 부족하다가 하니 알아 볼 수 밖에 없었다. 우선 메모리 관리에 대해 알아보자. 메모리 정보에 대해 확인하려면 free -m 을 통해 확인 할 수 있다. 그리고 pagecache 해제 echo 1 > /proc/sys/vm/drop_caches dentries, inodes 해제 echo 2 > /proc/sys/vm/drop_caches pagecache, dentries, inodes 모두 해제 echo 3 > /proc/sys/vm/drop_caches 을 통해 메모리 해제해서 좀 편히 쓸 수 있다. 이제 프로세스 관리에 대해 알아보자. 우선 리눅스에는 top이라는 명령어로 프로세스 모니터링을 할 수 있다. 하지만 나는 htop을 통해 프로세스를 더 쉽게 관리하는 편이다. sudo apt-get install htop 을 통해 우선 htop을 인스톨하고 실행하면 아래와 같은 화면이 나온다. 도움말 F1을 눌러 이것저것 해보면 쉽게 프로세스 관리를 할 수 있다.

인공지능에 대한 생각 & 공부 계획 (기계학습, 분산 시스템)

이미지
기계학습을 공부하고 있는데 여러 난관들에 부딪혀 새로운 계획의 필요성을 느꼈다. 가장 큰 난관은 인공지능의 뜨거운 관심인 것 같다.. 알파고 덕분에? 국내의 인재들이 기계학습에 몰리지 않을까 걱정된다. 나보다 머리 좋은 애들이 나를 금방 앞지를텐데  ㅠ 국내의 통계를 잘하고 프로그래밍 좀 한다는 사람들은 다 기계학습으로 몰릴테고 기계학습을 공부하다 보면 인공지능도 하고 싶을테니.. 인공지능은 4차 산업혁명의 핵이라는 말을 부정할 순 없을 것이다. 내가 보기엔 요즘 뜨는 IT 기술들은 인공지능을 받쳐주는 기술로 밖에 안보인다. 로봇산업, 사물인터넷, 가상현실은 인공지능이 학습하기 딱 좋은 환경을 만들어 준다고 생각한다. 가상현실이 발전한다면 인공지능은 가상현실에서 학습할테고 가상현실에서 원하는 상황을 만들어 알파고처럼 몇 달만 공부시키면 또 인류 대표를 이길 것이다. 기계의 물리적인 한계가 존재하지 않는 바둑이나 분석 같은 것들은 인공지능이 금방 따라잡을 것이다. 아직 로봇이 뛰어다니면서 점프하고 뒹굴고 이런 부드러운 움직임을 보여줄 순 없다 . 만약 로봇이 발전하고 인간과 같은 물리적인 조건을 갖춘다면 스포츠, 전쟁 같은 것들도 인공지능이 가상현실에서 학습할 것이다. 그럼 또 인간을 앞지르겠지.. 이미 마소는 인공지능을 마인 크래프트에서 학습시킨다고 한다. 사물인터넷도 마찬가지다. 딥러닝이라는 개념은 인간의 뇌를 모방한 기계학습이다. 모두가 알고 있듯이 컴퓨터의 하드웨어적인 한계 때문에 역사 속에 사라졌다가 21세기에 하드웨어의 한계를 극복하고 빛난 기계학습이다. '왜 사물인터넷 얘기에서 딥러닝으로 빠지는가'라고 생각할 수 있겠지만 내 생각에는 굉장히 관련이 깊다. 왜냐하면 딥러닝은 좋은 하드웨어가 기반이 되어야한다. 돌아다니는 로봇이 좋은 하드웨어를 달고 다니기엔 현재는 힘들 것이다. 미래엔 초소형 하드웨어가 나올지 모르겠지만 사물인터넷 환경이 잘 구축된다면 그럴 ...

윈도우 설치에서 파티션 설정 오류(NTFS)

이미지
요즘 컴퓨터 OS를 갈아엎느라 시간가는 줄 모르게 컴퓨터를 해댔다. 다른 거 할 수도 없었다. 네트워크도 공부해야하는데 하지 못했다. 그래서 내가 포맷하고 OS 설치하면서 겪은 오류들을 적고자 한다. 처음 OS를 쓰다가 USB로 OS를 설치하다 보면 전에 쓰던 OS를 갈아엎는 경우가 있다. 밑의 그림처럼 나올 것이다. 그럼 주 하드디스크를 포맷버튼 누르고 OS를 설치하고 싶을 것이다. 하지만 대부분은 오류가 떠서 안될텐데..되면 말고.. (출처: http://digitaku.com/719) 윈도우를 NTFS로 포맷된 파티션에 설치해야하다는 오류가 뜬다면 (출처: http://caleb1783.tistory.com/362) 1. 우선 설치 시작화면으로 돌아가서 2. shift+f10 으로 cmd를 띄운다. 3. diskpart 명령어를 치고 enter을 누른다. 4. list disk 를 통해 디스크 목록을 본다. 5. 포맷하고 싶은 디스크를 확인한다. 6. 만약 disk0이면 select disk0 을 통해 disk0을 선택한다. 7. 그리고 가장 중요한 clean 명령어를 통해 깨끗히 지운다. 8. exit을 통해 나간다. 9. 다시 컴퓨터를 껐다가 usb 부팅을 통해 OS를 설치한다.

프로젝트 오일러는 방학에 다시 시작

프로젝트 오일러는 다시 방학에 시작. 학기 중에는 리눅스 익숙해지기 자료구조 완벽히 이해하기 시스템과 네트워크 이해하기 웹해킹도 가끔씩 공부하기

싱가폴 여행

7월 6일 ~ 7월 11일

생활 코딩 -Java- & CS50 (Havard)

2015년 6월 1일 ~ 진행 중

알고리즘 문제해결 전략 (1)

DA가 되기 위해 개발자 3년 이상 경력을 쌓고자 프로그래밍에 대해 깊게 공부하고자 알고리즘 공부를 시작. 하지만 책의 예제가 C++이라는게 단점. 3.1 도입 : 코딩의 중요성을 간과하지 말라 코딩 능력이 가장 중요하고 읽기 쉬운 코드를 작성해야 한다. 간결하고 효율적인 프로그램을 작성해야 한다. 3.2 좋은 코드를 짜기 위한 원칙 1)간결한 코드를 작성 전역변수를 많이 사용하지 말자. 매크로를 사용해 간결한 코드를 작성.(프로그래밍 대회에서만!) 2)적극적으로 코드를 재사용 간결한 코드를 작성하기 위한 가장 직접적인 방법은 코드를 모듈화하는 것. 같은 코드가 반복된다면 이들을 함수나 클래스로 분리해 재사용한다. 이상적인 코딩은 한 함수가 두 가지 이상의 일을 해서는 안된다고 한다. (ex 입력을 처리하기 쉬운 형태로 바꾸는 함수, 입력을 읽어들이는 함수 등) 하지만 대회에서는 엄격하게 원칙을 따르지는 못한다. 3)표준 라이브러리 공부 언어의 문자열, 동적 배열, 큐, 리스트, 연관배열 등의 자료구조 , 그리고 정렬 등의 표준적인 알고리즘 구현 사용법을 반드시 잘 알아 두기를 권한다. 4)항상 같은 형태로 프로그램 작성 자주 작성하는 알고리즘이나 코드 등에 대해서는 한 번 검증된 코드를 작성하고 이것만을 꾸준히 사용할 필요가 있다. for문을 애용하다가 다른 코드에서는 while문을 쓰고 do-while 문을 쓰며 계속 바꾸는 것은 좋지 않다. 5)일관적이고 명료한 명명법 사용 실무에서 int a,b,c 이런 변수 명명법을 사용한다면 낙제감이다. 상황에 알맞는 변수 이름과 함수 이름을 사용하는 것이 좋다. 6)모든 자료를 정규화해서 정의 PASS 7)코드와 데이터를 분리 코드의 논리와 상관없는 데이터는 가능한 한 분리하는 것이 좋다. 예를 들어, string getMonthName(int month){             ...

기말고사 (6/10 ~ 6/17)

보안 -> 데이터 분석

시작

미래에 도움이 되기 위한 블로그 시작