분류 전체보기
-
objdump 를 이용한 바이너리 깨보기개발/기술 2018. 5. 29. 23:02
개발하다보면 보안이나 라이센스의 이유로 코드는 없고 빌드된 바이너리만 가지고 있는 경우가 간혹 있다. 그런데 이 바이너리의 의사코드도(pseudo code)나 사용한 API 문서도 없고 바이너리를 만든 사람으로부터 어떠한 지원도 받을 수 없는 극한의 상황에서 반드시 바이너리에 포함된 API를 이용해서 무언가를 만들어야 한다면 개발자로선 참 난감한 상황일 것이다. 이런 개발자를 위해서(?) 컴파일러에서는 objdump라는 옵션이 있다. 바이너리에서 원래 코드를 볼 수 있는 환상적인 옵션은 아니고, 바이너리에 있는 기계어를 어셈블리 코드로 변환해주는 옵션이다. 어셈블리 코드는 컴퓨터를 처음 배웠을 때 다들 경험 했을 것이다. 프로그래밍 언어와 기계어 사이의 중간 언어이며, 바이너리를 수행하려는 아키텍처(x8..
-
리눅스 디스크, 폴더 용량 확인하기개발/삽질 기록 2018. 5. 26. 14:29
매번 구글창에 디스크/파일 용량을 확인하는 단축키를 찾기 번거로워서 이번 포스트로 정리하고 머릿속에 기억해두려고 한다. 1. 디스크 용량 확인, df 시스템상에서 FILE이 있는 곳의 파일시스템에 대한 정보를 보여준다. 즉 시스템에 마운트되어 있는 모든 것들에 대한 사용 정보를 출력한다는 뜻.그냥 df를 검색하면 아래처럼 나온다. 여기서 1K-blocks는 파일시스템의 전체 용량, Used는 사용중인 크기, Available은 사용가능한 메모리의 크기를 의미한다. 그런데 위 그림은 바이트 단위라서 보기가 어렵다. -h 옵션을 넣어서 human readable하게 변환하자. 훨씬 직관적으로 보인다. df --help 로 검색하면 다양한 옵션을 발견할 수 있으니 이것도 적극적으로 활용하자. 디스크 용량 검색..
-
그래픽 소프트웨어, 라이브러리 정리개발/기술 2018. 5. 6. 10:27
내가 일하는 곳 옆 소파트가 그래픽 관련된 일을 하는 곳이라서 같이 회의할 때마다 wayland, opengl, surface flinger과 같은 그래픽 라이브러리 용어를 자연스럽게 흘려 듣게 된다. 처음에는 생소했지만 어느정도 시간이 지나면 이들의 역할과 각각의 상관관계를 파악하게 될 줄 알았는데 만 2년이 지나도 용어 자체만 익숙해질뿐 이해 수준은 그대로인걸 보니 의도적인 노력 없이는 안되는 것 같다. 그래서 이번 포스트를 통해 이제껏 귀동냥으로 들은 용어와 그래픽의 기초적인 동작을 정리해보려고한다. 그래픽을 공부하기전에 잠깐 화가가돼서 그림을 그린다고 생각해보자. 지금처럼 태블릿을 이용해서 웹툰을 그리는 화가가 아니라 10년전 팔레트와 붓을 이용해서 그리는 화가 말이다. 그림을 그리기 위해선 어떤..
-
Ubuntu 16.04에서 Tensorflow GPU 지원 버전 설치하기개발/삽질 기록 2018. 5. 1. 10:13
Ubuntu 16.04에서 GPU 가속화를 지원하는 Tensorflow를 설치하는 방법이 포스트는 Tensorflow 공식 가이드 페이지를 읽고 글쓴이의 컴퓨터에 설치한 과정을 정리한 것이다. PC 환경에 따라 차이가 있을 수 있으므로 포스트를 읽고 설치하기 전에 개인 PC환경이 글쓴이와 어떤점이 차이가 나는지 먼저 확인해두길 바란다. 똑같은 instruction을 사용해도 어떤 PC는 되고 어떤 거는 안되는 경우가 많다. 글쓴이의 PC 환경은 다음과 같다.CPU: Intel(R) Core(TM) i5-6600 CPU @ 3.30GHz, Quad CoreGPU: GEFORCE GTX1060 (그래픽 드라이버 설치 완료)RAM: 8GBKernel: 4.4.0-122-generic * 혹시 우분투 커널 버전..
-
Ubuntu 안드로이드 스튜디오 설치하기개발/삽질 기록 2018. 5. 1. 09:55
Ubuntu 16.04에서 안드로이드 스튜디오 설치하기 Ubuntu에서 안드로이드 스튜디오를 설치하는 방법은 두가지가 있다.공식 홈페이지에서 .zip 파일로 받아온 후 압축을 풀어서 바이너리를 링크거는 방법. 안드로이드 스튜디오를 개발자가 유연성있게 관리 할 수 있다는 장점이 있지만 환경변수를 일일이 설정하고 추적하는게 번거롭다.ppa 저장소를 추가하고 apt-get으로 받기. vim, terminator 같은 프로그램을 받을 때처럼 원격 저장소에서 모두 받을 수 있는 방법이다. 유연성있게 관리할 수는 없지만 설치 방법이 간단하다.이 포스트는 두번째 방법에 대해서만 다룬다. 1. 저장소 추가 및 apt-get을 이용한 안드로이드 스튜디오 설치터미널을 열고 아래의 명령어를 입력한다 sudo apt-add-..
-
우분투 16.04 한글 입력하기개발/삽질 기록 2018. 5. 1. 09:37
Ubuntu 16.04 에서 한글 입력기를 설치하는 방법 1. 터미널 창에서 ibus 입력기 및 한글 입력기 설치ibus 입력기용 한글을 시스템에 추가하는 작업. 터미널을 열고 아래 설치 명령어 입력 sudo add-apt-repository ppa:createsc/3beolsudo apt-get updatesudo apt-get install ibus ibus-hangul 2. Language Support에 한글 추가한글을 추가하고 한글 입력이 가능한 입력 방식을 변경하는 작업 시작 -> keyboard -> Language SupportKeyboard input method system 에서 IBus 모드로 변경하기Language에 한글이 없다면 Install / Remove Languages로 변..
-
가끔은 소프트웨어도 둥글다카테고리 없음 2018. 4. 8. 10:21
얼마 전 중국의 우주 정거장이었던 텐궁이 다행히 인명피해를 주지 않고 대서양에 추락했습니다. 추락하기 2일 전부터 뉴스에선 우주 위기 위험경보를 알리며 텐궁이 곧 지구에 추락하겠으나 아직 위치는 알 수 없으며 시간은 몇 시께라고 모호한 답변을 내놨습니다. 대기오염뿐만 아니라 이제는 우주에서도 말썽을 부리는 중국을 원망하면서도 한 가지 의문이 들었습니다. 인공지능이 바둑을 이기는 시대인데 어째서 위성 추락 지점 하나 제대로 계산을 못하는 거지? 물론 시속 20,000KM일 정도로 빠르고 변화무쌍한 날씨 외에도 여러 가지 요인에 영향을 많이 받을 수 있으니 그럴 수도 있다고 칩시다, 그런데 추락 12시간 전까지도 여전히 정확한 추락 지점을 예측하지 못하고 다행히 우리나라에 떨어지진 않는다라는 짧은 답변만 내..
-
구조설계서 작성 후기 - 구조 검토가 우선사이드 프로젝트/이기적인 총무 2018. 4. 6. 21:56
총 네번의 포스트로 작성한 구조 설계서의 원본 파일을 드.디.어 깃허브에 업로드했다 -> 링크. 이 포스트를 몇 분이나 읽고 계실지는 모르겠는데 관심 있으신 분들은 얼마든지 환영이다(욕설만 하지 않는다면 태클도 받는다) 아직 채워야할 내용도 있을 뿐만 아니라 문장이 깔끔하지 않고 오타도 있는 부실한 문서지만 본래 소프트웨어 개발자는 선 릴리즈 후수정이 원칙이고(응?) 난 지금 마무리 포스트를 쓰고 싶은 관계로 일단은 올렸다. 한 달 후의 내가 꼭 수정 하기를 바란다. 혹시나 독자가 생긴다면 더 일찍 하게 될 지도 모르겠다. 처음 이기적인 총무의 구조설계서를 작성하기로 할 때는 열정이 가득차 있었던 것 같다. 한달 간의 회사 교육 프로그램을 통해 구조설계의 중요성을 뼈저리게 배웠고 심화해서 공부해보고자 교..