엘키의 주절 주절

소소한 개발 이야기

코딩 컨벤션

내가 코드를 작성할 때 신경쓰는 코딩 규약들을 정리해본다. 소유권 객체의 소유 주체는 (생성과 소멸의 관리 주체는) 하나로 규정한다. 객체의 생성,소멸 스레드도 하나로 규정한다. 다른 클래스에서 호출되어야만 하는 메소드를 만들지 말라. Has a 관계가 명확하다면, 이 관계를 혼란 시킬 수 있는 메소드는 절대 만들지 마라. 진입점...

레거시 코드 활용 전략

최근 레거시 코드 활용 전략이라는 책을 읽고 있다. 업계에서 흔히 레거시 코드라 불리는 코드를 많이 만져보게 되죠. 굳이 라이브팀이 아니더라도, 자주 만나게 된다. 내 주변에서도 흔히 사용하는 용어로써의 레거시 코드는 복잡한 코드, 결합도 높은 코드, 제약이 많은 코드, 너무 긴 메소드 등을 통칭하는 용도로 쓰인다 대략 외국에서도 낡은 코드, 유...

로직의 네트워크 동기화 처리

실시간 게임이라 하더라도, 내부적으로는 모든 게임의 구성은 턴으로 구성하는 것이 좋다. (실제 초당 n프레임 같은 개념에서 각 프레임은 턴과 같은 개념이기 때문이다.) 이 턴의 동작 주기를 입력, 렌더, 로직 등을 잘 구분지어 처리하는 것이 좋다.   예를 들면, 입력은 1초에 5번, 렌더는 1초에 30번, 로직은 1초에 5번 등의 턴 기준을 명확히...

Thread design 01 - 우리는 이미 알고 있었다

제가 프로그래밍을 처음 배울 때의 CLI 프로그래밍과 WIN32 프로그래밍으로 넘어왔을 때 큰 괴리를 느꼈습니다. 그 이유는 바로 EVENT-DRIVEN(message based)프로그래밍 때문이었죠. 현재는 reactor라는 패턴이란 이름으로 더 알려진 이 메시지 기반 프로그래밍은, DOS 시절의 동기 프로그래밍에 익숙한 많은 프로그래머를 괴롭게...

웹 로그 서버 구축기 with rails V2

개발 목표 자동으로 파일로 남겨져 있는 로그를 분석해, 시스템에 영향을 주는 작업을 알려주기 위해 개발 됐다. 파일로 남겨져 있는 log를 db으로 밀어 넣는 작업은 log_shipper가 담당한다. db에 있는 데이터를 조건에 맞게 검색해서 보여주는 역할을 하는 web_server를 만들고자 의도했다. 실제 쿼리 작성...

non-blocking multithread programming

클럭도 물론 중요하지만, 코어가 몇갠지 부터 보는 일이 자연스러워진지도 몇년. 다들 병렬 프로그래밍 잘 하고 계시나요? 서버 프로그래밍을 시작한 2006년부터 지금까지… 멀티 스레드를 다뤄오며, 느낀 것에 대해 이야기해보고자 한다. lock 말그대로 잠금. 이 데이터 unlock 될때 까지 쓰지말라는 거다. non-blocking...

유닛 테스트의 진짜 효과와 역할

유닛 테스트를 내가 접한 지도 어언 10년이 다 되간다. 그간 내가 거쳐온 많은 회사에서 사용되기도, 무시되기도, 우선 순위에 밀리기도 하더라.   이 과정에서 제안도 여러 번 해보고, 설득 과정에서 자주 나왔던 질문이 있었다.   유닛 테스트하면 뭐가 좋은가요?   처음 이 질문을 받았을 당시, 내 답변은   테스트야 하면 당연히 좋은 거다   라...

Ruby on rails 소개

Rails는 Ruby로 작성된 MVC모델을 기반 프레임워크입니다.   쉽고 빠르게 웹 어플리케이션을 구축 할 수 있도록 도와줍니다. Rails와 비슷한 역할을 하는 프레임워크로는 java spring, python django, php code igniter 등이 있습니다. Rails의 장점은 Ruby 자체가 가진 유연성이라고 볼 수 있습니다....

Welcome to Ruby!

Welcome to ruby! from 성훈 김 루비를 시작하시는 모든분들께 짧게 읽고 넘어가실 수 있는 슬라이드를 작성해보았습니다. 동적 타입 기반의 스크립트 언어를 아직 해보지 않으셨다면, 파이썬이나 루비! 기왕이면 루비를 추천해드립니다. 짧게 5분정도 소요되니 읽고 가셔요~

TDD에게서 자유로워 지자

2000년대 중후반은 모두가 유닛 테스트에 미쳤다. 아니 TDD에 미쳤다. Test Driven Development에 대한 서적이 넘쳐났으며, 모두가 TDD를 통해 구원 받을거라는 희망찬 상상에 들떠 있었다. 이 붐을 주도했던 개발자중 한명인 DHH (rails를 만든 이)도 이 흐름에 동참했었다.  그를 비롯한 많은 이의 주장은 테스트 우선 신...