본문 바로가기

OpenSource 활동

[pj-socket] 필요 기능에 대한 고찰 우선 package diagram 을 그려보면서 내가 필요로 하는 것이 무었인지, 내가 개발자라면 어떤 기능을 필요로 할 것인지를 중심으로 생각하기로 했다.그런데.. 은근히 안그려진다. 세부적인 내용(자료구조, 알고리즘 등)은 추후 생각하기로 했다. 그래서 필요 기능을 먼저 나열하고자 했다.우선 TCP, UDP 에 대한 각각의 통신이 두루 사용될 것이기에 tcp, udp 통신은 필수라 생각하였다.또한 게임서버 통신에서 보안은 필수 불 가결이기에 SSL방식의 통신과, RSA 알고리즘을 통한 방법 또한 필요할 것이라 생각해 보았다. 여기까지 생각하니 무엇이 있어야 편리한지를 생각해 보았다.우선 클라이언트와의 통신을 송수신 가능한 함수 제공이 일차적으로 필요할 것이다. 송신은 상관없지만, 수신의 경우 어떻게 .. 더보기
[pj-socket] 해당 프로젝트 시작의 이유 궁극적으로는 고성능의 MMORPG 서버를 만들어 보고 싶다.개인적으로 생각하는 것이 게임 서버 쪽의 높은 고성능 서버 구현을 위한 각종 기술력을 얻고 싶다는 것이 그 이유이다.원래 바람의 나라라는 게임을 너무나도 좋아하던 나머지 만들고 싶다 라고 생각하였고,이러한 욕구가 나를 지금의 자리에 까지 오게 만들어 준 것이라 생각한다. 때문에 우선 MMORPG 서버를 만들기 전 범용 네트워크 라이브러리를 만들고자 한다.빌드 환경은 되도록이면 다중 플랫폼을 생각하려 하지만, 최우선 개발은 macos 에서 진행되므로,macos 에서 개발한 뒤, linux, windows 등의 지원이 가능하도록 할 예정이다. 프로젝트의 이름은 pj-socket 이라고 지었다.모든 프로젝트를 project 의 줄임말인 pj-* 이라는.. 더보기
Contributer 가 되기위한 첫걸음.. 리눅스에서 드라이버에서 조차도 내 이메일 주소 단 한줄을 올리기 위해 얼마나 많은 노력과 심혈과 기술력을 필요로 하는지절절히 알 수 있었던 계기였다. 이 패치 하나를 수락받기 위해 realtek maintainer 인 Larry Finger 라는 분과 수 많은 이야기를 나누었으며, 그 과정에서 다른사람이 뜻하지 않는 스케쥴링 버그를 찾기도 하였다.정말이지 엄청나다.. 아래 링크는 커밋하기 위한 도전들이다.https://patchwork.kernel.org/project/linux-wireless/list/?submitter=Byeoungwook+Kim&state=* 이렇게 수많은 이야기 끝에 결국 Larry Finger에게 Accept 받을 수 있었고 wireless maintainer 에게 수락받아내 .. 더보기
재사용 가능한 부분에 대한 수정작업 2탄 우선 이에 대해 2건의 메일이 바로 날아왔다. 이 메일을 보고 리눅스 라는 거대한 오픈소스에 대해 다시한번 놀란것이 예상은 했지만 내부적으로 성능 분석을 위한 git repository 가 돌아가고 있었다.메일링 리스트로 날아오는 모든 메일에 대해 패치를 최신본에 대해 적용하여 별도의 브렌치를 통해 자동으로 확인을 해주는 bot이 존재하는 것이였다. ---Open Source Technology Center Intel Corporation 0-DAY kernel test infrastructurehttps://lists.01.org/pipermail/kbuild-all---인텔은 정말 하는게 많구나 라는 생각을 했다. 커널 성능 관리를 인텔에서 지원하고 있었다. 우선 2개의 메일중 하나의 메일이다.htt.. 더보기
재사용 가능한 부분에 대한 수정작업 1탄 관련메일 : http://marc.info/?l=linux-wireless&m=145442816923772&w=2 realtek의 wireless부분의 공통 core.c 파일을 살펴보던중 재사용이 가능한 부분임이 명확함에도 불구하고 함수화 되지 않은 부분과대량의 if ... else if ... else 문을 볼 수 있었다. 난 이 부분을 재사용이 가능한 코드부분을 수정이라는 제목으로 패치를 만들어서 보냈다.이에 대한 답변을 전달 받았는데 전달받은 답변은 아래와 같았다. 요약하자면 이렇다."몇몇 잘못된 부분이 이러이러 하고, 또 내 생각에 이 패치는 둘로 나눌수 있을것 같다." 잘못된 부분이라 말해준 부분을 검토해보니 의도 파악을 잘못하고 있어서해당 부분의 차이점을 설명해 주었다. "두 함수는 다른것이다.. 더보기
의미없는 라인 제거 소스 분석도중 의미없는 라인을 발견하였다.예전 같았으면 그냥 지나쳤겠지만, 어제 리눅스 커밋을 한번 맛보고 나니 수정하고 싶었다. 검색해 보았지만 관련 홈페이지에도 어떻게 컨트리뷰트하는지 그 룰이 기록되어있지 않았고,어디로 메일을 보내야하는 지도 한참 찾았다. 찾아보니 grub-devel@gnu.org 라는 개발자 메일링 리스트를 찾을수 있었으며 패치 보내는 방식은 리눅스와 동일하다고 적혀있는 것을 확인하였다.별도로 메인테이너에게 보낼 필요 없이 저 메일링으로 보내면 메인테이너들도 볼꺼라고 써있었다. 그래서 보냈다. 보낸 메일의 내용은 아래와 같다.https://www.mail-archive.com/grub-devel@gnu.org/msg24224.html 보셨겠지만 정말 사소한 것 하나라고나 할까.. .. 더보기
나의 첫 linux contribute 링크 : http://comments.gmane.org/gmane.linux.kernel/2140734 정말 사소한거 하나 고쳤긴 하지만 정말 뿌듯하다.이게 실제로 커밋에 아직 반영되지는 않았지만, 처음 보내보는 와중에 이메일로 조언받고 답변까지 했다. 리눅스는 정말 대형오픈소스라는 것을 새삼느낀것이 각 서브파트별로 메인테이너가 존재하며 그 메인테이너가 관리하는 개별 저장소가 또 별도로 존재한다.이 계기를 시작으로 꾸준히 해나아가야지.. 일단 목표는 uvc 쪽을 생각하고 있다.이번 D2 Campus FEST 2015를 하면서 결승전 진행중인 과제가 어차피 wireless 쪽과 uvc 쪽을 전부 건드려야 하므로우선 wireless 쪽의 realtek 802.11 칩중 하나의 usb에 대한 부분을 수정해 보.. 더보기
elephant.io - php와 socket.io간의 통신을 위한 라이브러리 @kbu1564 elephant.io는 php에서 node.js의 socket.io 라이브러리와의 원활한 통신을 수행하기 위해 제작된 php 확장 라이브러리 입니다. 실행 최소 환경으로는 php 5.4.0 이상의 버전이 필요하며, composer를 설치하여 php composer.phar install 명령으로 설치하시면 됩니다. 자세한 설치법이나 사용 방법은 예제 소스와 README.md 를 참고하시기 바랍니다. --------------------- 해당 프로젝트의 2.0 버전에서 3.0 버전으로의 대대적인 소스 리펙토링 작업이 수행되었었습니다. --------------------- 아래는 elephant.io의 README.md 파일의 내용 입니다. Elephant.io ___ _,.--.,_ E.. 더보기
PHP-SRC - CODING_STANDARDS 번역 -1 https://github.com/Wisembly/elephant.io/graphs/contributors본격적인 소스기여에 성공하였습니다. 오늘은 하루죙일 php 소스 분석에 열중하였습니다.우선 차례차례 진행하기로 했고 오랜시간 공들이기로 하였습니다. https://github.com/php/php-src/blob/master/CODING_STANDARDSphp contributer로 활동하기 전에 숙지해야할 코딩 스타일, git-rules, 등등에 관한 사항을 우선 번역하여 이해하는것이 필요하다고 파단하여 오늘밤부터 발번역 작업에 착수했네요. 우선 머리로는 무슨 문장인지 이해는되는데 이상하게 글로 표현하니깐 애매해지는... 우선 번역한 글 입니다.참조 : https://github.com/php/ph.. 더보기