분류 전체보기 52

Python list comprehension을 잘못쓰는 경우

Python 리스트 내에서 조건에 맞는 하나의 값을 찾는 경우에 python에는 list comprehension이 있지~라고 생각하고 아래와 같은 코드를 작성하는 경우가 있다. foundData = [x if x = 3 in dataList][0] 위의 코드는 dataList의 모든 항목을 순환하면서 값이 3인것에 대한 하위목록(sub list)를 만든 뒤, 그 첫번째 항목을 가져오는 코드이다. 얼핏 보기에는 코드양도 적고 간단해보이기까지 한데, 이렇게 하면 프로그램이 불필요하게 많은 반복을 하게 된다. 위의 코드를 다시 풀어서 쓰면 아래와 같다. tempList = [] for x in dataList: if x == 3: tempList.append(x) foundData = tempList[0] ..

Python 2017.05.13

windows 화면 녹화하기

windows 화면을 녹화해보려고 이것저것 알아봤는데, windows 화면을 녹화하는 프로그램으로는 역시 Camtasia가 제일 유명하고 또 제일 비싸다. 오픈소스로는 CamStudio라는게 있는데, 실제로 사용해보니 문제가 너무 많았다. 다른 제품들도 알아봤는데 무료로 쓰는 대신 제품 로고가 나온다거나 하는 것들이 대부분이고 실제로는 약간의 돈을 주고 구입해야 할 듯 싶었다.하지만, 우연히 검색 중에 screen-capture-recorder-to-video-windows-free라는 매우 직접적인 이름의 프로젝트를 찾아내서 공짜로 화면 녹화가 가능하게 되었다.일단 여기에서 이 프로그램을 받아서 대충 다음 다음 눌러서 설치한다.그 다음에는 FFmpeg가 필요하다. 여기들어가면 아래와 같은 화면이 나오는..

개발자 일상 2017.02.18

관리자모드로 메모장에 hosts 파일 띄우는 프로그램

개발하다보면 hosts 파일을 수시로 고쳐야 하는 일이 있다.윈도우에는 이런 작업을 도와주는 프로그램들이 꽤 여러 가지 있는데, 다들 보면 host 정보를 다이얼로그에서 입력해야 한다든지, 미리 파일을 복사해서 만들어둬야 한다든지, 별 것도 아닌 걸로 귀찮게 하는 것들이 많다.나는 그냥 메모장을 관리자 권한으로 열려고 시작 메뉴를 뒤지기 싫었고 호스트 파일 찾아다니는게 귀찮았을 뿐이었다.너무 간단한 프로그램이라 그런건지, 아니면 다들 그냥 만들어서 쓰고 있는 건지, 내가 검색을 잘 못하는 건지는 모르겠지만, 저 두가지 동작만 하는 프로그램을 찾을 수 없어서 하나 만들었다. ;;;https://github.com/gilchris/HostOpener/releases

개발자 일상 2016.12.08

" (큰 따옴표, double quote) 앞에 \ 붙여주는 유틸

얼마전에 어떤 일을 하다가 복사 붙여넣기로 " 가 잔뜩 들어간 문자열을 프로그램 코드 문자열 ("") 안에 \를 붙여서 넣어야 하는 일이 있었다." 앞에 \ 를 넣는 방법은 텍스트 에디터에서 찾아 바꾸기로 넣는 방법, 간단한 인터프린터 언어로 바꾸는 방법 등등 여러 가지 방법을 생각해 볼 수 있겠고, 개발자라면 각자 나름의 방법을 찾아서 이용하고 있을 것이다.그런데 혹시, 정말 혹시라도 나처럼 그마저도 귀찮은 사람을 위해서 간단한 웹용 유틸을 하나 만들었다.http://gilchris.github.io/utils/escape_double_quotes.html바쁜데 하필 그 컴퓨터에는 쓸만한 에디터가 없었다거나 그냥 더 빨리 (에디터에서 찾아 바꾸기 보다 진짜 더 빠를지는 잘 모르겠지만.. ) 해결하고 싶..

Javascript 2016.07.17

MAC에서 python3 설치 위치와 실행 방법

맥에는 기본적으로 OS에 Python이 설치되어 있다. 하지만, 최근 버전인 El Capitan에도 2.7 버전이 설치가 되어 있어서 3.x를 사용하려면 따로 설치해야 한다. http://python.org 에서 파일을 받으면 pkg 확장자로 된 파일이 받아지고 이를 설치하면 어디서 설치 위치를 고를 수도 없이 설치가 된다. python을 실행해보려고 했지만 어디있는지 몰라서 해멧는데 응용 프로그램(Application) 디렉토리에 가면 Python 3.어쩌고라고 있다. (나는 3.5를 설치했다.) 안에 들어가면 실행할 수 있는 프로그램이 IDLE.app 하고 Python Launcher.app 두 가지가 있는데, IDLE.app은 대화형 콘솔이고, Python Launcher.app은 설정용 프로그램이..

Python 2016.07.11

한/영 키 대신에 Shift+Space 또는 Ctrl+Space 동작 지원 프로그램

취향일수도 있고, DOS 시절의 버릇일수도 있고, 한글 프로그램의 영향일수도 있고, 리눅스를 주로 써서 그럴 수도 있고, 나처럼 한/영키 없이 오른쪽 Alt를 한/영키로 쓰는 키보드에서 스페이스바가 너무 길어 오른쪽 Alt키를 치다가 손이 꼬이는 경우일 수도 있지만, 어쨌든 한/영키를 Shift+Space로 바꾸고 싶은 경우가 있다.윈도우에서 기본으로 이게 되는 키보드가 드라이버가 설치가 되어 있긴 한데, 기본 키보드 드라이버가 아니라서 윈도우 처음 설치할 때 잘 해야 하거나, 키보드 설정을 변경하거나, 레지스트리를 바꿔야 한다. (셋 다 똑같이 레지스트리를 바꾸는 작업이다.)물론 Shift+Space로 한/영키를 바꿀 생각까지 하는 사람은 레지스트리 편집이야 그냥 쉽게 할 수 있겠지만, 그래도 더 쉽고..

개발자 일상 2016.03.27

Angular.js noop function

noop 함수는 아무것도 안하는 함수인데 유용하게 쓰일 때가 있다. 일단 예제를 하나 보자. function foo(callback) { var result = calculateResult(); (callback || angular.noop)(result);} 이 예제에서 callback이 함수라면 result를 전달인자로 넣어서 callback 함수를 실행하고,callback 가 함수가 아니라면(undefined라던가...) angular.noop 함수를 실행하게 된다. 즉, 위의 코드는 아래의 코드와 비슷한 동작을 한다. 정확히 똑같진 않지만, 그게 그거다. function foo(callback) { var result = calculateResult(); if (typeof callback == ..

Javascript 2015.12.05

초기 조건 확인 방법

개발할 때 흔히 있는 경우로 메소드에 초기 조건을 확인한 후 일정 조건을 만족할 때에만 로직을 실행하는 경우가 있다. 이런 초기조건을 확인하는 형태는 크게 두 가지가 있는데, 각각 장단점이 있다. 다음의 예1)과 예2)를 보자. 예1) public int doSomthing(int value1, String value2) { if (value1 > 0) { if ("OK".equals(value2)) { // do something return SUCCESS; } else { return ERROR_2; } } else { return ERROR_1; } }예2)public int doSomething(int value1, String value2) { if (0 == value1) { return ER..

Java 2015.08.05

관리자 페이지 숨기기

솔루션을 납품하는 경우와 같이 웹 애플리케이션을 고객에게 쥐어주면 웹 취약점 스캐닝 툴로 돌린 결과를 가지고 뭐라뭐라 하는 경우들이 있다. 보통 보안팀이 따로 있어 납품된 애플리케이션의 보안 부분을 검수하는 회사들이 주로 그러는데 그런 걸로 돌렸을 때 취약하다고 나오는 것 중에 대표적인 예가 바로 '관리자 페이지 노출'이다. 물론 관리자 페이지가 아무런 보안 장치 없이 통째로 노출되어 있다면 말도 안되게 위험한 일이다. 하지만 대부분의 취약점 툴이라는 애들은 http://abcd.com/admin 과 같이 그냥 주소 뒤에 admin, administrator, administration, manage, manager 등으로 인증없이 들어가서 들어가지면 그냥 위험하다고 나온다. 그리고 제대로 개발했다면 이..

개발자 일상 2014.06.10