본문 바로가기

Django Test - pytest, reuse, create db, migration 등 간단 소개 pytest -p no:warnings DJANGO TEST - PYTEST pytest를 사용하면 테스트 데이터베이스를 다시 만들지 않아도 되니까 테스트 시작 속도가 빠르죠. 그래서 많이들 사용하시는 것 같습니다. 저도 테스트 할 때 pytest로 돌리는데 일단 ini는 기본적으로 reuse 옵션을 주고 돌립니다. 이유는 이미 생성된 test db를 사용하고 싶기 때문이죠. pytest -s --reuse-db 하지만 처음 테스트를 돌리거나 모델(model)의 변경이 있었다면 기존 test db 구조와 테스트가 돌아가는 코드가 맞지 않겠죠. 예를 들어서 없는 테이블에 접근하려고 한다거나? 없는 컬럼을 사용해서 테스트 한다거나 등등 그럴 때는 --create-db 옵션을 주고 돌립니다. 다시 정리하면 p.. 더보기
javascript replace (with regex) 자바스크립트에서 replace는 제일 처음것만 해준다고 합니다. 그래서 regex로 replace를 많이 사용한다고 합니다. 결론은 귀찮은 regex를 해야 한다. 라는 것인데. 생각해보면 내가 싫어서 제대로 공부하지 않은 regex라고 마냥 뒤로 미뤄두는 것도 아닌 것 같아 사용할 수 있을 때 사용해보려고 노력중입니다. 일단 아래 사이트에서 regex 로 매칭되는 것들을 확인할 수 있습니다. 테스트 하는 거죠. https://www.regexpal.com/ Regex Tester - Javascript, PCRE, PHP RegexPal requires a modern browser. Please update your browser to the latest version and try again. ww.. 더보기
html select selection for test / jQuery, trigger select를 선택하기 위해서는 아래와 같은 코드로 가능합니다. jQuery를 통해서 trigger('change') 하고 싶은 select의 element를 알아냅니다. trigger('change') 하는데 value가 option_3 인 것을 선택하도록 하는 것입니다. 하나 두울 세엣 네엣 다섯 말로 설명하는 것보다 코드를 보는게 훨씬 이해가 빠른 경우가 많죠. 위에 적어둔 설명글보다 코드를 보시는 것을 추천합니다. 개발 과정에서 어떤 선택들을 잔뜩하고 그 결과를 봐야할 때 테스트를 해야 하는 것이 많은데 전부 다 눌러보기 힘들 때 이벤트에 따라서 다른 것을 선택하는 코드를 작성해야 할 때 등등 에서 사용할 수 있겠습니다. 더보기
Selenium Webdriver 활용 Instagram Login 해보기 (Python) Selenium Webdriver를 활용하면 웹 파싱이나 반복작업 등을 처리할 수 있습니다. 여기서는 간단하게 Instagram Login을 해보는 과정을 작성해봅니다. 환경설정이나 라이브러리 설치는 건너뛰고요. 저는 chromedriver를 활용해서 해보겠습니다. chromedriver는 아래 주소에서 받으실 수 있습니다. 적당한 곳에 다운로드 및 위치 해두면 됩니다. chromedriver : http://chromedriver.chromium.org/ 일단 인스타그램 로그인 페이지를 띄워보고 어떻게 할지 작성할게요. 아래와 같은 창인데요. 단순하게 Id 역할을 하는 phone number, username, or email 입력하는 input이 하나 있고요. password input이 하나 있습니.. 더보기
웹 개발, 크롬 개발자도구, 스마트폰(모바일) 기기 추가 제목이 복잡하네요. 1. 웹 개발하는 과정에서 크롬 브라우저의 개발자 도구가 많이 사용되는 것으로 알고 있어요.2. 개발자 도구에서 모바일 기기에서 어떻게 보여지는지 확인할 수 있구요. 3. 여러 모바일 기기를 추가할 수 있어요!! 이번 포스팅에서는 3번 어떻게 추가하는지에 대해서 그림으로 정리해두려고 합니다. 1. 윈도우에서는 크롬 브라우저에서 F12를 누르면 개발자 도구가 보이고요. 리눅스에서는 Ctrl + Shift + i 를 누르면 보이고요. 맥에서는 Alt + Command + i 를 누르면 되요. 아래 그림과 같이 나오면 성공!! 2. 위 그림에서 오른쪽 상단에 쩜쩜쩜 세로로 찍힌거 누르면 아래 그림을 볼 수 있어요. 여기서 Settings를 선택 !! 3. Settings에 들어와서 Devi.. 더보기
Python Performance 05 - list, dqueue 1. Python Performance 01 - String Concatenation : http://ngee.tistory.com/710 2. Python Performance 02 - Loops : http://ngee.tistory.com/711 3. Python Performance 03 - Eliminate Dots : http://ngee.tistory.com/712 4. Python Performance 04 - Call Function : http://ngee.tistory.com/7135. Python Performance 05 - List, Dqueue : http://ngee.tistory.com/799 파이썬 성능과 관련된 포스팅을 모아두려고 합니다. 다섯 번째는 List와 dque.. 더보기
파이썬 basic - 리스트 (append, pop, insert) 오늘은 리스트 함수 3개에 대해서 정리해두려고 합니다. 참고 사이트는 https://docs.python.org/2/tutorial/datastructures.html 입니다. 사용하는 리스트는 아래와 같이 생겼다고 가정할께요. tList = ['a', 'b', 'c', 'd'] 1. append 먼저 append는 리스트의 맨 마지막에 새로운 요소를 추가하는 것입니다. tList.append('e') 위와 같은 문장을 실행하면 리스트가 아래와 같이 변경되겠죠. 2. insert 꼭 맨 마지막에 새로운 요소를 추가해야 하는 것은 아니죠. 특정 인덱스(index)에 새로운 요소를 추가하고자 할 때는 insert 라는 함수를 사용할 수 있습니다. 예로 0번째 인덱스에 'f' 를 추가하기 위해서는 아래와 같이.. 더보기
Ceph, RADOS - object list, put, and get 관련 포스팅 목록 Ceph, RADOS - pool list, create, delete - http://ngee.tistory.com/758 Ceph, RADOS - object list, put, and get - http://ngee.tistory.com/781 Librados Python - Pool List, Create, Delete - http://ngee.tistory.com/759 Librados Python - Object Input, Output - http://ngee.tistory.com/760 일단 참고 URL 부터 architecture - http://docs.ceph.com/docs/master/architecture/ rados object storage utility -.. 더보기
Django Forms(004) - submit form Blog Posting - Django Forms Django Forms(001) - init : http://ngee.tistory.com/736 Django Forms(002) - create page : http://ngee.tistory.com/737Django Forms(003) - create form : http://ngee.tistory.com/739Django Forms(004) - submit form : http://ngee.tistory.com/740 001, 002, 003에 이어서 이번에는 004 submit form입니다. 결론적으로는 잘 까먹는 저를 위해서 작성해두는 포스팅이구요. 혹시라도 읽고 계시는 분이라면 순서대로 읽고 계시다고 가정하고 내용을 정리합니다. 앞선 포스팅에.. 더보기
JMeter Plugin Installation (플러그인 설치) JMeter 플러그인을 설치하는 방법에 대해서 간단하게 그림 몇 개와 같이 정리해둡니다아 :) 1. JMeter가 설치된 폴더 찾기 - 음 설치하는 방법은 다음에 하구요. 이번에는 Plugin을 설치하이 위해서 JMeter가 어디에 설치되었는지 확인하시면 됩니다. 이건 설치하는 사람마다 다를 수 있구요. 저는 /opt/jmeter/apache-jmeter-2.12 에 설치해두었습니다. 혹시 까먹으신 분들은 jmeter-server 같은 것을 find로 검색해보세요. 아마도 나오지 않을까요?? find / -name jmeter-server 2. 플러그인 다운로드 받기 - 플러그인 중에서 가장 많이 사용되는 것으로 보이는 Standard 플러그인은 다음 주소에서 다운로드 하실 수 있습니다. Download.. 더보기
Python, psycopg2 : INSERT INTO .... Geometry SQL 이번 포스팅은 바로 전 포스팅에서 Geometry를 입력하는 방법만 추가한 것입니다. 참고 ... Python, psycopg2 : INSERT INTO .... SQL - http://ngee.tistory.com/638 일단 사용되는 테이블은 아래 사진과 같습니다. 일단 geometry 컬럼을 생성하는 것이나, SQL문을 통해서 입력하는 것은 이전 포스팅들에서 다룬 적이 있습니다. 관련 포스팅 PostGIS : PostGIS Setting Script : http://ngee.tistory.com/629 PostGIS : Create Geospatial Table : http://ngee.tistory.com/631 PostGIS : Insert Geospatial Data into Table : h.. 더보기
Celery Flower install and access *관련 포스팅 내용 Celery + RabbitMQ + Django 참조사이트 : http://ngee.tistory.com/540 Celery + RabbitMQ + Django 연계 1 : http://ngee.tistory.com/542 Celery + RabbitMQ + Django 연계 2 : http://ngee.tistory.com/548 Celery + RabbitMQ + Django 연계 3 : http://ngee.tistory.com/549 Celery Args : http://ngee.tistory.com/550 Celery Worker : http://ngee.tistory.com/563Celery Worker2 : http://ngee.tistory.com/564Celery Lo.. 더보기
swift basic - optional test swift 기초를 공부하고 있어요. 아직은 많이 부족해서, 문서 읽은 것들을 정리하거나 실습해보고 있습니다 ^^ Optional에 쉽게 적응되지 않네요. line 6: String 타입의 변수 possibleNumber를 문자열 "123"으로 초기화했습니다. line 7: 타입을 명확하게 주지 않았지만 Swift에서 아마도 Optional Int로 추론할 것 같네요. String 타입의 내장 함수 중에 하나인 toInt()를 통해서 possibleNumber가 가진 문자열을 int로 변경해서 convertedNumber에 저장합니다. Swift Standard Library Reference를 참고해보면 toInt()는 아래와 같이 정의되네요. func toInt() -> Int? 인자는 받지 않고, I.. 더보기
swift basic - range operator swift 문서를 보면서 몇 가지는 따라서 해보고 있습니다. range operator 라고 python의 range(start, end) 함수와 유사한 일을 처리하는 operator가 존재해서 간단하게 정리해봅니다. 일단 python의 range(start,end) 함수를 for문에 적용해보면 다음과 같습니다. >>> for i in range(0,10): ... print i ... 0 1 2 3 4 5 6 7 8 9 for 문 같은 곳에 사용할 수 있고, end를 포함하지 않죠. 이와 동일한 것이 swift의 half-range operator 이네요.사용 방법은 for i in 0.. (변경후) .. 더보기
swift basic - function swift 공부하고 있습니다 ^^;; 기초 중에 기초!! function 선언하는 부분을 간단하게 정리해보면 다음과 같습니다. func testFunc(var1:String, var2:Double) -> String { println(var1) return "\(var2)" + " " + var1 } var rString = testFunc("hello", 40.0) println(rString) 제가 볼 때는 swift가 좀 더 직관적이네요. 눈에도 잘 들어오구요. 아래와 같이 요약될 수 있겠구요. func 함수이름(변수명1:변수명1의_타입, .....) -> 반환형 { .... } 위 내용은 제일 간단한 구조이고, 더 많은 형식의 function이 존재합니다. 자세한 내용은 Swift 문서를 참고하세.. 더보기
Go basic - Package (패키지) Go에서 제공하고 있는 내장 패키지들은 아래 그림과 같이 있더라구요. 다음 웹 페이지에 잘 소개되어 있습니다. Packages : http://golang.org/pkg/ Go에서 만드는 프로그램은 패키지로 구성된다고 합니다. http://go-tour-kr.appspot.com/#4 예제에서 살펴볼 수 있는 것 같이 내장 fmt, math 패키지를 불러올 수 있고, 그것을 가져다 쓸 수도 있구요. math.Pi 처럼 말이죠. 그럼 저희가 코딩하는 것도 Package로 만들어지고, 그것을 불러다 쓰는 것은 기초적인 부분이니깐 체크하고 넘어가도록 하겠습니다. 위 Link에 있는 소스를 main으로 하고, 다른 Package를 만들어보죠. 구조는.. 아래와 같이됩니다. --- ProjectHome (dire.. 더보기