본문 바로가기

스타트업125

소프트웨어 프로젝트, 코드네임 정하는 법 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. 11. 13.
인터넷서비스, 판타지가 없으면 안될까? 질문 "(나는) 무엇을 만들어야 할까?" "(나는) 무엇을 만들고 싶은가?" "(나는) 무엇을 좋아할까?" "(사람들은) 왜 그것을 사용하는가?" "(사람들은) 왜 끊임없이 그것을 이용하는가?" "(사람들은) 왜 흥미가 떨어지면 버리고 마는가?" "(사람들은) 왜 계속해서 새로운 곳으로 이동하는가?" "그래서, 지금 난 무엇을 만들어야 하는가?" 무엇을 만들기 위해서 이런 질문을 던졌다. 인스타그램도 이런 질문을 던졌을거다. "우선 니가 좋아하는 걸 만들어봐." 맞는 이야기이긴 한데, 틀린 이야기다. 그냥 아무거나 만들라는 뜻이 아니다. 막연히 좋아하는 걸 만들어도 사업이 안된다는 것, 큰 돈이 되지 않는다는 것은 여러번 겪어봐서 안다. 운이 좋고, 능력 좋은 분들은 별개다. 그런 분은 뭘해도 성공한다... 2019. 11. 5.
앱 서비스의 장단점. 어떻게 만들어야 할까? 기술 이야기는 많다. 정보도 꽤 잘 나와 있다. 그게 궁금하면 그분들 것 보자. 하지만 어떻게 만들어야 하는지, 만들면 무슨 일이 일어나는지, 고객입장에서 정리된 게 없다. 사실 해본 사람이면 다 아는 내용이다. 이건 안해본 사람, 초보자 대상이다. 정리해본다. 앱 하나 만들면 "앱 하나 만들어줘요." 정말 많이 듣는 말이다. 앱 하나 만들면, 사업이 시작될 것처럼 말한다. 앱 하나 만들면, 당장 돈이 될 것처럼 말한다. 미안하다. 앱을 만들어도, 사업이 시작되진 않는다. 사장 : "스톡옵션 줄께요." 개발자 : "죄송해요. 연봉으로 주세요." 개발자가 이렇게 말하는 건 사업이 안될거라는 뜻이다. 당신을 못 믿어서 그런게 아니다. 뻔히 미래가 보이니까 그런거다. 3년전에 실패한 그대로 답습하니까 그런거다.. 2019. 9. 30.
실패하는 앱은 사실 이미 정해져 있다. "넌 아마 안될거야." "될 앱들은 이미 타고 나는거야." 이런 "운명적 선택론"을 말하려는 게 아니다. 성공할 앱들은 개발하기 전, 기획단계에서 대부분 윤곽이 다 잡혀버린다는 말이다. 그만큼 사업계획, 서비스기획이 중요하다는 말이다. 이 앱 안될 것 같아. 실패하는 앱은 사실 기획 단계에서부터 안다. 개발 설계 단계에서부터 안다. 개발하는 사람이, 기획하는 사람이 사업과 서비스에 공감하지 못한다면, 그 앱은 실패다. 사용자를 납득시킬 수 없다. 이론적으로는 그렇지 않다. 성공는 하늘의 일이라 단정할 수 없다. 언제나 예외는 일어난다. 나도 그 예외 속에 포함될 수 있다. 하지만, 실패는 사람의 일이라 단정할 수 있다. 예외적으로 실패하진 않는다. 실패하지 않는 건 사람이 버텨주기 때문이다. "버티기를 .. 2019. 9. 16.
서버개발 기본기, "데이터 다루기" :: 알고 넘어가자. 데이터분석 이야기를 하기전에, 데이터엔지니어링 이야기를 좀 하고 넘어가자. 데이터분석이 숨은 뜻을 찾아내는 거라면, 데이터엔지니어링이란, 데이터를 보관, 이동, 정리, 변형하는 기술을 말한다. Hadoop, Oracle 등은 데이터소프트웨어들이지, 엔지니어링 그 자체는 아니다. SI를 하면 대형데이터 다룰 일이 별로 없다. 새로 만드는 시스템은 데이터가 없고, 추가시스템이라면 접근권한이 없기 때문이다. "초기데이터 구축"도 중요하지만, "상용데이터"를 다루는 건 완전히 다르다. 그래서, 3년이나 지나도 "데이터 다루기의 기본"을 모르는 경우가 많다. 정리해보자. 지울까 말까 데이터 생성의 주체는 두 개 밖에 없다. "사람"이거나 "기계"이거나. 여기서 "사람"이란 사용자를 지칭한다. "사용자 데이터" 내.. 2019. 9. 11.
소프트웨어 개발자, 신입사원 교육. 어떻게 해야할까? 교육. 교육은 어렵다. 내가 성장하는 게 아니라, 남을 성장시키는 것이기 때문이다. 스스로 하지 않으면 아무리 옆에서 잘해줘도 소용이 없다. 옛날에는 답답했다. 일이 너무 많고 바빴다. 그래서 내가 직접했다. 가르칠 시간이 없었다. 그랬더니 여전히 나 혼자서만 일하게 되었다. 2명 이상 해야 하는 일이 오면 못한다고 튕겨내거나, 1달치 일을 2달로 늘려 잡았다. 병렬방식이 아니라 직렬방식으로 일한 것이다. 1년쯤 되니까 죽을 것 같았다. 올해 한 것을 내년에도 반복한다고 생각하니, 갑자기 암울해졌다. 나는 계속 도전하고 변화하고 싶었다. 이런 건 나랑 맞지 않았다. 대타를 길러야 했다. 어쩔 수 없이 교육이란 걸 시작하게 되었다. 가르치면 돼 ? 처음엔 적당한 사람을 데려다 놓고 가르쳤다. 그런데, 태도.. 2019. 9. 5.
불난 프로젝트, 불끄러 가보기 소스 분석 소스를 주욱 흝어본다. 어플리케이션 구조를 역컴파일 해본다. 왜 그 모듈을 그렇게 나누었는지 이해해본다. 엇, 저건 뭐지? 저렇게 했을리가 없는데. 자세히 들여다 본다. 이해가 안되는 부분이 있다. 소스의 업데이트 날짜를 본다. 사람들에게 물어본다. 이 때쯤 무슨 일이 있었냐고? 무슨일이 있었단다. 짐작해본다. 아, 그래서 이렇게 처리했구나. 무슨일이 없었단다. 일단 마크를 해둔다. 그런 게 여러 경우가 보인다. 뭔가 공통점이 있다. 급하게 메꾼 자국들이다. "이 조직은 마구잡이로 일을 주는구나." 그런 게 몇개 안보이고, 공통점 없이 서툴러보이기만 한다. "그냥 초보자를 데려다 짜게 했구나." 여긴 신입사원들을 돌보지 않는구나. 소스를 전혀 고친 흔적이 없다. "이 조직은 소스까진 관리하지 .. 2019. 8. 23.
반응형