2016/12 7

[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