전체 글 339

[VSCODE] VS Code 를 이용한 원격(Remote) 코드 개발

VS Code 를 통한 원격 개발이 필요한 상황들 VS Code 에서 SSH 를 통한 원격 개발 설정 Key file 을 통한 SSH 자동 접속 in VS Code VS Code 를 통한 원격 개발이 필요한 상황들 [상황 1] Client 개발일 경우 일반적으로 Local Machine 에서 개발이 가능하지만 Server 개발일 경우 원격으로 접속하여 개발을 하거나, Local Machine에서 개발 후 Server로 이동을 시키던지 해야 한다. [상황 2] 사용하는 Local Machine가 Windows 인 반면 Linux Program을 개발해야 한다면 원격으로 Linux Machine에 접속하여 개발을 진행해야 한다. 이와 같이 다양한 상황에서 Remote Machine을 상대로 개발을 해야하는 ..

캐시(Cache) 메모리에 대한 이해

주기억 장치 (일반적으로 DRAM) 성능이 많이 개선되었음에도 불구하고 CPU 에 비하면 느린 수준이다. 이와 같이 CPU 와 주기억장치의 성능 차이로 인해 CPU가 주기억장치에 접근할 때 마다 성능 저하가 발생하곤한다. 이를 방지하기 위해 CPU와 주기억장치 사이에 CPU 보다는 느리지만 주기억장치보다는 빠른 캐시(Cache) 메모리를 두어 성능 저하 빈도를 줄이고자 한다. 캐시 (Cache) 메모리 : 단위 용량당 가격이 비싸지만 빠르다 주기억장치 : 단위 용량당 가격이 캐시 메모리보다는 싸지만 상대적으로 느리다. 하지만 캐시 메모리와 주기억장치는 위와 같은 장단점을 가지고 있고, 아래와 같은 루틴을 통해 주기억장치의 용량을 캐시 메모리의 성능으로 사용하는 효과를 누리게 하고자 하는 것이 목표이다. ..

Ubuntu - repository(저장소) 변경하기

Ubuntu를 통해 Package 를 Update 하다보면 설정되어 있는 저장소(repository) 외에 다운로드 속도등의 문제로 다른 저장소에서 받고 싶을 때가 있다. 자주 사용하는 저장소가 있다면 아래 경로의 저장소 주소를 바로 수정도 가능하다. # /etc/apt/sources.list 하지만 저장소 주소를 항시 외우고 있는 경우가 없기 때문에 이때는 Ubuntu의 "Software & Updates" 에서 제공해 주는 저장소 (repository) 변경 기능을 사용하면 유용하다. 1) 검색을 통해 Software & Updates 를 실행한다. 2) "Ubuntu Software" tab 에서 "Download from:" 의 combobox 를 열고, Other... 항목을 선택한다. 3) 사..

OS/Linux 2019.11.11

Ubuntu - SSH Server 설치 및 접속하기

Ubuntu machine 와의 연결에 ssh 를 사용하기 위해서는 해당 Ubuntu machine에는 SSH Server가 설치되어 있어야 하고, 해당 Server에 접속하려는 PC 에서는 SSH Client 설치가 필요하다. SSH Server의 설치 Ubuntu 에서는 아래와 같이 openssh-server를 설치한다. (Ubuntu 14/16/18 등 버전에 따라 큰 차이가 없음) $ sudo apt install openssh-server user@TechNote:~$ sudo apt install openssh-server Reading package lists... Done Building dependency tree Reading state information... Done The fol..

OS/Linux 2019.11.11

주기억장치에 대한 이해

주기억장치는 막연히 RAM이라 인지하고 있고, Register, Cache, 보조기억장치와 함께 기억장치의 계층 구조 중 일부를 구성하고 있는 것으로 이해하고 있었다. 그런데 Cache 를 공부하다 보니 cache 는 SRAM 으로 이루어져 있다는 것을 알게 되었고, 용어를 명확하게 구분하여 사용하지 못해 여러 면에서 의미에 혼동이 있다는 것을 깨달았다. 주기억장치 명령어(instruction) 혹은 관련 데이터들을 저장해놓고, CPU 가 직접 접근하여 읽거나 실행이 가능한 기억장치를 의미 직간접적으로 memory bus (address bus, data bus)를 통해 CPU 와 연결 일반적으로 DRAM 으로 구성 Booting 전 Computer 초기화를 위한 목적으로 ROM (BIOS)이 존재 (D..

반도체 기억장치 (semiconductor memory) 방식의 분류에 대한 이해

현대의 Computer 들은 반도체(semiconductor)를 사용해 다수의 기억장치를 구성하고 있다. 흔히 언급되는 CPU 레지스터(Register), 캐시(Cache) 메모리, 주기억장치(Main Memory), SSD 등이 이와 같은 기억장치들이다. 이전의 Computer 들은 기억 장치로 magnetic drum, magnetic core memory 등을 사용하기도 했다. 대부분 사라졌으나 현재까지도 HDD 와 같은 기억장치는 자기(magnetic) 방식 사용하고 있다. 개인적으로 RAM이라 함은 주기억장치로 동일한 의미로 인지하고 있었고, Cache 나 CPU Register 와 같은 기억장치는 별개의 방식으로 구성된 기억장치로 생각하였다. ROM 또한 BIOS 정도로만 인지하였고, SSD ..

카테고리 없음 2019.10.19

컴퓨터 기억 장치들의 종류 및 특징

컴퓨터 내부에는 다양한 기억 장치들이 존재하고 있고, 대표적으로 다음과 같이 장치들이 있다. CPU 레지스터(Register) : CPU 내 위치한 고속 메모리로 극소량의 데이터를 저장할 수 있다. 캐시(Cache) : SRAM 으로 구성되었으며, CPU Core 외에 존재하여 주기억장치와 CPU 간 속도차를 극복하기 위해 사용된다. 주기억장치(Main Memory) : DRAM 으로 구성되었으며, CPU가 직접 접근하여 데이터를 사용할 수 있다. 보조기억장치(HDD, SSD) : CPU가 직접 접근할 수 없고, device controller 등을 통해 접근이 가능하다. 다 같이 기억(저장)한다는 점에서 유사할 텐데 이렇게 다양한 기억장치들이 한 컴퓨터 내에 존재하는 이유는 무엇일까. 하나의 종류로 저..

Python - configparser, 기본적인 설정파일을 다루는 모듈

configparser.ConfigParser() configparser 모듈은 ConfigParser class 를 제공하고, ConfigParser class 는 Microsoft Windows의 INI 와 같은 형식의 설정파일 구조를 다룰 수 있다. [sample.ini] [KeyList] # Set Key Value Key1 = 10 Key2 = 20 Key3 = 30 Key4 = 40 Key5 = 50 [NameList] # Set Name Value Name1 = abc Name2 = bcd Name3 = cde Name4 = def Name5 = efg 위와 같은 형태의 설정 파일을 읽기 위해서 다음과 같은 코드를 사용할 수 있다. from configparser import ConfigPa..

Language/Python 2019.10.11

Android Studio / Github 연동

Android Studio IDE 로 작업을 하면서 코드 형상 관리를 위해 Github 를 사용하는 경우가 있다. Android Studio 와 Github 를 연동하는 방법은 다음과 같다. 확인 진행한 환경 : Android Studio 3.5 git version 2.23.0.windows.1 (git 미설치시 [Windows 내 git 설치] 참고) 현재 작업 중인 프로젝트를 처음으로 github에 연동하는 경우 불필요한 파일을 연동에서 제외 시키기 위한 파일 (.gitignore) 작성 .gitignore 생성을 위한 ".ignore" plugin 설치 제외 파일/폴더 정의를 위한 .gitignore 자동 생성 "Share Project on Github" 를 통한 연동 기타 Trouble sho..

Android 2019.10.08

CPU 레지스터 (Register) 의 이해 및 종류

CPU 레지스터 : 중앙처리장치(CPU) 내에 위치한 기억장치로 많은 수의 레지스터를 CPU내에 포함시키는 것은 어렵기 때문에 특수 목적용 레지스터들과 몇몇 일반 목적용 레지스터만 존재한다. 대표적인 레지스터의 종류 : PC (Program Counter) : 다음 인출(Fetch) 될 명령어의 주소를 가지고 있는 레지스터 AC (Accumulator) : 연산 결과 데이터를 일시적으로 저장하는 레지스터 IR (Instruction Register) : 가장 최근에 인출된 명령어(현재 실행 중인 명령어)가 저장되어 있는 레지스터 SR (Status Register) : 현재 CPU 의 상태를 가지고 있는 레지스터 MAR (Memory Address Register) : PC 에 저장된 명령어 주소가 사용..