분류 전체보기 50

관리자모드로 메모장에 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

PasswordDeriveBytes of C# to Java (2)

PasswordDeriveBytes from C# to Java (1) 에서 계속... 2016. 04.18 업데이트) 아래 소스를 정리한 GitHub 저장소를 만들었습니다.C#에 있는 PasswordDeriveBytes 클래스를 Java 로 구현해야 했던 나는 해당 클래스에 버그가 있다는 것까지 확인했다. 하지만, 이 버그에 대해서 어느 곳에서도 설명하지 않아서 결국 내가 실험을 통해 찾아야 했다.그리고 한참 실험을 해서 알아낸 내용은 처음 호출한 GetBytes 메소드에 전달한 값에 따라 두 번째 호출한 GetBytes 메소드의 동작이 달라진다는 것이다. 그러므로 다음과 같이 첫 번째 GetBytes의 전달인자를 (A)라고 놓았을 때 두 번째 GetBytes의 반환값을 알아낼 수 있다. 첫 번째 Ge..

Java 2014.02.08

PasswordDeriveBytes of C# to Java (1)

C#에 있는 System.Security.Cryptography.PasswordDeriveBytes 클래스를 자바에서 구현해야 하는 일이 생겼다. 고생은 그렇게 시작되었다.MSDN에 있는 설명을 보면 PBKDF1 알고리즘의 확장을 사용하여 암호에서 키를 파생시킵니다.라고 되어 있다.그럼 PBKDF1이 뭔지부터 알아보자. PBKDF1은 여기의 설명을 직역해 보면 암호화에서 사용할 키를 만들기 위해서 쓰는 해시 함수 적용?이라고 한다. 무슨 소리냐면 적당한 문자열 비밀번호를 넣으면 해시 함수를 돌려서 얻은 값을 돌려주고 그 돌려받은 값으로 암호화할 때 비밀키로 쓰라는 거다.위에 살짝 걸어둔 링크에서 시키는대로 구현을 해도 동작은 할 테지만 귀찮아서 누가 자바로 만들어 놓은게 없나 찾아봤다. 상용 라이브러리에..

Java 2014.01.17