본문 바로가기

멘토링/개발팀38

소프트웨어 프로젝트, 코드네임 정하는 법 Yosemite, Vienna, Threshold, Namoroka... 어렵다. 이게 뭘까? "코드네임"이다. 개발자들이 붙이는 소스코드에 붙이는 일종의 "프로젝트명"이다. SI 시장에서 붙이는 "차세대금융시스템" 이런 건 아니다. "레드스톤" 같은 거다. 바로 윈도우 10의 코드네임이다. "코드네임", 왜 붙일까? 그런데 코드네임은 왜 붙일까? 당연한 이야기이겠지만, 첫째로는 프로젝트의 정체성을 숨기기 위해서다. "Yosemite 말야?" "응, 그게 이상하게 작동하고 있어." 프로젝트명이 숨겨지면, 범위나 역할, 제품의 모습이 모두 숨겨진다. 전화기에다 대고 크게 떠들어도 듣는 사람이 쉽게 이해할 수 없다. 둘째로는, 생명감을 불어넣기 위해서다. "Vienna ~ 나랑 같이 놀자." 개발자는 매일 .. 2020. 2. 7.
스타트업 팀개발, 협업능력의 중요성 프로젝트를 수습하러 들어간다. 초보자는 남의 소스코드 까기에 여념이 없다. "나는 잘못을 많이 알아." "나는 그 문제를 풀만큼 훌륭한 사람이야." 이 두가지를 어필하고 싶어한다. 팀장이나 고용주에게 말이다. 프로는 그렇지 않다. 거지꼴이 된 소스를 보고 깊은 생각에 잠긴다. "이놈이 바보가 아니라면 해답을 이렇게 쓰진 않았겠지." "이런 답을 만든 범인은 아직 이 안에 있겠지?" 이렇게 생각한다. '아, 나는 여기에 있을건가 말것인가?' 쓰레기 개발자가 없는 건 아니다. 피치 못하게 그 역할을 하는 사람도 있다. 그런 사람들이 쓰레기 소스를 만들기도 한다. 하지만 오늘주제는 아니니까 여기선 제껴두자. 존중, 왜 하는가? "왜 다른 사람을 존중해야 하는가?" 몸에 베여있는 사람에게 던지는 질문은 아니다... 2019. 11. 13.
서버개발 기본기, "데이터 다루기" :: 알고 넘어가자. 데이터분석 이야기를 하기전에, 데이터엔지니어링 이야기를 좀 하고 넘어가자. 데이터분석이 숨은 뜻을 찾아내는 거라면, 데이터엔지니어링이란, 데이터를 보관, 이동, 정리, 변형하는 기술을 말한다. Hadoop, Oracle 등은 데이터소프트웨어들이지, 엔지니어링 그 자체는 아니다. SI를 하면 대형데이터 다룰 일이 별로 없다. 새로 만드는 시스템은 데이터가 없고, 추가시스템이라면 접근권한이 없기 때문이다. "초기데이터 구축"도 중요하지만, "상용데이터"를 다루는 건 완전히 다르다. 그래서, 3년이나 지나도 "데이터 다루기의 기본"을 모르는 경우가 많다. 정리해보자. 지울까 말까 데이터 생성의 주체는 두 개 밖에 없다. "사람"이거나 "기계"이거나. 여기서 "사람"이란 사용자를 지칭한다. "사용자 데이터" 내.. 2019. 9. 11.
불난 프로젝트, 불끄러 가보기 소스 분석 소스를 주욱 흝어본다. 어플리케이션 구조를 역컴파일 해본다. 왜 그 모듈을 그렇게 나누었는지 이해해본다. 엇, 저건 뭐지? 저렇게 했을리가 없는데. 자세히 들여다 본다. 이해가 안되는 부분이 있다. 소스의 업데이트 날짜를 본다. 사람들에게 물어본다. 이 때쯤 무슨 일이 있었냐고? 무슨일이 있었단다. 짐작해본다. 아, 그래서 이렇게 처리했구나. 무슨일이 없었단다. 일단 마크를 해둔다. 그런 게 여러 경우가 보인다. 뭔가 공통점이 있다. 급하게 메꾼 자국들이다. "이 조직은 마구잡이로 일을 주는구나." 그런 게 몇개 안보이고, 공통점 없이 서툴러보이기만 한다. "그냥 초보자를 데려다 짜게 했구나." 여긴 신입사원들을 돌보지 않는구나. 소스를 전혀 고친 흔적이 없다. "이 조직은 소스까진 관리하지 .. 2019. 8. 23.
레거시 운영개발팀을 수습하다. 이건 꽤 오래전, 어떤 조직에 불끄러 들어갔을 때 이야기다. Red Zone 조직 피로도를 낮춰야한다. 맨날 밤늦게 퇴근하는 것도 하루 이틀이지. 이대로는 피로도가 높아서 언젠가 빵하고 터지고 만다. 빵하고 터지면 "조직노하우"는 제로가 되고 만다. 매번 제로에서 새출발 할 수는 없다. 탑을 높이려면 계속 남이 쌓은 일에 뭔가를 더해가야 한다. 가장 급한게 "조직피로도"를 낮추는거다. 피로도를 낮추려면 "적시퇴근"을 시켜야 한다. "정시퇴근"까진 못해도 몸이 달궈지기 전에 퇴근시켜야 했다. 그러려면 업무량을 자르거나 일정을 당기고 미룰 수 있어야 한다. 음, 그걸 조직에 어필할 수 있을까? 조직이 그런 딜을 받아주려면 믿음이 필요했다. 내가 펑크를 내지 않을 거라는 믿음. 일정은 고객합의까지 필요했기 때.. 2019. 8. 19.
로그인, 진입장벽을 낮춰라. SNS앱, B2C앱인데 실행하면 떡하니 "로그인" 화면이 먼저 뜬다. 뭐하는 앱인지도 모르는데, 회원가입부터 하라는거다. 기분이가 나쁘다. '무슨 앱인지도 모르는데. 쩝' "뒤로" 버튼을 누른 후 삭제해 버린다. 나만 그렇다고? 아니다. 사용자의 60%~70%가 이 단계에서 이탈한다. 써보지도 않고 삭제한다. 왜냐하면 아직 좋은 앱인지 모르기 때문이다. 내 콘텐츠를 보여주지도 않고 가입부터 하라는 건, 사귀지도 않고 결혼하자고 하는 거다. 많은 앱이 "저관여 제품"이다. 꼭 깔아야 하는 앱이 아니라면, 회원가입은 귀찮은거다. 1,000만 가입자를 모을 생각이라면, 로그인 화면을 맨 앞에 두는 건 자살행위다. 그것 자체가 진입장벽이다. 들어오지 마라고 하는거다. "회원가입"은 가능하면 천천히 조금씩 채워넣.. 2019. 3. 1.
코드리뷰? 코드커뮤니케이션이 맞다. 코드리뷰. Code Review.코드리뷰, 혼자일 땐 딱히 할 일이 없지만, 둘만 되어도 코드를 오픈해둘 필요가 있다.그런데, 코드리뷰를 이렇게 이해하면 좀 난감하다. 코드 검토 = 코드 후기 = 코드 평가 = 코드 감시 그건 이런 뜻이다. (1) 함께 일하는 개발자의 코드품질을 믿을 수 없다.(2) 우리팀은 코드가 더럽게 관리된다. 뭐, 경력사원이 새로 들어왔다면 검증 차원에서 한 번쯤 해볼 수도 있겠다.신입사원이라면 케어차원에서 해볼 수도 있겠다.하지만, 365일 보는 팀인데 저런 식이라면 팀이 깨진다.협업관계를 불신으로 시작하라는 뜻이니까. 함께 고생하는 팀이라면 이렇게 하면 안된다.위에서 시킨다고 하면 대충하다가 만다.혹시라도 싸움이 나면 협업은 개뿔, 그날로 개발 생산성은 물건너가는거다. 이렇게.. 2019. 2. 22.
거래데이터와 원장데이터, 두 개는 다르다. 사실 기초인데, 물어볼 사람이 없다보면 3년이 지나도 모르는 경우가 많다.생각난 거만 정리해 본다. 원장데이터 Master Data은행의 계좌테이블, 고객테이블.이런 걸 원장이라고 한다. 중복데이터가 존재하더라도 물리적인 기준으로 삼을만한 테이블.분쟁이 일어나도 보고 판결할 수 있는 테이블.이런 걸 "원장"이라고 한다. "원본장부"라는 뜻이다. 용어는 조금 오래된 거다.옛날엔 모든 걸 손으로 써서 기록했다.그래서 장부하나를 정해서 거기에 중요정보를 모두 기록했다.이 장부 이름이 "원장"이었다. 요즘은 Master Table 이라고 한다. 영어라 조금 더 멋있긴 하다.사실 "원장"이나 Master Table 이나 같은 말이긴 하지만..."원장"이라는 말은 이제 금융권이나 상거래 쪽에만 남아 있다. Mast.. 2019. 2. 17.
뭣이라, 거래데이터를 고친다고? ※ 원본 바로가기 : https://twitter.com/Dangerplanet/status/1095261839527563264 오늘자 트윗이다.주인공은 유명 쇼핑몰이다.내용의 핵심은, 사용자 "주문서"를 조작했다는 것이다.심지어 고객과 통화해서 양해를 구한 것도 아니다.항의를 했더니, 구매 취소 문자가 왔다. 이 분 트윗 밑에 글타래가 달렸다. "저도 같은 경험을 했어요.""저번에 투명케이스를 샀는데, 다른 제품이 오더라고요." 이곳은 오픈마켓이 아니라 자기들이 물건을 도매로 산 다음에 판다.즉, 인터넷쇼핑몰이 장난치는 당사자라는 뜻이다. 문제는 저걸 컴퓨터로 고칠 수 있다는 게 신기하다.기능이 된다고 짜줬을 것 같은데 솔직히 실망이다.분명 사업팀에서 요구했을텐데... 후... 하... "주문서"는 ".. 2019. 2. 14.
반응형