좋은 코드에 대한 생각 – 3: 작업에 대한 기록

개발이라는 건 기록의 작업이다. 코드 한줄을 작성하더라도 이유없는 코드가 없다. 이런 이유로 코드를 작성할 때 그 근거를 기록으로 남길려고 하고 권장한다. 당신은 어떤 방식으로 기록하고 있나? Jira와 같은 티켓 관리 시스템을 이용할 수도 있겠고, 혹은 Confluence에 일지를 쓸수도 있겠다. 하지만 당신이 개발자라면 이 문제를 개발자스럽게 풀고 있을 것이라고 생각한다. 코멘트? 가장 흔하게 생각할 수 있는 …

Continue reading ‘좋은 코드에 대한 생각 – 3: 작업에 대한 기록’ »

곱씹기 – 피터 드러커의 최고의 질문

리더쉽에 대한 조직장님의 추천이 있어서 읽게 된 책이다. 목차에 보면 위대한 질문들이 나온다. » 미션: 왜 무엇을 위해 존재하는가? » 고객: 반드시 만족시켜야 할 대상은 누구인가? » 고객 가치: 그들은 무엇을 가치있게 생각하는가? » 결과: 어떤 결과가 필요하며 그것은 무엇을 의미하는가? » 계획 수립: 앞으로 무엇을 어떻게 할 것인가? 각 질문에서 이야기하는 것들은 책을 읽어보면 알 것 같고, 전체 …

Continue reading ‘곱씹기 – 피터 드러커의 최고의 질문’ »

Slack as a slack – 슬랙을 슬랙답게 쓰자

일상 생황에서 여러 메신저 어플을 사용한다. 개인적으로는 전직장 사람들과는 라인으로 연락하고, 그외 일반인들과는 모두 카톡으로 개인적인 연락을 취한다. 하지만 회사 일과 관련된 연락은 슬랙(Slack)이라는 메신저를 통해 연락을 주고 받는다. 상사 갑질 이야기가 나올 때 항상 나오는 단골 이야기꺼리가 “단톡방”이다. 회사 업무를 위해서 단톡방을 만들고, 업무 이야기를 한다. 근데 그 단톡방에 포함이 안되면 “왕따”가 되는 것이고, …

Continue reading ‘Slack as a slack – 슬랙을 슬랙답게 쓰자’ »

다중 도메인을 위한 HTTPS Certification 생성 방법

HTTP 환경에서 서비스를 제공하는건 여러모로 불안하다.  단순한 Packet sniffing에도 데이터가 탈취되니 말이다.  이렇게 말하지만 이 사이트 자체도 https를 사용하지 않으니 할말은 없다. 그럼에도 불구하고 회사를 통해 제공되는 서비스는 안전함을 우선해야 한다. 그렇기 때문에 HTTPS 방식으로 서비스를 제공해야하고.  개별 장비에 대한 인증서 생성을 위해서는 Certification 생성을 위해서는 CSR과 KEY 파일을 생성해야 한다.  한 도메인에 대한 생성은 …

Continue reading ‘다중 도메인을 위한 HTTPS Certification 생성 방법’ »

AWS EC2에서 S3 Webhosting에 접속하기

라고 쓰지만 다른 이름으로  “같은 집안끼리 왜 이래!!”로 잡는다. 시스템을 구성하는 과정에서 목적에 따른 다양한 도메인을 별개로 잡기보다는 하나의 도메인에서 각 기능 제공 영역을 reverse proxy로 구성하는 방안을 적용했다. 여러 도메인들을 관리해야하는 피로감이 있었고, 각 도메인별로 따로 Certification을 받아야 하는 프로세스가 귀찮은 것도 있었다.  대강의 구조는 아래와 같이 셋업했다. 기존 설정에서 AWS S3 webhosting에 대한 …

Continue reading ‘AWS EC2에서 S3 Webhosting에 접속하기’ »

변수명으로 Readability 높이기?

코드 리뷰를 하다보면 약간 복잡한 expression 혹은 statement의 결과를 변수로 치환한 다음에 아래에서는 그 변수를 사용하는 경우가 있다.  변수의 값 참조가 여러번 이뤄지면 문제가 아니지만 갸우뚱하게 되는 케이스는 한번만 사용하는 경우다.  대부분의 자동화 분석 도구는 이런 경우에 대해 고치라는 처방전을 준다.  하지만 나는 기계가 아니라 사람이고 사람이 보기에 복잡해보이는 걸 두는 것보다는 “변수가 의미를 설명해주는데 …

Continue reading ‘변수명으로 Readability 높이기?’ »

Kafka monitoring and administration

카프카(Kafka)는 생각보다 쉬운 툴이다. 하지만 장기적으로 운영할 시스템 환경은 간단히 한번 돌리고 마는 경우와 고려해야 할 것들이 제법된다.  운영 관점의 설정 값들을 엉뚱하게 해놓으면 잘 차려진 밥상에 꼭 재를 뿌리게 된다.  이런 잘못을 범하지 않으려면 Kafka라는 이름뿐만 아니라 이 도구가 어떤 방식으로 동작하는지 깊게 들어가볼 필요가 있다.  물론 그 동작 방식을 운영 환경과 어울려 살펴봐야만 …

Continue reading ‘Kafka monitoring and administration’ »

좋은 코드에 대한 개인적인 생각 – 2

개발자는 코드를 작성해야한다.  그리고 코드들이 엮이고 엮여 시스템이 만들어진다.  시스템은 필요를 요청한 사용자에게 기능을 제공한다.  물론 시스템을 구성하기 위해 필요한 노력을 개발자만 하는 건 아니다.  인프라 엔지니어는 장비와 네트워크를 준비하고, 데이터베이스 엔지니어는 데이터를 보관할 수 있는 저장소를 준비한다.  최근에는 Data Scientist가 데이터를 분석하고 빅데이터 도구를 통해 적절한 값들을 생성해낸다. 이외에도 다양한 노력들이 합쳐져 시스템이 만들어진다. …

Continue reading ‘좋은 코드에 대한 개인적인 생각 – 2’ »

PathVariable에 Slash(/)가 값으로 처리하기

RESTful 방식에서 URI는 Resource에 대한 접근을 어떤 방식으로 허용할지를 결정하는 중요한 요소이다.  당연히 특정 리소스의 구성 요소를 지정하는 방식으로 PathVariable을 사용해야한다. 대부분의 경우에는 별 문제없이 사용할 수 있지만 PathVariable에 특수문자가 들어오는 경우에 예상외의 오류가 발생하는 경우가 있다.  이런 대표적인 특수 문자가 Slash(/)이다.  Slash가 문제가 되는 이유는 짐작하겠지만, 이걸로 인해서 URI의 Path Separation이 발생하기 때문이다. API …

Continue reading ‘PathVariable에 Slash(/)가 값으로 처리하기’ »

Reading note for Summary of Drive

간만에 책을 읽긴 읽었는데, 제대로 읽은건 아니고… 사고보니 이게 Summary 북이네? Conference에서 Leadership 관련된 세션을 듣다가 이 책은 꼭 읽어야 한다는 이야기를 들었는데, Summary라고 하더라도 왜 그렇게 추천을 했는지 이해가 갈만한 것 같다. Motivation 1.0 – the early operating system(started fifty thousand years ago) which means that we work because we were trying to physically …

Continue reading ‘Reading note for Summary of Drive’ »