본문 바로가기

소프트웨어개발4

소프트웨어 프로젝트, 코드네임 정하는 법 Yosemite, Vienna, Threshold, Namoroka... 어렵다. 이게 뭘까? "코드네임"이다. 개발자들이 붙이는 소스코드에 붙이는 일종의 "프로젝트명"이다. SI 시장에서 붙이는 "차세대금융시스템" 이런 건 아니다. "레드스톤" 같은 거다. 바로 윈도우 10의 코드네임이다. "코드네임", 왜 붙일까? 그런데 코드네임은 왜 붙일까? 당연한 이야기이겠지만, 첫째로는 프로젝트의 정체성을 숨기기 위해서다. "Yosemite 말야?" "응, 그게 이상하게 작동하고 있어." 프로젝트명이 숨겨지면, 범위나 역할, 제품의 모습이 모두 숨겨진다. 전화기에다 대고 크게 떠들어도 듣는 사람이 쉽게 이해할 수 없다. 둘째로는, 생명감을 불어넣기 위해서다. "Vienna ~ 나랑 같이 놀자." 개발자는 매일 .. 2020. 2. 7.
실패하는 앱은 사실 이미 정해져 있다. "넌 아마 안될거야." "될 앱들은 이미 타고 나는거야." 이런 "운명적 선택론"을 말하려는 게 아니다. 성공할 앱들은 개발하기 전, 기획단계에서 대부분 윤곽이 다 잡혀버린다는 말이다. 그만큼 사업계획, 서비스기획이 중요하다는 말이다. 이 앱 안될 것 같아. 실패하는 앱은 사실 기획 단계에서부터 안다. 개발 설계 단계에서부터 안다. 개발하는 사람이, 기획하는 사람이 사업과 서비스에 공감하지 못한다면, 그 앱은 실패다. 사용자를 납득시킬 수 없다. 이론적으로는 그렇지 않다. 성공는 하늘의 일이라 단정할 수 없다. 언제나 예외는 일어난다. 나도 그 예외 속에 포함될 수 있다. 하지만, 실패는 사람의 일이라 단정할 수 있다. 예외적으로 실패하진 않는다. 실패하지 않는 건 사람이 버텨주기 때문이다. "버티기를 .. 2019. 9. 16.
Java GC time 어떻게 할까? Garbage Collection.C/C++은 객체를 선언하면, 명시적으로 Destroy 시켜줘야 한다.그렇지 않으면 메모리를 할당한 채로 운영되다가, Out Of Memory 에러를 띄운다. 하지만 Java 는 명시적으로 Destroy 시켜주지 않아도 된다.Java VM 이 자동으로 Destroy 시켜주기 때문이다.물론 실시간으로 하는 건 아니고, 일정 시간을 두고 모아서 없앤다.쓰레기 수집하는 것과 비슷해서 Garbage Collection 이라고 부른다. 문제는 이 기간 동안 Java VM 은 인입된 트래픽을 정지시켜 놓는다.이게 순식간에 지나가면 문제가 없는데, 어떤 때는 5~6초를 넘어간다.하드디스크 상의 SWAP Memory를 지우면서 I/O Bottle Neck 이 걸리는 거다.SSD라면 상.. 2019. 1. 17.
새로운 개발자의 법칙, 무엇이 문제인가? 법칙이라고 이름을 붙였지만, 이 이야기는 하나의 "현상" 이자 "사례"이다.범용사례는 아니다. 그렇지만, 적다고는 말하지 못하겠다.좋든 싫든 업계에 적잖이 존재한다. 특히 개발자 이직이 잦은 기업들은 이 현상에 매우 잘 노출되어 있다. 새로운 개발자의 법칙많은 개발자들이 프레임워크를 써서 개발을 한다.왜냐하면 좀 더 빠르게 개발할 수 있으니까. 그리고, 그 시간에 개발한 것치고는 꽤 안정적이니까. 그런데, 프레임워크 의존성이 높으면 이런 문제점이 생긴다. 1. 첫번째 개발자가 아주 좋다는 프레임워크을 사용한다. 그리고 실력이 뛰어나서 프레임워크를 고쳐서 쓴다. 그러다가 퇴사를 한다. 2. 두번째 개발자는 그 프레임워크를 잘 모른다. 그런데 공부할 시간이 없다. 그리고 수정된 부분도 알지 못한다. 아주 높.. 2018. 2. 6.
반응형