전체 글 354

Memory Interleaving (메모리 인터리빙)

Memory interleaving, wikipedia 영문판에는 Interleaved memory 라고 되어 있고, 한글판에는 memory interleaving 이라고 되어 있다. 다소 용어에는 차이가 있지만 결론적으로 memory 를 interleaving 기법을 사용하여 성능을 향상시키는 방법을 의미한다. 일반적으로 메모리상에 존재하는 데이터에 접근할 때 메모리를 순차적으로 참조한다. 보통은 데이터가 메모리상에 올라갈 때는 순차적으로 올라가기 때문이다. 하지만 CPU가 한 워드(word)를 메모리상에서 읽어와서 조작하는 동안 해당 메모리는 접근할 수 없는 문제가 발생한다. [No interleaving] 위와 같이 No interleaving 상태에서는 1을 읽고 처리하는 동안 2에 접근할 수 없..

Addressing mode (주소 지정 방식)

컴퓨터 구조 관련 공부를 하다보니 주소 지정 방식에 여러 가지가 있는 것을 보게 되었다. 한글로 된 주소 지정 방식 관련 글들을 보다 보면 "직접(Direct) 주소 지정 방식", "간접(Indirect) 주소 지정 방식", "레지스터(Register) 주소 지정 방식" 등 널리 알려진, 우리가 흔히 접하는 방식 대로 언급되어 있었다. 그런데 wikipedia에서 addressing mode를 찾아 보면 방식들이 이렇게 단순하지가 않다. 해외에서 사용되는 기계들과 국내에서 사용되는 기계들이 다르지 않을 텐데 무엇때문일까. 제조사별로 같은 주소 지정 방식이더라도 다른 용어를 사용 (혹은 다른 지정 방식이더라도 같은 용어 사용) Architecture 별로 서로 다른 주소 지정 방식(addressing mo..

[KidsTube/Dev] AsyncTask 를 이용한 Image(Youtube thumbmail) 표시

일반적으로 Network 관련 operation은 특정 서버에 대한 request와 해당 서버로 부터의 response로 이루어진다. 예를 들어 브라우저에 http://technote.kr 을 입력하게 되면 해당 주소에 대한 resource를 요청(request)하게 되는 것이고, 이에 대한 결과로 html data들이 전달(response)되게 된다. 이와 같은 network 를 통한 Resource request 이후 response가 오기 까지 다소간 지연이 발생하게 되는데, 간단한 샘플 코드나 테스트 코드 작성시에는 아무런 고려없이 구현해도 상관없겠지만 실제 UI와 연동된 코드 작성시에는 이를 고려하여 코드를 작성해야 한다. 사용자에게 직접적으로 노출되어 있어 약간의 delay 만 발생해도 사용자..

VirtualBox, 가상 네트워크 설정하기

VirtualBox에 OS를 설치하고 Network이 되는지 확인해 보면 일반적으로 별 탈 없이 잘 되곤한다. 잘 되니까 별다르게 신경쓰는 일이 없는 것이 사실이다. 네트워크와 관련된 작업을 하지 않는 이상 별 다르게 변경해야할 필요도 없다. 하지만 일반 사용자를 넘어서 advanced user가 되고자 한다면 기본 설정 외에 어떤 설정이 가능한지 한 번 살펴볼 필요가 있다. 혹시 아는가. 알고 보면 나에게 최적화된 설정은 기본 설정이 아니라 생각지도 못한 다른 설정일 수도 있다. 매뉴얼에 따르면 가산 머신당 총 8개까지 가상 네트워크(가상 PCI 이더넷 카드) 생성 및 설정이 가능하다. 4개는 설정 화면을 통해서 가능하고 나머지는 VboxManage command를 통해서 가능하다. 우선 하나의 설정만..

Android Studio, 외부 java library (.JAR, .AAR) 추가

외부 자바 패키지를 쓰기 위해서는 IDE의 project 설정에 몇가지 작업을 해주어야 한다. 기존에는 eclipse 위에서 java coding을 해서 elipse 상에서의 방법에 대해서만 알고 있었는데 당연히 비슷할 것이라 생각했던 Android Studio에서는 다소 다른 점이 있어 정리해 보았다. 1) [File] > [Project Structure...] 선택한다. 2) 선택 후 발생하는 팝업의 왼쪽 위 "+" (New Module) 버튼을 선택한다. 3) 선택 가능 항목 중에 "Import .JAR/.AAR Package"를 선택한다. 4) 여기서 무엇을 해야 할지 몰라 잠시 당황할 수 있는데, 오른쪽 "..." 버튼을 눌러 추가하기 원하는 .JAR 파일을 선택한다. 5) 선택 후 "Fini..

Android 2017.02.13

Windows10 에서 bash shell 사용하기, Ubuntu

Windows 상에서 코딩을 하다 Project 내에 특정 문자열을 검색할 일이 생겼다. 리눅스 상에서 작업을 할 때에는 grep을 흔히 사용하곤했지만 windows에는 grep이 없어 wingrep을 다운 받아 사용하려고 했다. 하지만 찾아들어간 http://www.wingrep.com/ 에는 wingrep은 더 이상 available 하지 않다는 문구만 존재할 뿐이었다. 대안을 찾아보니 windows command line에서 사용할 수 있는 command로 findstr이 있는 것을 알 수 있었다. 하지만 또 다른 command에 대해 학습하고 사용하려니 다소 부담스러웠다. (사실 이런것에 부담스러우면 안되는데 왜 인지는 모르겠지만 새로운 것을 배우는 것에 점점 부담을 느끼나 보다.) 그래서 생각해..

OS/Windows 2017.02.13

screen, 자유롭고 안정적인 Linux session의 사용

putty 나 기타 terminal 프로그램을 이용해 server 로 접속해서 console을 사용하는 경우가 종종 있다. 원격으로 접속하다보면 종종 알 수 없는 이유로 연결이 끊어지거나 client 가 절전모드로 들어가서 강제로 끊어지거나 예상치 못한 연결해제가 종종 발생함을 경험할 수 있다. 이 때는 기존 연결시 진행 중이던 작업 또한 session이 닫히면서 강제로 종료되곤 하는데 이럴 때를 위해 강제로 종료되더라도 기존 작업을 그대로 남겨둘 수 있는 screen이라는 가상 session command가 존재한다. 원리는 서버로 바로 연결하여 열어놓은 console session에서 다시 한번 screen 명령어를 이용해 가상 session을 여는 방식이다. client에서 직접 연결한 consol..

OS/Linux 2017.01.21

Netis ST3105G 구입기

급하게 스위치 허브를 구매해야 할 일이 생겼다. 인터넷으로 구매하기에는 다소 시간이 걸릴 것 같아. 이마트에 들러서 구매를 하게 되었다. 공유기 제품은 다수의 종류가 있어서 다양한 선택이 가능한 반면 스위치 허브는 몇 종류 밖에 없어서 별다른 선택의 여지가 없었다. 기가비트를 지원하는 스위치 허브는 Netis 의 ST3105G와 ST3108G 두가지 제품이 있었다. ST3105G 모델은 5 port 짜리 제품, ST3108G 모델은 8 port 까지 제품이었다. 가격이 한 만원 정도 차이가 나서 굳이 많은 포트가 필요하지 않아. 5 port 짜리 ST3105G을 구매하였다. 구성물은 스위치 허브 본체, 아답터, Quick guide 3가지로 구성되어 있다. [Quick guide] 본체는 아래와 같이 생..

Network 2017.01.15

[04-5] Python - 파일 존재(isfile), 디렉토리 존재(isdir) 확인 방법

python 뿐만 아니라 코딩을 하다보면 특정 디렉토리의 존재 여부, 혹은 특정 파일의 존재여부를 확인해야 할 경우가 종종 존재한다. 이 때에는 해당 디렉토리, 파일 존재 여부를 확인하는 API를 사용해서 확인해야 한다. python에서는 os module내에 isdir, isfile API를 제공해서 해당 기능을 사용하도록 하고 있다. docs.python.org 에서의 정의 (isfile, isdir) isfile과 isdir 파일 모두 argument로 확인을 원하는 파일 혹은 디렉토리의 경로를 넣어주면 되고, 그 결과로 존재할 경우 True, 존재하지 않을 경우 False를 return하게 된다. 실 사용예는 다음과 같다. os.path.isdir() 의 사용 >>> import os >>> os..

Language/Python 2017.01.07