전체 글 354

Python - id(), object의 unique 값(memory address)를 보여주는 함수

Python은 C 언어와 달리 포인터라는 개념이 없다. 하지만 컴퓨터 상에서 돌아가는 언어이기 때문에 내부적으로는 메모리를 사용하고, 이에 대한 주소 정보를 가지고 있다. 그렇다면 포인터 개념을 사용하지 않는 Python에서 해당 메모리 주소는 어떤 용도로 사용되는 것일까? Python은 메모리 주소를 변수를 구별하기 위한 용도로 사용하고 있다. python의 built-in 함수 중 id() 를 이용하면 현재 확인하고자 하는 변수의 메모리 주소를 확인할 수 있다. (CPython의 경우 메모리 주소를 반환하지만, 다른 파이썬 인터프리터는 메모리 주소 이외의 다른 값을 반환할 수 있음) id(object)Return the “identity” of an object. This is an integer w..

Language/Python 2019.03.18

하위 DNS 추가 및 Apache 가상 호스트 생성

1차 도메인 : kr2차 도메인 : technote.kr3차 도메인 : forum.technote.kr DNS 는 가비아나 후이즈와 같은 대행 업체를 통해 구매가 가능하고, 기본적인 설정이 가능하다. 하나의 서버에 여러개의 DNS 주소를 연결하고자 할 때에는 DNS 설정만으로는 불가능하다. 서버 내 가상 호스트를 생성하여 들어 오는 DNS 요청에 따라 적합한 웹으로 연결 시켜 주어야 한다. 전체적인 순서는 다음과 같다. DNS 설정을 통해 연결하기 원하는 주소를 등록(e.g> forum.technote.kr) 하고 해당 주소를 IP 에 mapping 시켜 준다. 해당 IP 주소를 가지는 서버에 웹 서버를 구동하고, 여러개의 DNS 주소를 연결하고자 한다면 웹서버에 가상 호스트를 생성해준다. 1. 가비아나..

OS/Linux 2019.03.18

폴더와 디렉토리의 차이 (Folder and Directory)

어렸을 적 MS-DOS 사용하던 때에는 폴더라는 용어 자체가 없었던 것으로 기억한다. 하지만 어느 순간 부터 폴더라는 용어가 종종 사용되더니 현재는 기존에 사용하던 디렉토리라는 용어를 오히려 낯설게 만들고 있다. 일반적으로 사용할 때는 폴더나 디렉토리나 크게 구분하지 않고 사용되고 있다. 그럼에도 불구 하고 새로운 용어가 등장하였을 때는 그 차이점이 있었을 것이다. 검색해본 결과 폴더는 디렉토리와 거의 유사하지만 좀 더 넓은 의미로 사용되는 용어였다. 윈도우가 대중화 되면서 탐색기가 널리 사용되고 있다. 탐색기에 보면 폴더는 파일을 담는 그릇이라고 보면된다. 여기까지는 디렉토리와 별반 다름이 없다. 하지만 윈도우 폴더 내에는 네트워크 환경, 내컴퓨터 등 특수한 항목들 까지 포함할 수 있다. 디렉토리의 경..

OS/Windows 2019.02.09

Python - if __name__ == __main__ 의 의미

[Python 스크립트 파일의 실행] python은 C언어나 Java 와 달리 main() 함수가 존재하지 않는다.이에 따라 스크립트 파일을 실행하게 되면 들여쓰기가 되지 않은 line들을 파일 상단 부터 순차적으로 읽어 수행하게 된다. [sample.py]a = 1b = 3c = a + b print(c) def temp(): print("abc") ~/python$ python sample.py4 위에서 보듯이 들여쓰여진 코드인 함수 부분은 수행되지 않았음을 볼 수 있다. [다른 Python 스크립트 파일을 모듈로서 실행] python 스크립트 파일은 또 다른 python 스크립트 파일을 하나의 모듈로써 읽어 들일 수 있다. [sample_call.py]import sample ~/python$ py..

Language/Python 2019.02.08

stetho - 실시간 sqlite db 접근 및 디버깅

sqlite를 이용하여 android 에서 database를 사용하다 보면 database에 쌓이는 실제 값을 확인해야 하는 경우가 종종 있다. android 개발 환경이 상당히 잘 제공되어 있어 기본적으로 실시간 database 확인 방법이 있으리라 생각하고 찾아 보았으나 기본으로 제공하는 툴은 별도로 제공되지 않는 것을 확인하였다. 이에 찾아보니 stetho 라고 facebook 에서 개발하여 공유하는 android application을 위한 debug bridge 가 존재하였다. 다양한 기능이 있겠지만 database 위주로 사용법을 보면 아래와 같다. http://facebook.github.io/stetho/ 1. Android Studio에서 build.gradle 에 아래와 같이 com.f..

Android 2019.01.06

Android - Material icon 의 사용 in Android Studio

개발자들이 UI가 있는 앱을 개발할 때 제일 어려워하는 혹은 곤란해하는 부분이 design 이 아닐까 한다. Design 까지는 아니더라도 앱에 사용되는 이미지나 아이콘등을 구하는 것 또한 쉽지 않은 일이다. 앱 개발시 관련 디자이너가 있다면 좋겠지만 일반적으로 규모가 작은 개발팀의 경우 디자이너가 부재하는 게 일반적이다. 구글에서 이와 같은 개발자들의 고충을 알았는지 디자이너가 없어도 개발자들이 적용가능한 material design을 아래 사이트에서 소개하고 있다. https://material.io/design/ Material design이 발표된지는 몇년 지났지만 최근 관련 icon 을 사용하면서 다시 한번 android studio 에서의 사용법을 정리하고자 한다. 1. 먼저 아래의 주소로 접..

Android 2018.12.27

Webfont 의 적용 (Google Fonts)

웹페이지를 작성하다보면 자신이 원하는 형태의 폰트로 글자가 표시되기를 원할 때가 있다. 이 때 좀 더 쉽게 원하는 폰트를 적용시키는 방법은 웹폰트(webfont)를 적용하는 것이다. https://fonts.google.com/ 구글에서는 위 사이트를 통해 다양한 폰트를 제공하고 있고, 쉽게 적용할 수 있도록 가이드를 하고 있다. 크게 원하는 폰트를 고르고, 그 폰트를 자신의 사이트에 적용하는 것이 큰 골자이다. 사이트에 접속하면 2018년 10월 11일 기준으로 900여개의 font를 제공하고 있다. 화면 오른쪽에는 Languages 를 선택하여 해당 언어에 맞는 폰트를 필터링해서 보여준다. 아래 화면은 언어를 Korean으로 필터를 했을 때의 결과로 보여지는 한글 폰트들이다. 폰트를 보면 Senten..

Language/HTML 2018.10.11

Kotlin - Class와 Inheritance(상속)

ClassKotlin은 Java와 마찬가지로 class 를 가지고 있고, class keyword를 통해 선언한다. class Study { ... } class는 class name, header, body로 구성되어 있고, 중괄호 {} 로 둘러 쌓여있다. 단, 만약 optional인 header와 body 중 body가 없을 경우 중괄호 {} 를 다음과 같이 생략해도 된다. class Study 생성자(Constructors) Kotlin의 class는 primary constructor, secondary constructor를 가질 수 있고, primary constructor는 최대 하나, secondary constructor는 복수개로 가질 수 있다. Primary constructor 먼저..

Language/Kotlin 2018.07.25

Kotlin - for/while Loops

for Loops for loop은 iterator를 제공하는 매개체를 통해 반복적으로 무엇인가를 수행할 때 사용된다. C#의 foreach loop와 동일하다. 간단한 사용의 예를 다음과 같다. for (item in collection) print(item) for (item: Int in ints) { // ... } 앞서 말했듯이 일반적으로 iterator() funtion을 member/extension function으로 가지고 있고, next(), hasNext()를 지원하는 매개체를 통해서 반복하게 된다. 반면 iterator가 없어도 사용 가능한 경우가 있는데, range나 array/list를 사용할 때 가능하다. 숫자 범위내에서 반복할 때는 range expression을 아래와 같이..

Language/Kotlin 2018.07.24

Kotlin - when expression

when은 C언어에서의 switch와 완전히 동일하지는 않지만 상당히 유사하다. 기본적인 해당 구문의 사용 예는 다음과 같다. when (x) { 1 -> print("x == 1") 2 -> print("x == 2") else -> { print("x is neither 1 nor 2") } } when 구문에서는 condition이 맞는 branch를 찾을 때 까지 순차적으로 확인한다. 만약 조건을 만족하는 branch가 없을 경우 else branch를 수행하게 된다. 각 조건이 하나하나씩 표현될 수도 있지만 아래와 같이 여러 종류의 조건이 comma(,)로 구분되어 표현될 수도 있다. when (x) { 0, 1 -> print("x == 0 or x == 1") else -> print("ot..

Language/Kotlin 2018.07.23