전체 글 255

멀티스레딩

멀티스레딩을 어렵게 생각하는 경우가 있는데 기본 원리를 이해하면 쉽게, 정확하게 만들 수 있다. 좋은 멀티스레딩 구조를 만드려면 77%가 좋은 모델링/설계, 23%가 멀티스레딩이 돌아갈 플랫폼/OS/프로그래밍 언어 특성에 대한 지식이 필요하다. 쉽고 실용적인 (work) 멀티스레딩 원리 :1. 스레드들이 최대한 독립적으로 돌 수 있도록 한다. 자기를 생성한 스레드나 다른 스레드와의 교류를 최소한으로 한다. 2. 스레드가 만들어져 돌아가기 시작할 때 필요한 자원이나 데이터를 받거나 만들어 시작하고, 그것들로 스레드가 돌 수 있도록 한다.3. 스레드가 만들어져 돌기 시작하면 그 스레드나 그것을 만든 스레드가 각자 다른 인생을 사는 것임을 항상 명심한다. 사는 것, 죽는 것도 다르다. 4. 스레드들이 함께 사..

착한 프로그래밍

좋은 소프트웨어는 사용자가 원하는 것을 주어야 한다. 그러려면 사용자의 요구를 잘 분석해야 겠다. 경제성도 따져보아야 한다. 정해진 가격과 시간으로 만들어야 하기에. 이를 위해 적절한 소프트웨어 아키텍쳐를 생각해 보아야 한다. 좋은 소프트웨어는 SW적 품질이 좋아야 한다. 이해하기 쉽고, 간결하고, 유지보수 쉽고, 성능 좋게 짜여진 프로그램이 좋은 품질의 SW이다. 좋은 품질은 좋은 프로그래머가 만든다. 좋은 프로그래머는 프로그래밍을 단순히 code를 배설하는 행위라 여기지 않는다. 레고 블럭 쌓기 같이, 예쁜 공예품을 만드는 것 같은 세심함과 뿌듯함으로, 사랑하는 사람을 위해 음식을 만들 때와 같은 착한 마음으로 임한다. 최소한 전에는 그랬다. 80년대 프로그래밍은 K&R 로 시작했다. Fortran으..

윈도우즈 시스템 분석 도구

기술진들을 도와주려다가 윈도우즈 드라이버를, 레지스트리를 보게되었다. 원해서 그렇게 된 것은 아니지만 덕분에 윈도우즈에 대해 조금 더 알게된다. 그러다보니 당연히 이런 생각이 든다. 윈도우에서 프로세스/스레드가 뜨면 그에 따른 모든 정보를 다 함께 보면 좋겠는데... 프로세스명, PID, User, Path, 참조하는 레지스트리, 레지스트리 operation 등 이런 것들을 일목요연하게 보여 주는 도구가 있으면 좋겠는데... 대부분 그렇듯이, 질문이 좋으면 대답도 좋은 법. http://technet.microsoft.com/ko-kr/sysinternals 에 가보니 좋은 도구가 많다. 내가 원하던 것, 그리고 그 외에도 유용한 것이 많다. 윈도우 분석하거나 문제점 파악하려는 사람들에게 보물창고일 것 ..

AWS linux AMI에 Joomla 설치

AWS linux 에 Joomla1.7.3을 설치해 보자. localhost에 Joomla를 설치한 경험을 살려 다음과 같은 방법을 실행했음. 1. Joomla를 local에 다운 받은 후 압축을 풀음. 2. Filezilla 를 EC2 계정으로 연결 해 Joomla 파일들을 업로드 시도. Filezilla가 EC2 계정에 접근 가능하도록 PuTTY ssh 클라이언트에서 certificate 설정해 주었듯이 Filezilla도 유사하게 설정해야 함. 다행인 것은 Filezilla가 putty에서 생성한 개인키를 인식함. 따라서, 편집->설정->SFTP로 들어가 "키 파일 추가" 에서 putty - AWS 접속 시 만들어 두었던 *.ppk 키파일을 추가함. 3. 이와 같이 해서 filezilla로 EC2와..

카테고리 없음 2012.01.14

AWS Linux AMI에 APC 설치

AWS 표준 LINUX AMI (CentOS) 에 일반적인 AMP가 설치되어 있는 상태에서 Alternate PHP Cache 설치하려 함. 시작하기 전에 # sudo yum update # pear upgrade-all 1. 일단 앞서 Ollech cloud 에서 했던 방법으로 해 봄 # sudo yum install php-devel httpd-devel pcre-devel # pecl install apc configure: error: in `/var/tmp/pear-build-rootxNv5vJ/APC-3.1.9': configure: error: no acceptable C compiler found in $PATH See `config.log' for more details. ERROR: `..

KT uCloud 튜닝

KT Olleh Ucloud 서버 중 가장 저렴한 1vCore, 1GB 메모리, 100GB 사양을 선택하고... PHP 를 중심으로 튜닝. - CentOS5.4 인 OS를 업데이트 할 수 있는지? 지난번 Ubuntu 가상서버에서는 잘 되지 않았는데... - AMP를 각각 업데이트 할 수 있는지. - SE가 요구하는 AMP의 추가 모듈들을 설치하고 사용할 수 있는지 - 일단 /root의 .bashrc 가서 내가 좋아하는 형태로 UI 개선하고 몇개 변수 만들어 export하고 source .bashrc - yum 에 대해 읽어보니, 대충 apt와 비슷. 구글링하고,,, - yum의 repository 정보가 /etc/yum.repos.d 폴더에 있다. 패스. - 과감하게 전체 업데이트를 목표로... 된다. ..

Reflect on .NET 그러니까, 우리나라 SW 기술자에게 어떻게 희망을 갖도록 하나?!

한달 전만해도 .NET이 대체 어찌 생긴 녀석인지 잘 몰랐다. 그런데 관심을 갖아야 할 이유가 생겼다. 이럴 줄 몰랐다. 또 이렇게 모를 일이 생길 것이 얼마나 많을지. 다행스럽게 .NET환경이 자바와 거의 닮았다. MSDN에 가니 자료가 넘친다. 2주 전 Visual Studio 2010을 깔다가 황당했다. 7기가 바이트가 넘다니. OMG. 이래 저래 C 드라이브에 공간을 마련하고 설치시작... 그리고 몇 시간이 걸렸다. 10년도 더 지난 전에 학생들 가르칠때 VS6.0 과는 천양지차. 그동안 많이 발전했다. Eclipse보다 단순하고 직관적이다. Eclipse 쓰던 사람은 쉽게 적응하겠다. 한가지 아쉬운 것이 VS 2010 이 한글판이라 금방 눈에 들어오지 않는다. 라이브러리 보는 것은 인터넷 영어..

수호미를 올리고,

어제 수호미, SuhoMe를 안드로이드 마켓에 올렸다. "나를 지켜줘" 라고 하는 앱인데... 오늘 80명 정도가 설치한 모양이다. 누가 어떻게 쓰고 있는지? 작년 여름부터 간단한 위치기반 안드로이드앱을 만들어 보자고 해서 낚시꾼을 위한 것을 생각해 보다 영 말이 안되어서 대신 사용자가 곁에 두고 항상 든든한 수호천사 노릇을 하는 앱을 만들기로 해 일단 가장 기본적인 기능만 꾸려서 올렸다. 사용자가 필요할 때 사용자의 현재 위치를 주소와 지도로 설정한 사람에게 문자를 통해 보낸다. 일반폰과 스마트폰 모두 다 보낼 수 있다. 특별한 기능은 아니다. 그렇지만 불안정한 GPS 수신환경, 부정확한 LAN 기반 위치판별, 불안정한 통신환경에서 가능한 잘 작동하도록 만드는 데 생각을 많이 했다. 그러면서 배터리를..

Round Here 2011.02.09