Programming(178)
-
[JavaScript] Cross Domain?
다른 서버에 저장되어 있는 xml 파일을 jquery를 통해 가지고 와서 parsing을 하려던 찰나.. 계속 jquery에서 xml 가져오는 것이 실패 하는 것이었다.왜왜왜!! error를 찍어보니 xml에 대한 권한이 없다고 찍혀 있었다.해당 에러를 이용하여 열심히 구글링 한 결과 아래의 fact를 발견하였다. 자바스크립트 보안 정책 중 동일근원정책(Same-Origin Policy)이 존재하는데, 어렵게 설명할 것 없이 단순하게 서로 다른 도메인 상의 데이터는 접근이 불가능 하다는 것이다. 일명 Cross Domain 문제. 찾아보면 여러가지 해결 방법이 나타나 있다.1. 동일 서버의 url을 호출한 후 해당 url에서 다른 도메인의 url을 redirect 하는 방법. (괜찮은 방법)2. JSON..
2013.09.06 -
StringBuilder Capacity
String 연산 시 StringBuilder의 사용이 더 효용적이라는 것은 개발자들 사이에선 이미 진리로 자리잡았다. 그럼 StringBuilder는 어떻게 사용해야 되는 것일까? 대부분 아래와 같이 StringBuilder 객체 생성 후 Append 하여 사용하는 경우가 많을 것이다.StringBuilder sb = new StringBuilder(); for(int i = 0; i < 10; i++){ sb.Append(str[i]); } 하지만 위와 같은 방식은 그리 좋지 못하다. 기본적으로 StringBuilder 객체 생성 시 내부적으로 16 bytes의 버퍼 크기를 가진다. 만약 Append 시 16 bytes 이상의 문자열이 입력으로 들어왔다면, StringBuilder 내부에서는 버퍼를 ..
2013.08.12 -
[Python] python 전역 변수
Python에서 전역 변수를 쓰려면 어떻게 해야 할까? 아래의 코드를 살펴보자. 과연 결과 값을 얼마일까?flag = 0 def changeFlag() :flag = 1 if __name__ == "__main__":changeFlag()print flag changeFlag() 이후에 flag 값을 찍어보면 flag는 0 값이 나온다. 이 말인 즉 맨 위에 선언된 flag와 changeFlag()에 있는 flag 변수가 서로 다른 변수였단 것을 알 수가 있다. 또한 C 처럼 범위 밖에서 변수를 선언한다고 전역 변수가 되지 않는다는 것도 알 수 있다.그럼 flag란 값을 전역 변수로 쓰고 싶으면 어떻게 해야 할까?아래와 같이 고치면 된다.flag = 0 def changeFlag() :global fla..
2013.08.09 -
sqlite 특수문자 에러
sqlite를 쓰다 보니 입력 쿼리에 ' '' 로 바꿔주면 된다.C# 코드query = query.Replace("'", "''"); 에러는 발생하지 않지만, 매 쿼리마다 다 저렇게 replace를 해주려니.... 먼가 찝찝..
2013.08.08 -
[Python] python에서 singleton 구현
Python으로 만든 프로그램에 crontab으로 스케쥴을 걸어놨더니..아놔~ 이게 중복으로 실행되서 서버가 위험에 빠질뻔 했다 ㅠ_ㅠ 쉘 프로그래밍에서는 대부분 ps 로 프로세스 목록을 가져온 후, 해당 프로세스 이름이 있으면 그냥 빠져나오도록 해서 중복 문제를 피하곤 했었는데, ' 아 python은 좀 더 편리하지 않을까??' 라는 생각에 singleton을 찾기 시작!의외로 손쉽게 결과를 찾았다..바로 tendo 라는 package를 설치하여 손쉽게 singleton 프로그램을 구현할 수 있었다.from tendo import singleton me = singleton.SingleInstance() if __name__ == "__main__" :[......] 위 방법 외에도 프로그램 생성 시 ..
2013.08.03 -
[Python] Virtualenv
Python에는 Virtualenv라는 것이 있다. virtualenv??? 말 그대로 가상 환경이라는 것이다. 대개 서버에서 python 작업을 하다보면 서버에 깔린 패키지가 version이 다른 경우도 있고, 새롭게 어떤 package를 깔려고 하면 서버 관리자의 허락도 받아야 하고.. 여간 불편하지 않을 수 없다. 그래서 나온게 바로 virtualenv!! 서버 내에서 python 자신만의 package 공간을 마련해 주는 것이다. 서버에 최신 버전의 mysql이 깔려 있더라도 virtualenv를 통해 이전 버전의 mysql을 깔고 구동시킬 수가 있다. 소개는 이 정도까지만 하고.. 그럼 이제 설치 하는 방법에 대해 살펴보자. 우선 내가 가진 환경이 우분투 12.04라서 12.04를 기준으로 설치..
2013.08.02