전체 글
-
회사에 코드 리뷰 하는 문화 만들어보기, (2) 학습동아리의 한계Journal 2024. 2. 18. 14:10
회사 내에서 하는 프로젝트 외에 별도 공부를 한다는것. 아무래도 쉽지 않은 일이지만 이 쉽지 않은 일에 여러 사람을 섞어낸다는것은 더 쉽지 않은 일이었다. 결론부터 이야기 하자면 이 학습동아리는 22년 11월부터 약 3주간의 파일럿을 통해 실패라고 판단했다. 그 실패를 통해 얻은 결론은 학습동아리를 운영하기 위해서는 상황을 좀 더 냉정하게 돌아 보면서 적절한 전략이 필요하다는것이었다. 함께 하는 사람들이 불특정 다수인지, 소수 정예인지 같은 목적을 가진 사람들인지, 체험이 목적인지 마음이 맞는 사람이 한명이라도 있을지, 그렇지 않을지 함께 하는 사람들은 불특정 다수를 모았는데, 그러다보니 목적이 명확하지 않았다. 나는 그 문제를 해결하기 위해 학습의 방향성을 제시해야 했으나 당시에는 그런 판단을 하지 못..
-
소프트웨어 개발자에게 어떤게 요구사항일까개발/생각 2024. 2. 18. 12:57
소프트웨어 개발 중 만나는 여러 문제가 있다. 그 중 하나인 요구 사항을 제시하는 사람과 요구를 분석하는 사람, 두 사람도 모르는 문제. 미지의 영역에 대한 부분에 집중해본다. 개요 개발을 요청하는 사람이 정말 완벽한 체계를 설계 해온다면 개발자는 작업만 하면 된다. 하지만 대부분의 경우 요구 사항을 토대로 실제 요구를 채굴해내어야 한다. 요구 사항은 요구하는 기능 깊숙한 곳에 숨어있다. 그러면 어떡해야하죠..? 요구사항이 들어오면, 그 요구사항의 의도를 파악하고, 확장 가능한 설계로 나누고, 그 설계의 세부 동작을 설정 가능하도록 분석해내어 요구사항을 채굴해낼 수 있다. 요구사항 예시 다섯가지를 확인해보려 한다. 요구사항 기능의 응답시간은 500ms 이하여야 한다. 대화 상자의 배경은 회색이다. 애플리..
-
유니티의 폭주? "Unity Runtime 요금" 의 등장과 계산기기술 소식 2023. 9. 18. 11:39
미국시간 23년 9월 12일에 유니티가 새로운 요금 체계를 공개했다. 간단하게 이야기하면, 유니티 엔진으로 제작한 영리 활동을 하는 애플리케이션에 대해 설치당 요금을 매기겠다는 뜻이 된다. 값을 매기는 계산식도 아주 간단하지는 않다. 이 런타임 요금을 매길지 말지에 대한 요소는 세가지이다. 1. 라이선스 타입 (유니티 퍼스널, 플러스, 프로, 엔터프라이즈와 같은) 2. 연간 매출 3. 설치 수 스프레드시트로 계산기를 만들었는데, 아래쪽에 링크를 제공한다. 공식 홈페이지의 표에 따르면, 개인 라이선스는 연간 2억 6천만원의 매출(원문 20만달러, 1달러/1300원 기준), 20만회의 설치 수량을 초과하면 요금이 발생한다. 프로와 엔터프라이즈 라이선스는 연간 13억원의 매출(원문 100만달러, 1달러/130..
-
방어적 프로그래밍 - 널 객체 패턴 사용해보기개발/디자인패턴 2023. 9. 18. 10:10
여러 언어에서 NULL(혹은 nil) 은 어떤 키에 값이 존재하지 않는다는 뜻으로 사용한다. 이 비어있는 키에 NULL 검사 외의 다른 방법으로 접근하려고 하면, 대부분 Null Pointer Exception 을 던진다. NULL 을 포함한 객체를 생성하고 전달하면 항상 NULL을 참조하는 예외가 발생할 수 있다. 조심하면 된다. 쓰기전에 검사하면 된다 라고 할 수 있지만 설계에 조금만 신경쓰면 예방할 수 있는 방법이 있으니 이 방법을 활용해보자. 언어는 타입스크립트로 작성했다. export class Inventory { ... getItemQuantity(itemNumber: number) { return this.getItem(itemNumber).getAmount(); } ... protecte..
-
구조와 설계를 보는 통찰력 - 가상 면접 사례로 배우는 대규모 시스템 설계 기초책 추천 2022. 11. 24. 14:55
당장 눈앞에 펜과 종이가 놓여지고 큰 시스템의 동작을 설계를 하자는 제안을 받는다고 하자. 질문을 받은 나는 적당히 알고 있는 내용을 얼버무리는 것이 아니라 어떤 부분을 고려해야하고, 어떤 방식으로 문제를 해결해야 하는지, 확장을 어떻게 고려할것인지를 하나하나 쪼개서 수행할 능력이 있다고 할수 있는 사람일까? 이 책은 위 질문의 대답이고 해결 "책" 이다. 무언가 공부할 때 알아가는 순서를 모르겠을 때, 내가 무얼 모르는지 모르는 상태일 때 출발선을 명확하게 그어줄 수 있는 내용을 담고 있다. 어떻게 보면 내용이 깊지 않다고 생각할 수 있지만 이 책의 역할을 모든것을 알 수 있는 능력이 아닌 내가 관심있는 내용을 공부를 시작할 수 있는 기반을 다지는 내용이라고 보면 명확하다고 생각한다. 이 책에는 단원마..
-
OpenSSL 프로젝트의 버전은 왜 1.x.x 다음이 3.x.x 일까기술 소식 2022. 11. 15. 19:40
오랫만에 Critical CVE가 나온다고 해서 긴장하며 기다리다가 3버전으로 한정되고 그 영향 범위도 똑똑한 컴퓨터 덕분에 축소된 CVE를 보다보니까 그냥 든 생각이다. 버전 체계는 프로젝트마다 다르지만, OpenSSL은 한가지 의문이 들만한 점이 있다. MAJOR.MINOR.FIX[PATCH] 로 구분하는 메이저 1버전. 예시로 1.1.1q MAJOR.MINOR.PATCH 로 구분하는 메이저 3버전. 예시로 3.0.7 1버전은 메이저 버전과 마이너 버전 조합이 같을 때 API(ABI) 호환성을 보증한다. 즉, 1.0.2에서 1.1.1로 버전을 변경할 때 API 호환은 보증하지 않는다. 3버전은 같은 메이저 버전의 API(ABI) 호환성을 보증한다. 즉, 3.0.0에서 3.0.7으로 버전 변경 시 AP..
-
회사에 코드 리뷰 하는 문화 만들어보기, (1) 학습동아리라면?Journal 2022. 10. 24. 23:46
클린 코드와 디자인 패턴 공부를 하고 나니 회사에 있는 소스코드에서 나는 악취를 맡을 수 있게 되었다. "이 악취는 내가 치우고 만다" 라는 목표 하나를 가지로 코드를 리팩터링 하고 테스트를 작성하는데, 코드를 작성하다 보니 자연스럽게 의문이 떠오른다. 내가 잘 하고있는걸까? 책에 있는 내용을 내가 이해한 건지, 다른 사람이 보기에 이해하기 좋은 건지, 악취가 가시는 건지 도저히 알 수가 없다. 다만 나와 같은 생각을 하는 사람들이 지금은 없다. 나조차 다른 팀까지 가지 않아도 당장 옆으로 두 칸만 가도 무슨 일을 하는지 모르고 있고 각자의 프로젝트에 커밋하는 개발 문화? 뿐이다. 내 코드 리뷰 경험은 버그를 생산하고, QA를 통과해서 문제를 일으키는 소스를 커밋한 죄로 혼나러 가는 것뿐이었다. 코드 리..
-
개발자가 읽은 "오늘도 개발자가 안 된다고 말했다"책 추천 2022. 10. 24. 23:24
책을 둘러보는데 개발자로써 그냥 지나칠 수 없는 책 제목을 만나버렸다. 오늘도 개발자가 안 된다고 말했다니. 심지어 오늘 말한 그대로다. 어쩌다보니 업무에 개발자가 나설일이 굉장히 많아졌는데 그러다보니 기획, 마케팅 여러 사람들이 개발자를 컴퓨터랑 떠드는데 익숙한 무언가로 보는 세상의 느낌이 그대로 제목에 드러난다고 할까. 책 내용은 반 이상이 기획자와 디자이너에게 맞추어져 있다.(비중은 개발자가 제일 많을지도 모른다) 개발자가 흥미롭게 읽을만한 부분은 1/3정도인데, 나머지 부분은 내용이 와닿지 않다보니(어렵다보니) 언급하기 어렵다. 그리고 결론을 말하자면 개발자로써 이 책을 마냥 좋게 볼 수 없었다. 이 책에서 묘사하는 "어려움" 은 다른 도메인을 가진 사람과의 협업이 어려움이지 "개발자" 여서 어려..