본문 바로가기

전체보기

닷넷 개발스택과 웹서버의 경량화 웹 프레임워크의 경량화가 유행처럼 번지면서 또 오픈스택이 실리콘 벨리의 스타트업 심장과 같은 역할을 하기 시작하면서 닷넷 개발 스택도 많이 변하기 시작했다. 무거운 닷넷 프레임워크와 IIS 같은 윈도우에만 의존하기 보다는 이제 경량화할 수 이는 프레임워크를 찾기 시작한 것이다. 그래서 영국에서 요즘 많이 유행하고 있는 닷넷 스택을 보자면 Nancy 프레임워크를 기반으로 Azure, EF, Angular 정도가 기본이 되는 것 같다. 솔직히 국내에서는 닷넷 개발자의 입지가 좁다보니 node.js나 자바로 옮겨가는 것을 많이 보지만 실제로 닷넷의 성능이나 기능이 후져서가 아니다. 그렇다면 ruby나 파이썬을 구동하는 웹 프레임워크 처럼 가볍게 갈 수 없을까에 대한 해답이 바로 nancy프레임워크가 될 것이다.. 더보기
프로그래밍 언어를 무기에 비교해 보자면 출처: http://9gag.com/gag/anXEbe0?ref=t.mw 더보기
다중 스레드들은 프로그램을 더 느리게 만든다 기술을 두고 보면 참 예측하기 어렵다. 모노토닉하게 한 방향으로 발전하지 않기 때문이다. 어떤 한 모델이 한참 유행이 되다가도 다시 본질을 찾아가는 사례가 많다. 그런 관점에서 아래 그림은 참 의미가 있다. 한때는 굉장히 화려하고 rich한 웹 페이지가 유행 하다가도 지금은 오히려 심플하고 사용자 반응에 더 집중한 웹 페이지를 선호한다. 이와 비슷한 관점으로 병렬 프로그램과 멀티 쓰레드 프로그래밍이 다수의 CPU를 기반으로 하는 하드웨어를 기반으로 선풍적인 유행으로 다가 왔지만 결국 지금은 싱글 스레드에 더 집중하고 있다. node.js 사례도 마찬가지이다. 아파치 웹서버처럼 다중 스레드를 지원하는 모델 보다 단일 스레드를 기반으로 하되 이벤트를 중심적으로 진행하는 플로우가 훨씬 성능이 좋다. 이런 의미.. 더보기
SOLID 디자인 원칙을 DB 설계에 적용하기 객체지향 프로그래밍에서 거의 교과서라고 할 수 있는 SOLID 디자인 원칙이 데이터베이스에도 적용할 수 있는 사례의 아티클을 발견했다. 물론, 2013년에 작성된 글이지만 내용이 신선해서 링크를 첨부한다. Building SOLID Databases: Introduction Building SOLID Databases: Single Responsibility and Normalization Building SOLID Databases: Open/Closed Principle Building SOLID Databases: Liskov Substitution Weirdness Building SOLID Databases: Interface Segregation, or Keep Stored Procedures.. 더보기
풀리지 않는 문제에 집착하는 것 개발자로 일하다 보면 그럴때가 있다. 다른 일들은 다 완료했는데 하나의 문제가 풀릴듯 말듯 하며 나의 발목을 잡는다. 다음날 해도 될 일이지만 왠지 처음부터 해야만 하는 것 같은 그런 기분 때문에 집에 가지도 못하고 앉아있다. 하지만 대부분 그런 문제는 앉아 있는다고 풀리지 않았다. 지금은 오히려 이런 문제에 봉착했을때 오래 앉아 있지 않는다. 오히려 커피를 마시며 집에 가는 길에 왜 그게 풀리지 않았는지를 생각해 본다. 아니면 다음날 아침 샤워를 하면서 그 문제를 가볍게 꺼내 본다. 그렇게 한발짝 뒤에서 그 문제를 다시 볼때 가끔은 그 답이 너무나 가까운 곳에 있기도 했고, 해결 전략을 어느정도 정리하는 것도 가능했다. 하지만 모니터 앞에 앉아 너를 해결해야만 속 시원하게 집에 갈 수 있을 것 같은 그.. 더보기
입학 세레모니에 참석 입학 세레모니를 2학기동안 열심히 미뤄왔는데컬리지에서 추방 협박에 결국 참석했다. 한국에서 옷을 가지고 간다는 것을 깜빡하고 정장을 안챙겨갔다.그래서 어쩔수없이 정장을사서 태그안때고 잠깐 입었다가 다시 환불했다.(-_-ㅋㅋㅋㅋ) 더보기
이베이(ebay)의 몽고디비(Mongodb) 활용사례 이베이에서 몽고디비를 활용하고 있는 사례를 분석해보고자 한다. NOSQL에 대한 이해가 없었다면 아마 이번 글을 통해서 쉽게 개념을 잡아 갈 수 있을 거라고 생각한다. 그들은 이전에 DB에 테이블에만 의존하던 검색을 메모리 캐쉬(디비)를 이용해서 속도를 향상시킬 수 있었는데 이 사례가 옥션바이트 블로그에 자세히 소개되어있다. 그들은 클라우드 관리와 메타데이터 저장공간 그리고 사용자들이 검색어를 입력했을 때 그와 관련된 연관 검색어들을 보여주고 있다. 이런 작업들을 몽고DB같은 nosql을 활용해서 속도를 올릴 수 있었다. 그럼 보다 자세히 이 사례를 살펴보도록 하자. 먼저 연관검색어는 아래와 같은 기능이다. 사용자가 타이핑 할 때마다 연관 검색어를 찾아서 보여주는 것이다. 이 때 서버로의 호출이 일어나게.. 더보기
당신의 개발자들은 결코 느리지 않다 몇 달 전 투자도 많이 받고 주목도 받고 있는 한 스타트업 대표로부터 질문을 받은 적이 있다. 개발 일정이 의도한대로 끝나지 못한 책임을 누가 가져가야 하느냐에 대한 질문이었다. 나는 주저 없이 그것은 일정을 제대로 계획하지 못한 프로젝트 매니저와 회사의 책임이 가장 크다고 말했다. 하지만 그 대답을 들은 대표는 별로 탐탁지 않아했다. 그의 생각은 어느 그룹이든 열심히 하는 개발자들도 있는 반면에 요령을 피우는 개발자도 있지 않냐는 것이다. 그런 개발자들의 잘못도 매니저가 가져간다는 것은 부당하다는 것이었다 이런 생각이 이 회사의 대표만의 생각은 아닐 것이다. 대부분의 비즈니스 사람들은 개발자들이 태만하거나 능력이 월등하지 못할 경우에 일정에 차질이 생길 수 있다고 오해를 하는 경우가 많다. 결국 이런 .. 더보기
서울역 짬뽕집에서 서울역 근처에서 맛집이라며 소개시켜 준 짬뽕을 먹으러 갔다. 그런데 난 그 짬뽕보다 주방에 걸려있던 말이 참 인상적이었다. "쫄지마라 네가 최고다" 자신감도 많이 없어져 있던 요즘에 작은 위로를 얻었다고 할까 더보기
테스트 자동화와 TDD의 소개 1. 테스트 자동화와 TDD 박경훈2. 진행순서  자동화 된 테스트가 없다면?  자동화 된 테스트의 정의  TDD의 소개3. 자동화 된 테스트가 없다면?4. Fact1. 소프트웨어의 소스는 복잡하게 연결 되어 있다.5. 작은 한 부분이 수정된다면?6. 모든 기능을 다시 테스트 해야 한다.7. Fact2. 소스코드는 시간이 흐르면 녹이 슨다.8. 끊임없이 OOD(Object Oriented Design)와 패턴 구문들을 적용해가며 리펙토링 해야 한다.9. 하지만 리펙토링이 어려운 이유10. 모든 기능을 다시 테스트 해야 한다.11. 자동화 된 테스트가 없다면?  자체 버그 검출 능력 저하 - 모든 기능을 테스트 하기 어려움  소스 코드의 품질 저하 - 어디서 버그가 생길지 모르기 때문에 잘못 된 .. 더보기
[애자일 도입사례] 세일즈포스 - 큰 조직이라고 어려울까 애자일 도입에 있어서 큰 기업일수록 그 결정이 더욱더 신중해질 수 밖에 없는 것이 사실이다. 무엇보다도 큰 변화에 따른 회사의 리스크가 가장 큰 부담이기 때문이다. 하지만 철저한 동기부여와 준비가 뒷받침 하며 그 리스크를 최소화하는 것이 가능하다. 애자일은 팀 멤버들의 동기부여와 더불어 모두 애자일에 익숙하지 않으면 큰 성과를 당장 기대하는 것에는 한계가 있다. 만약 모든 팀이 애자일을 도입하면서 여러 팀들의 노하우를 서로 배울 수 있다면 어떠할까? 이번 사례에서는 대규모의 집단이었지만 애자일을 모든 팀이 한번에 도입하면서 변화를 시도한 사례를 살펴볼 것이다. 바로 세일즈포스라는 기업이다. 세일즈포스는 CRM(고객 관리 솔루션)을 클라우드 컴퓨팅 서비스 형태로 제공하는 기업이다. 비즈니스 응용프로그램 및.. 더보기
백발의 개발자가 되기 위한 커리어 패스 필자가 6년전 처음으로 영국의 개발문화를 체험하기 전에는 한국 출신 개발자라는 자부심이 있었다. 종종 한국 개발자들은 여러명이 해야 할 작업을 혼자서 처리하는 다재 다능한 개발자로 비유되어왔다. 타이트한 일정 속에서도 야근을 감수하며 어떤 플랫폼이나 언어를 만나도 두려워하지 않는 이들이라는 이미지도 강했다. 그래서 하루에 8시간씩만 일해온 영국 보다는 하루 최소 10시간 이상을 개발에 전념해 온 한국의 개발자들이 당연히 나을 것이라고 생각했다. 하지만 정작 외국 개발문화를 체험하면서 한국에서 쌓아온 경럭에 대한 자신감은 사라졌다. 영국에서 고급 개발자들에게 거는 기대와 한국에서 고급 개발자들에게 거는 기대가 확연히 달랐기 때문이다. 6년전 필자는 7년 정도의 실무 경력이 있었기에 당연히 시니어 레벨이나 .. 더보기
온라인으로 하바드 학위를 받는 방법 최근에 하바드에서 익스텐션 스쿨(Harvard Extension School)을 통해서 학사/석사 학위를 받을 수 있는 코스가 있다는 것을 우연히 알게 되었다. 바로 온라인으로 공부하고 학사 혹은 석사학위를 받을 수 있는 코스이다. 개인적으로 지금 학위에 대한 관심은 없지만 혹시나 학사/석사 공부를 준비하거나 관심있는 사람에게 좋은 팁이 될 수 있지 않을까 해서 내용을 작성해 본다. 하바드 대학교와 별도로 하바드 익스텐션 대학교가 존재한다. 온라인으로 코스를 들으며 공부할 수 있는데 10개의 코스를 수료하고 논문을 작성하면 하바드 대학교의 학위가 수여된다. 물론, 10개의 코스들 중에서 한 개의 코스는 학교를 직접 방문해서 수업을 들어야 한다. 그렇다면 이 학위는 똑같은 하바드 대학교의 학위인가? FAQ.. 더보기
실리콘밸리 드라마를 통해 배우자 – (3)확실한 역할의 구분 스타트업을 시작하는 대부분의 구성원을 보면 기존에 알고 있던 지인들 그리고 친구들과 함께 시작하는 경우가 많다. 처음 같은 목표를 가지고 서비스를 만들고 비즈니스를 만들어 가는 과정 속에서는 큰 문제를 느끼지 못한다. 하지만 시간이 흐르고 어느 정도 회사가 자신들의 문화를 정착해가는 과정 속에서는 역할의 불분명함으로 생기는 문제가 존재한다. 즉, 만약 그 회사를 대표하는 리더가 있다면 그 멤버들은 그의 최종 결정을 따라주는 팔로우쉽(followship)을 보여주어야 한다. 반대로 리더의 위치에 있으면 최종 결정을 만들고 확고한 신념을 보여주어야 한다. 이것이 스타트업을 넘어 기업으로 성장할 수 있는 가장 큰 역할이다. 역할을 분명히 나눈다는 것은 위아래의 수직적인 조직구조를 만든다고 오해해서는 안 된다... 더보기
실리콘밸리 드라마를 통해 배우자 – (2)혁신이 전부가 아니다 지난 번 컬럼에서 실리콘밸리 라는 드라마를 통해서 배울 수 있는 기업 문화에 대해서 살펴 보았다. 스타트업 문화를 형성하는 부분에서 가질 수 있는 오해를 줄이기 위한 내용이었다. 이번에는 혁신과 상품에 대해서 잘못가질 수 있는 오해에 대한 이야기를 풀어보고자 한다. 사람들은 세계의 몇천 만분의 일의 확률에서 나오는 성공 스토리들을 접하면서 그들이 단순히 좋은 아이디어와 타이밍으로 그것을 평가하는 경향이 있다. 하지만 아무리 좋은 아이디어가 있더라도 그것을 비지니스에서 성공으로 이어지게 하기 위해서 보이지 않는 많은 노력들이 필요하다. 이 드라마 또한 초기에 던지고자 하는 메시지가 바로 아무리 혁신적인 제품이 있다고 하더라도 그것이 성공을 보장할 수는 없다는 것이다. 주인공 리차드(Richard)는 오디오.. 더보기