프로그래밍 언어 34

정적 타입 언어, 동적 타입 언어 :: Python?

타입이란 자료형입니다. int형, float형, double형, string형, 객체 등이 있습니다. 정적 타입 언어 타입(자료형)이 고정된 언어입니다. 정적언어는 자료형을 컴파일 시에 결정하는 것입니다. 따라서 소스코드 상에 자료형을 지정해줍니다. 정적언어의 대표적인 종류는 C, C#, C++, JAVA 등이 있습니다. 컴파일 시 자료형에 맞지 않은 값이 저장되면 컴파일 에러가 발생합니다. 정적언어는 컴파일 시 타입에 대한 정보를 결정하기 때문에 속도가 빠르고, 타입 에러로 인한 문제점을 초기에 발견할 수 있으므로 타입의 안정성이 올라갑니다. 동적 타입 언어 타입(자료형)이 동적으로 변하는 언어입니다. 동적언어의 자료형은 실행될 때 결정됩니다. 정수형으로 선언되었던 변수가 문자형으로도 저장되고 객체로도..

Selenium 사용법(자동 로그인)

selenium은 브라우저를 자동화하는 도구입니다. 기본적으로 웹 어플리케이션 자동화 테스트를 위해 사용됩니다. 그러나 이것에만 국한되지 않고 확장하여 사용할 수 있습니다. 이번에는 브라우저에서 자동으로 원하는 페이지에 접속하여 로그인까지 하는 예제를 해보겠습니다. selenium 설치 및 사전 준비 크롬 설치 selenium은 크롬 기반 프레임워크입니다. 따라서 PC에 크롬이 설치되있어야합니다. selenium 모듈 설치 pip install selenium 웹 드라이버 설치(https://sites.google.com/a/chromium.org/chromedriver/) URL에 들어가서 stable 설치 오류나면 버전을 확인하여 다시 설치 다운받은 웹드라이버의 버전은 설치된 크롬의 버전보다 낮아야 ..

python 데이터 통신 프로토콜 : pickle 모듈

pickle 모듈은 python 객체를 직렬화 역질렬화하는 바이너리 프로토콜입니다. 얼핏보면 어렵다고 생각할 수 있는데 하나씩 살펴보겠습니다. pickle 모듈은 python에서만 사용 할 수 있습니다. 따라서 python 객체를 직렬화 역직렬화 한다고 하였습니다. 직렬화란 데이터 스트림에 쓰기 위해 객체에서 연속적인 데이터로 변환하는것이고 역직렬화는 반대입니다. pickle에서는 역속적인 데이터를 바이너리 형식으로 저장합니다. 사용법 pickle은 직렬화 역직렬화 방법만 알면 됩니다. dumps 데이터를 직렬화합니다. 직렬화한 데이터를 출력해보면 바이너리형식임을 알 수 있습니다. 소스코드 : import pickle data = { 'name': 'lee', 'age..

문자열 포맷팅 (python)

문자열 포맷팅 "김씨는 24살 입니다." "이씨는 28살 입니다." "조씨는 36살 입니다." 위 문장들을 살펴보면 "성"씨는 "나이"살 입니다 와 같은 포맷이 정해져있고 성과 나이에 해당하는 값만 다르게 쓰여집니다. python에서 위와 같이 사용하는것이 문자열 포맷팅 입니다. 이를 위해 format()을 사용합니다. 중괄호({})를 이용하는 방법 소스코드: name = ["김", "이", "조"] age = [24, 28, 36] for x in range(3): print("{}씨는 {}살 입니다.".format(name[x], age[x])) 실행 결과: 김씨는 24살 입니다. 이씨는 28살 입니다. 조씨는 36살 입니다. format 인자의 순서대로 문자열의 중괄호({}) 안에 변수들이 들어갑니..

장고 파일 업로드 기본 개념(django file upload)

오늘은 개념 정리정도로만 빨리 메모하려고 한다. 목적 : django에서 파일을 업로드 받아 파일을 저장하기 AWS의 S3에 저장해야 하지만 일단은 PC에 저장하기 다른 블로그에는 기본적인 model을 상속받아 사용하는 경우가 많았다. 하지만 나는 기본 모델들을 사용하지 않으므로 파일 자체를 변수로 저장해 어떻게 다루어야 할지 찾아보았다. django에서 파일을 업로드하면 백엔드에서는 requset.FILES로 받게된다. for x in request.FILES: request.FILES[x] 이러면 업로드한 모들 파일들을 찾아본다. 해당 type을 확인해보니 장고에서 제공하는 UploadedFile 이다. 참고 URL : https://docs.djangoproject.com/en/2.1/ref/fil..

자바스크립트 객체 안에 키 있는지 확인

객체안에 키가 있는지 확인하기 위해서는 크게 2가지 방법이 있다. hasOwnProperty 와 in 을 사용하는 방법이다. 이 둘의 차이점은 prototype의 내용까지 참조하는지 않하는지에 대한 차이이다. function Person(){ this.name = 'K';}Person.prototype.eyes = 2; var k = new Person(); console.log(k.hasOwnProperty('name')); // trueconsole.log('name' in k); // true console.log(k.hasOwnProperty('eyes')); // falseconsole.log('eyes' in k); // true console.log(('name' in k) && !k.has..

Javascript - 브라우저 객체 모델

브라우저 객체 모델은 웹 브라우저와 관련된 객체의 집합이다.Window 객체 밑에 Location객체, navigator객체, history객체, screen객체, document객체 가 존재한다. 아래 그림은 각 객체가 담당하는 구간을 표시한 그림이다.Screen객체는 화면 전체를 관리한다. 그 밑으로 웹 브라우저와 관련된 객체인 Navigator객체가 존재한다. History객체는 브라우저의 뒤로가기 앞으로 가기와 같은 기록에 관련된 객체이고 Location은 URL 주소와 관련된 객체이다. 마지막으로 Document 객체는 브라우저의 내용인 HTML문서와 관련된 객체이다. * 새로운 window 객체 생성opne(URL, name, features, replace)window.open() 을 통하여..

[nodejs] Sublime Text jade highlight을 위한 플러그인 추가

NodeJS에서 view 엔진으로 jade를 사용할 때 Highlight기능이 없어서 읽기 불편하였다. Sublime Text 편집기를 이용하여 Highlight기능을 추가하자. 먼저 편집기를 실행시키고 메뉴에서 Preferences > Browse Packages...를 선택한다. 윈도우 폴더가 열리고 우클릭하여 git bash를 통해 소스코드를 다운받는다. git clone https://github.com/miksago/jade-tmbundle.git Jade를 실행하여 소스를 다운받는다. 다운이 완료되면 jade 파일을 열고 ctr+shift+p 를 누른다음 jade를 입력한다.Set Syntax:jade를 선택하면 highlight기능이 활성화 된다.