본문 바로가기

스타트업/만들기22

소프트웨어 프로젝트, 코드네임 정하는 법 Yosemite, Vienna, Threshold, Namoroka... 어렵다. 이게 뭘까? "코드네임"이다. 개발자들이 붙이는 소스코드에 붙이는 일종의 "프로젝트명"이다. SI 시장에서 붙이는 "차세대금융시스템" 이런 건 아니다. "레드스톤" 같은 거다. 바로 윈도우 10의 코드네임이다. "코드네임", 왜 붙일까? 그런데 코드네임은 왜 붙일까? 당연한 이야기이겠지만, 첫째로는 프로젝트의 정체성을 숨기기 위해서다. "Yosemite 말야?" "응, 그게 이상하게 작동하고 있어." 프로젝트명이 숨겨지면, 범위나 역할, 제품의 모습이 모두 숨겨진다. 전화기에다 대고 크게 떠들어도 듣는 사람이 쉽게 이해할 수 없다. 둘째로는, 생명감을 불어넣기 위해서다. "Vienna ~ 나랑 같이 놀자." 개발자는 매일 .. 2020. 2. 7.
DB정규화, 왜 하는가? “1차 정규화, 2차 정규화를 하라고 배웠어요. 그런데 현장에 가보니까 그런 걸 안해요. 제가 잘못 배운건가요?” 강의 현장에서 들었던 이야기다. 아, 요즘은 이런 걸 들려줄 사람이 없구나. 막막하네. 어디서부터 설명을 해야할지. 1. DB 정규화 왜 하는가? 1차정규화, 2차정규화…. 적어도 이게 뭔지는 검색해보고 오자. 왜냐하면 이걸 설명하려면 길기 때문이다. 그래서 이걸 알고 있다고 가정한다. 정규화. 이걸 하는 이유는 두가지 때문이다. 2차원 데이터 구조 가장 많이 쓰는 데이터 기록형태가 “표”였다. 2차원 데이터구조. X, Y. 그래서 데이터베이스라는걸 처음 만들 땐, 세상 모든 데이터를 2차원으로 분해해서 바라봤다. 박보검 / 010-8888-9999 / 명지대학교 / 뮤지컬공연전공 배수지 /.. 2020. 1. 13.
불난 프로젝트, 불끄러 가보기 소스 분석 소스를 주욱 흝어본다. 어플리케이션 구조를 역컴파일 해본다. 왜 그 모듈을 그렇게 나누었는지 이해해본다. 엇, 저건 뭐지? 저렇게 했을리가 없는데. 자세히 들여다 본다. 이해가 안되는 부분이 있다. 소스의 업데이트 날짜를 본다. 사람들에게 물어본다. 이 때쯤 무슨 일이 있었냐고? 무슨일이 있었단다. 짐작해본다. 아, 그래서 이렇게 처리했구나. 무슨일이 없었단다. 일단 마크를 해둔다. 그런 게 여러 경우가 보인다. 뭔가 공통점이 있다. 급하게 메꾼 자국들이다. "이 조직은 마구잡이로 일을 주는구나." 그런 게 몇개 안보이고, 공통점 없이 서툴러보이기만 한다. "그냥 초보자를 데려다 짜게 했구나." 여긴 신입사원들을 돌보지 않는구나. 소스를 전혀 고친 흔적이 없다. "이 조직은 소스까진 관리하지 .. 2019. 8. 23.
어둠의 개발자, 빛의 개발자 스타트업 닷컴버블 때 회사를 만들었다. 코파운더로 초창기부터 일을 했다. "반응형 VR 기술을 이용한 전세계 여행지 100선" 1년반을 투자해 인터넷서비스를 만들었다. 네트워크가 좋지 않을 때라 데모CD로도 만들었다. "라이코스" 사장에게 시연을 했다. 놀라워했다. 그는 "글로벌 사장단 회의"에서 직접 이 CD를 시연했다. 32개국 중에서 5개국 사장이 동시오픈을 하겠다고 손을 들었다. 대성공이었다. 하지만 돈을 벌진 못했다. 우리 사장이 어려서, 팅기다가 판이 다 깨져버렸다. 3년만에 회사를 접었지만, 이때의 경험은 나에게 "성공경험"으로 자리잡았다. 참고로, 뜨는 회사를 어떻게 돈으로 만드냐. 이건 완전히 다른 문제다. 다양한 투자기법들이 들어간다. 나중에 이야기할 기회가 있을거다. 논점이 아니므로 .. 2019. 8. 12.
코드리뷰? 코드커뮤니케이션이 맞다. 코드리뷰. Code Review.코드리뷰, 혼자일 땐 딱히 할 일이 없지만, 둘만 되어도 코드를 오픈해둘 필요가 있다.그런데, 코드리뷰를 이렇게 이해하면 좀 난감하다. 코드 검토 = 코드 후기 = 코드 평가 = 코드 감시 그건 이런 뜻이다. (1) 함께 일하는 개발자의 코드품질을 믿을 수 없다.(2) 우리팀은 코드가 더럽게 관리된다. 뭐, 경력사원이 새로 들어왔다면 검증 차원에서 한 번쯤 해볼 수도 있겠다.신입사원이라면 케어차원에서 해볼 수도 있겠다.하지만, 365일 보는 팀인데 저런 식이라면 팀이 깨진다.협업관계를 불신으로 시작하라는 뜻이니까. 함께 고생하는 팀이라면 이렇게 하면 안된다.위에서 시킨다고 하면 대충하다가 만다.혹시라도 싸움이 나면 협업은 개뿔, 그날로 개발 생산성은 물건너가는거다. 이렇게.. 2019. 2. 22.
거래데이터와 원장데이터, 두 개는 다르다. 사실 기초인데, 물어볼 사람이 없다보면 3년이 지나도 모르는 경우가 많다.생각난 거만 정리해 본다. 원장데이터 Master Data은행의 계좌테이블, 고객테이블.이런 걸 원장이라고 한다. 중복데이터가 존재하더라도 물리적인 기준으로 삼을만한 테이블.분쟁이 일어나도 보고 판결할 수 있는 테이블.이런 걸 "원장"이라고 한다. "원본장부"라는 뜻이다. 용어는 조금 오래된 거다.옛날엔 모든 걸 손으로 써서 기록했다.그래서 장부하나를 정해서 거기에 중요정보를 모두 기록했다.이 장부 이름이 "원장"이었다. 요즘은 Master Table 이라고 한다. 영어라 조금 더 멋있긴 하다.사실 "원장"이나 Master Table 이나 같은 말이긴 하지만..."원장"이라는 말은 이제 금융권이나 상거래 쪽에만 남아 있다. Mast.. 2019. 2. 17.
진상보존의 법칙, 룰블레이커는 어디에나 있다. B2C 서비스를 개발할 때,B2B 서비스를 개발할 때.노련한 개발자는 예외처리 알고리즘을 넣는다.백도어가 아니다. 예외처리 방법이다. 진상보존의 법칙.어떤 사업이든 "진상고객"은 반드시 존재한다.백명 중에 한 명쯤은 반드시 등장한다. 시스템 입장에서 이런 사람은 Rule Breaker 다.그래서 시스템을 빡빡하게 만들면 곤란해진다. 옛날 훌륭한 베테랑 한 분을 모셔와서 설계를 했다.선진적이고 근사한 기술들로 크고 훌륭한 시스템을 만들었다.덕분에 회사 내에서도 꽤많은 기술 추종자가 생겼다. 그런데 아쉽게도 서비스를 해보지 않은 아저씨였다.서비스를 오픈하자마자 예외케이스가 등장했는데, 이걸 시스템 내에서 처리할 방법이 없었다.아예 그런 경우를 고려하지 않았기 때문이다.예상 사업 시나리오에도 그런 케이스가 없.. 2019. 1. 31.
디지털오션, 가벼운 클라우드 서버로 추천함. 클라우드 서버.글로벌 서비스를 하려면 두말 없이 AWS 나 구글 것을 써야 한다.다른 서버는 CDN(Contents Delivery Network)이 마땅치 않기 때문이다.동영상이나 고화질 이미지를 생각한다면, CDN은 서비스 성장기에 있어 필수요소이다. 하지만, 파일럿용으로 쓰거나 교육용으로 쓰기에는 조금 비싸다.무료로 쓰고 있다면 당연히 그걸 쓰겠지만, 그런 게 없다면 이 서비스를 생각해볼만 하다.5 달러짜리 요금제가 있기 때문이다. 재미난 건 시간당으로 사용할 수도 있다. 제일 저렴한 경우 시간당 0.007달러 = 8원 정도 되니까, 하루에 192원이다.잠깐 테스트용으로 사용하기엔 최고다.아직 Linux 서버만 제공하고, MS Windows는 제공되고 있지 않다. 참고로, digitalocean 은.. 2018. 12. 14.
망한 프로젝트, 되살릴 수 있을까? 망가진 프로젝트에 소방수로 자주 투입되었다.분야가 모두 달랐는데 망한 이유는 거의 판박이처럼 닮아 있었다.몇 번 정리하고 나니 수습능력과 보는 눈이 생겼다.그걸 정리해 보았다. 망한 프로젝트를 들어가면, 개발자가 다 도망가고 없다.도망간 개발자를 좇아가서 만나보면 대부분 비슷한 말을 한다.사람이야기다. 고객과의 갈등, 팀장과의 불화, 살인적인 일정 등등.말이 안통한다는 거다. 하지만, 사람 이야기는 복잡하다.그래서 기술 이야기부터 해보자. 01. 화재현장 둘러보기망한 프로젝트는 현황진단을 사람말로 하지 않는다.갈등이 섞여 있기 때문이다. 그래서, 시스템과 코드로 확인해야 한다.아래 이야기는 코드나 터미널 열어서 확인하는 거다. 진도. 데이터를 본다. 제일 먼저 데이터를 확인한다.어떤 데이터가 쌓여 있는지.. 2018. 8. 10.
반응형