TechNote. 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

Linux - iconv - 파일(File) 인코딩(Encoding) 변경

HTML 을 파싱하다보면 HTML이 euc-kr로 되어 있는 경우도 있고, utf-8로 되어 있는 경우도 있다. 개인적으로 보통 linux terminal에서 작업을 하는데 linux terminal 이 보통 utf-8로 되어 있다. 이에 따라 eucKR로 encoing된 html 파일을 받아 내용을 확인해보게 되면 한글이 잔뜩 깨져 있는 것을 볼 수 있다. [euc-kr로 인코딩된 파일을 utf-8 환경에서 열었을 경우] 이에 따라 원활한 작업을 위해서는 euc-kr 파일을 utf-8 인코딩으로 변경해주어야 할 필요가 있다. linux 에서는 iconv 명령어를 이용해 쉽게 변경할 수 있다. iconv 사용법$ iconv -f "현재인코딩포맷" -t "바꿀인코딩포맷" "원본파일이름" > "저장할파일이름..

OS/Linux 2017.01.07

[01-1] Python - 코드(Code)의 실행

python을 배울 때 가장 먼저 화인해야 할 것 중 하나로 작성한 python code를 어떻게 실행시킬 것인가가 있다. 언어를 배울때 가장 중요한 것이 직접 실행해보고 그 결과를 눈으로 직접 보는 것이기 때문이다. python으로 작성한 code를 실행하는 방법은 몇가지가 있다. 1. python interpreter에서 직접 실행하기 2. .py 파일로 생성해서 python 인자로 넣어 실행하기 3. .py 파일을 바로 실행하기 하나씩 알아보기로 하자. 1. python interpreter에서 직접 실행하기 가장 기본적인 코드 실행 방법이다. python@Test:~$ python Python 2.7.6 (default, Jun 22 2015, 17:58:13) [GCC 4.8.2] on linu..

Language/Python 2017.01.06

[03-3] Python - while (반복문, Loops)

while은 for과 마찬가지로 조건이 맞을 경우 특정 문장을 반복해서 실행하는 문법이다. while 의 기본 문법>>> while 조건문: ... 실행문(Statements) ... while 의 다양한 사용 방법 1) while의 기본적인 사용 방법 >>> x = 10 >>> while x > 0: ... print "In while loop : %d" %x ... x -= 1 ... In while loop : 10 In while loop : 9 In while loop : 8 In while loop : 7 In while loop : 6 In while loop : 5 In while loop : 4 In while loop : 3 In while loop : 2 In while loop : ..

Language/Python 2017.01.05

[04-4] Python - pip(python package manager)의 설치 및 사용법

Python을 사용하다보면 pip를 통한 python 관련 package 설치를 볼 때가 종종 있다. Pip Installs Packages 혹은 Pip Installs Python 의 줄임말로 알려진 이 python package manager는 특히 python관련 library 를 설치할 때 유용하게 사용된다. Python 2.7.9 포함한 이후 버전, Python 3.4 포함한 이후 버전에서는 기본적으로 포함되어 있어 별도로 설치해 줄 필요가 없지만 이전 버전이라면 별도의 설치가 필요하다. - pip의 설치 For Ubuntu user1. python-pip package를 설치한다. # apt-get install python-pip For other system user 1. 설치 파일(get..

Language/Python 2017.01.02

[04-3] Python - Timezone 변경하기

개인적으로 사용하고 있는 서버의 System time은 UTC(세계표준시간)로 설정되어 있다. KST로 설정하면 별다른 코드없이 바로 해당 시간 사용이 가능하겠지만 KST보다는 UTC로 운영하고 있다. 하지만 종종 코드상에서 KST 시간이 필요할 경우가 있는데 Python에서 이때는 어떻게 코드를 작성해야 할까? 기본 datetime 모듈에는 해당 기능이 들어 있지 않다. 따라서 별도의 python library를 설치해주어야만 한다. timezone 변경을 위해서는 pytz 이라는 이름의 python library가 필요한데 별도로 설치가 필요하다. 일반적으로 pip 라는 python package manager를 통해 python library를 설치하는데 pytz 또한 pip를 통해 설치가 필요하다..

Language/Python 2017.01.02

[02-7] Python - 집합 (세트, Sets)

수학에 집합에 있듯이, python에도 집합이 있다. 수학 집합의 특징과 마찬가지로 python의 집합도 중복을 허용하지 않는다는 특징이 있다. 집합의 정의 방법 - 1 먼저 list에 사과 2개, 바나나 1개, 오렌지 1개, 수박 1개를 담고, 이 list를 set()로 변환하면 중복은 제거되고 사과, 바나나, 오렌지, 수박이 하나씩 담긴 집합이 생성되게 된다. 결과에서 보면 알겠지만 순서로 정렬되어 있지는 않다. 방법 - 2 list 를 set()을 통해 집합으로 변환하는 방법도 있지만 중괄호 { } 를 이용해서 바로 set을 만드는 방법도 있다. 하나 유의해야 할 점은 중괄호 { } 가 dictionary에서도 사용된다는 점이다. key:value를 포함하지 않고, 하나의 값들의 연속으로 표현된다면..

Language/Python 2016.12.31

[02-6] Python - 딕셔너리 (Dictionary)

딕셔너리(Dictionary)는 한마디로 정의하자면 key와 value로 정의되는 구조체이다. 예를 들어 아래와 같은 문장을 딕셔너리 형태의 자료형으로 표현해 이해해 보도록 하자. 과일이 사과가 한개, 바나나는 두개, 수박은 3개가 있다.fruit = {'apple' : 1, 'banana' : 2, 'watermelon' : 3} 사과가 몇개있는지 알아보려면print fruit['apple'] 바나나가 몇개있는지 알아보려면print fruit['banana'] 수박이 몇개있는지 알아보려면print fruit['watermelon'] 을 해보면 된다. 기존 일반적인 배열을 사용할 때 보다 좀 더 직관적으로 코딩이 가능하다. {}empty dictionary 는 위와 같이 중괄호를 감싸서 표현한다. {'a..

Language/Python 2016.12.31

[04-2] Python - 논리연산자/비트연산자 (boolean/bitwise operation)

언듯 보기에 논리연산자와 비트연산자가 유사해서 그 차이점이 헷갈렸다. 논리연산자의 "and"와 비트연산자의 "&"는 결국 같은 "그리고"가 아닌가?논리연산자의 "or"와 비트연산자의 "|"는 결국 같은 "혹은"이 아닌가?논리연산자의 "not"과 비트연산자의 "~"는 결국 같은 "아닌"이 아닌가? 몇가지 실험을 통해 그 차이점을 확인해 보았다. 결론적으로 논리연산자는 영어로 하였을 때 boolean 연산자로 TRUE, FALSE를 위한 연산자이다. 따라서 숫자를 이용한 비트 연산에 사용할 경우 잘못된 값을 도출할 수 있다. 비트 연산을 할 때는 꼭 비트 연산자를 사용해야 한다. TRUE와 FALSE가 아닌 숫자에 논리연산자를 사용하더라도 에러가 발생하지 않고, 의도치 않은 결과가 계산되기에 더욱 사용에 유..

Language/Python 2016.12.30

Ubuntu, wpa_supplicant 빌드/컴파일 하기

IEEE802.11, 즉 Wi-Fi를 linux 에서 공부하다보면 wpa_supplicant code를 보아야 하는 일이 자주 있다. wpa_supplicant를 공부하기 위해서는 wpa_supplicant code에 로그를 넣어 보기도 하고 코드를 내용을 바꿔 보기도 하고 많은 시도를 해보아야 한다. 이를 위해서 기본 코드를 빌드하였을 때 정상적으로 동작하는 상태를 확보해야만 한다. 이에따라 Ubuntu에서 wpa_supplicant를 기본 code상태로 빌드하여 동작을 확인하고자 한다. Ubuntu 14.04.5 LTS wpa_supplicant v2.1 겪었던 시행 착오를 모두 기술하였기에 다소 양이 방대할 수 있다. 핵심적으로 필요한 부분만 확인하고자 한다면 이 글의 제일 마지막 Summary 부..

OS/Linux 2016.12.29

[Database/mysql] on delete cascade 에 대한 이해

Database를 공부하는 도중 on delete cascade 라는 문법을 만나게 되었다. 찾아보니 설명상으로는 어떤 tuple이 삭제될 때 foreign key로 연결된 tuple 또한 같이 삭제된다는 내용이었다. 의미를 보면 그런가보다 하고 넘어갈 수 있는 내용이었지만 명확히 이해가 가지 않는 부분이 있었다. 위와 같을 경우 relation A의 tuple을 지우면 relation B의 tuple도 연달아 지워진다는 것인가? 아니면 relation B의 tuple을 지우면 relation A의 tuple들이 지워진다는 것인가?애매한 부분이 있어서 직접 mysql 상에서 확인해 보았다. 확인하면서 겪은 시행착오까지 모두 기술하였다. 1. 확인을 위한 TEST database 생성. mysql> cre..

Database 2016.12.23

[후기] Crucial MX300 750GB SATA 2.5 Inch SSD (CT750MX300SSD1)

시간이 다소 많이 지났지만 black friday 쯤 amazon에서 SSD 하나를 구매하였다. 당시 특가로 750GB 짜리 SSD가 $99.99 로 굉장히 저렴하게 나왔다. 지금은 $169.99 이니 나름 만족할 만한 가격으로 구매하였다. 사실 그동안 SSD 를 여러번 구매를 해보았지만 그 때 마다 Intel이나 Samsung SSD를 구매하곤 했다. 사실 조금 비싸기는 하지만 어느 정도 안정성이 보장된다고 알려져 있었기 때문이다. 물론 사고 나서도 만족하면서 사용하였다. 다른 조건이 모두 동일하였다면 전과 마찬가지로 Intel이나 Samsung SSD를 구매하였겠지만 Crucial SSD가 너무 싸게 나왔다. 그것도 대용량으로 너무 싸게 나왔다. Crucial MX300 750GB SATA 2.5 I..

Products & Services 2016.12.16

[Mysql] database 백업(backup) / 복구(restore)

데이터베이스를 이용해서 sub PC 에서 작업을 하다보니 실제 server와 작업 server간에 mysql database의 sync를 맞추어야 할 일이 종종 있다. schedule 을 걸어 자동으로 하면 좋겠지만 접근 제한을 localhost 로 만한 상황이라 dump file을 직접 추출하여 복사하여 다시 복구하는 방식으로 진행하였다. [Mysql backup to file] $ mysqldump -u "Mysql사용자ID" -p "MysqlDatabaseName" > dump.sqlEnter password:$ ls -al dump.sql-rw-rw-r-- 1 ubuntu ubuntu 22280615 Dec 3 02:23 dump.sql [Mysql restore from file] $ mysql..

Database 2016.12.03

ABKO HACKER A700 마우스 구입기

한성컴퓨터 GTune MKF14S XRGB 를 구입했다. 아무리 보급형 입문 기계식 키보드라지만 어울리지 않게 4000원짜리 마우스를 쓸 수는 없다. 뭔가 좀 그럴듯한 마우스의 구매가 필요했다. (나름의 합리화를 하느라 힘들었다.) 기계식 키보드처럼 기계식 마우스가 있는 것도 아니고, 좀 괜찮은 마우스를 고르다 보니 게이밍 마우스를 골랐다. 게임은 하지도 않는데 게이밍 마우스라니... 그 중 ABKO HACKER A700 를 고른 이유는 DPI 가 높다는 점이었다. (16400 DPI) DPI가 높다고 하니 뭔가 굉장히 정밀하게 mouse control이 될 것 만 같고, 그래서 골랐는데 DPI가 높으니 마우스 포인터가 굉장히 빨리 움직인다. DPI 조절 기능이 있어서 우선은 낮춰 놓고 쓰고 있는데, D..

Products & Services 2016.10.11

한성컴퓨터 GTune MKF14S XRGB 구입기.

키보드에 큰 돈 들이고 싶지는 않지만, 노트북에 키보드 연결하는 김에 추후에 PC를 구매할지도 모른다는 생각에 전에는 생각지도 않은 기계식 키보드를 구매하였다. 전에 PC방 가서 몇번 만져본 것 말고는 제대로 써본적은 없었다. 이 키보드는 대체 왜 비싼 것인가. 만원짜리 키보드랑은 무엇이 다른 것인가. 한번 알아보리라. 참고로 구입한 키보드는 한성컴퓨터 GTune MKF14S XRGB이고, 내 돈주고 샀다. 키패트 찍은 모습. 일반 키보드는 판과 키간에 틈이 안보이는데 이 키보드는 아래와 같이 보인다. 아무래도 기계식 키보드의 특징인 것 같다. 키패드 쪽도 아래와 같이 떠 있다. 기계식 키보드를 접하면 가장 많이 듣는 단어가 있다. 청축, 적축, 흑축, 갈축.. 청축은 경쾌한 키감갈축은 저소음적축은 빠른..

Products & Services 2016.10.11

[04-1] Python - range 와 xrange 의 비교 및 차이점 확인

[range 함수의 기본 사용법, 순차적인 숫자를 가지는 list를 생성하는 함수][xrange 함수의 기본 사용법, 순차적인 숫자를 만들 수 있는 generator를 생성하는 클래스] 숫자의 범위를 정의하거나 사용할 때 range() 나 xrange()를 사용하게 된다. 간단한 사용 예를 보면 다음과 같다. >>> for x in range(5): ... print x ... 0 1 2 3 4 >>> for x in xrange(5): ... print x ... 0 1 2 3 4 간단한 사용법만 보면 range나 xrange나 그 용도는 별반 다른게 없어 보인다. 하지만 좀 더 깊게 보면 한가지 큰 차이점이 있는데, range의 경우 해당 api가 실행되는 순간 숫자 범위의 list를 바로 생성하는 ..

Language/Python 2016.08.11

[03-2] Python - for (반복문, Loops)

조건문과 더불어 가장 많이 쓰이는 문법으로 반복문이 있다. 말 그대로 주어진 명령을 주어진 조건이 맞지 않을 때까지 반복하는 문법이라는 뜻이다. Python에서는 여타 다른 언어들과 마찬가지로 2가지의 반복문을 제공하고 있다. [Python - for] [Python - while] for 문은 대체로 특정 횟수/주어진 sequence type 만큼 반복해야할 경우 주로 사용되는 반면, while 문은 특정 조건을 만족할 때 까지 반복해야할 경우 사용된다. 본 글에서는 for에 대해서 알아 보자. for 의 기본 문법 for 의 다양한 사용 방법 range() 의 범위만큼의 반복 중첩 반복문 (nested loops) 반복문 실행 중 중단 (Early exits) for ... else 구문 string..

Language/Python 2016.08.11

nvd3.js - 기본적인 Data Format

nvd3.js 에서 지원하는 그래프를 위해서 data는 json으로 표현된다. 이를 위한 기본적인 json format은 다음과 같다. [ { key: "Series name1", color: "CSS color", values: [ {x: 0, y: 10}, {x: 1, y: 20}, {x: 2, y: 30} .... ] }, { key: "Series name2" ... } ] key : key는 그래프의 이름이다. 예를 들어 사과의 수확량, 배의 수확량을 표현하는 그래프가 있다고 한다면 이는 서로 다른 그래프로 표현될 수 있고, 이 때 이 두 각기 다른 그래프는 서로 다른 key로 표현된다. color: 그래프의 색을 정의할 수 있다. 예를 들어 color: "#ff7f0e" 와 같이 표현 가능하다..

Language/nvd3.js 2016.08.09

[HTML/CSS] <link href> 그리고 <script src>

데이터를 시각화하기 위해 nvd3.js를 공부해보려고 한다. 그래서 tutorial을 하나씩 따라가 보려 하고 있는데, html 첫줄 부터 막히기 시작한다. 이전에는 tutorial에 tag href는 를 통해 그동안 써와서 연결할 파일의 위치를 의미하는 것은 알겠는데 link, rel 은 생소하다. 정의 The tag defines a link between a document and an external resource.http://www.w3schools.com/ 에 정의된 link tag의 설명을 보면 위와 같다. 외부의 resource와 현재 document의 연결을 정의한다. 즉, 위의 예제를 보면 현재 html과 외부의 nv.d3.css를 연결해주라는 이야기다. nv.d3.css에 정의된 s..

Language/HTML 2016.08.09

[02-4] Python - 리스트 (Lists)

Python의 리스트(List)는 값들을 순서있게 보관할 때 사용하는 자료구조이다. 리스트 표현리스트 접근리스트 수정리스트 합치기/반복하기리스트 값 추가/삽입하기 - append(), insert()리스트 값 삭제하기 - del, remove()리스트 값 정렬하기 - sort()리스트 값 순서 뒤집기 -reverse()리스트 값 인덱스 확인 - index()리스트 내 특정 값 갯수 세기 - count() 1. 리스트 표현Python 의 리스트를 한마디로 정의하자면 다양한 자료구조들의 순서 있는 나열이라고 할 수 있다. 대괄호 "[", "]" 로 둘러 쌓여 있고, 콤마 "," 로 구분한다. 간단한 예를 들어보면 다음과 같다. >>> list1 = [1,2,3,4] >>> list2 = ["1","2",3,..

Language/Python 2016.08.09

[02-1] Python - 변수 할당의 개념

python에서는 변수에 값을 할당하면 object를 생성해서 값을 해당 저장한 후 변수는 해당 object의 메모리 주소를 의미하는 id값을 가지게 된다. 1이라는 값을 가지고 있는 object(id 23282008)를 가리키는 변수를 도식화 하면 다음과 같다. [Python - id(), object의 unique 값(memory address)를 보여주는 함수] >>> a = 1 >>> id(a) 23282008 만약 같은 값을 가지게 된다면 같은 object를 가리키게 될 수도 있다. >>> a = b = 100 >>> id(a) 23283616 >>> id(b) 23283616 위 경우는 서로 다른 변수 이름을 가진 a, b이지만 id 23283616 object를 동시에 가리키고 있다. 이 상..

Language/Python 2016.08.08