Java 프로젝트를 수행하며 항상 고민하는 라이브러리로 Guava와 Apache Commons가 있습니다. 세분화 된 라이브러리와 다양한 기능은 Apache Commons이 좋지만 결국 한 개, 한 개 추가하다보면 apache-xxx 라이브러리에 대한 많은 의존성이 생깁니다. 굳이 필요없는 기능까지 많이 의존하게 되어 나의 경우는 대부분 Guava를 기본으로 시작합니다. 그리고 Java 프로젝트를 하며 항상 사용하는 라이브러리를 정리하려고 기록합니다. Guava Guava는 Google의 코어 라이브러리입니다. Collection(JDK 버전이 올라가며 많이는 필요 없는), caching, string processing 등 프로젝트 구현 시 공통적으로 필요한 요소들이 구현되어 있습니다. 더보기

맥미니에 macOS Server를 설치해서 웹 서비스 및 개발 서버로 사용합니다. Apache Virtual Host 설정은 블로그 도메인을 Docker로 서비스하는 Ghost로 연결할 때 사용하였습니다. 블로그는 글을 작성할 때 Markdown 사용이 가능한 Ghost를 이용하였습니다. Wordpress, Ghost, Hugo 등 다양한 플랫폼 중 Ghost를 선택한 이유는 웹 상에서 글을 쓰고 관리하기 편리하여 Ghost를 사용하였습니다. Wordpress는 너무 복잡하고 Markdown으로 쓰기에는 불편함이 많아서 제외되었습니다. 현재는 Hugo를 이용하여 블로그를 운영 중입니다. 왜 Apache Virtual Host를 설정할까? Ghost를 Docker를 이용하여 설치하면 기본적으로 http://localhost:2368 로 주소가 할당됩니다. 더보기

Pagination을 구현하며 100만 건이 이하의 자료에 대해서는 기본 Index 생성 외에 최적화를 신경 쓰지 않았습니다. 하지만 이번 프로젝트에서 약 1000만 건이 넘는 Row를 가진 Table을 검색하며 Paging 검색 쿼리의 최적화가 필요하다는 걸 알게 되었습니다. Pagination 최적화는 다음의 방법이 있었습니다. 검색 조건에 대한 Index 생성 sql 최적화 (LIMIT -> JOIN 변경) 위 방법 중 1. 검색 조건에 대한 index 생성은 기본적으로 개발자 & DBA의 도움을 얻어 쉽게 작성을 합니다. 더보기

Go 라는 언어는 참 재미있습니다. 프로그램 언어 중 어린 나이라서 최신 기술과 그 동안의 개발자들의 많은 고민들이 스펙이 들어가있습니다. Go를 공부하면서 겪는 특이한 점들을 몇 개 정리 해보았습니다. 구글에서 Go를 검색할려면? 첫 번째로 부딪힌 가장 재미있는 점은 구글에서 궁금한 점을 찾을 때 키워드가 약간 고민스럽습니다. 단순히 go 라고 검색하면 생뚱맞은 결과들이 나타날 때가 많습니다. 그래서 대부분의 개발자와 질문을 올리는 사람들이 golang이라고 적어서 올립니다. go 이면서 go라고 부르지(아니 검색하지) 못하는 재미있는 언어 대/소문자를 이용한 제한자 대문자 함수는 public, 소문자이면 private 정말 이건 안 익숙해지는 규칙입니다. 더보기

한 때 ‘월간동근방’이란 이름으로 매월 소소함을 만들어보는 프로젝트를 홀로 작업하였습니다. 하지만 이건 엄청 힘들고 무리인 목표였습니다. 그래도 그간 꽤 많은 산출물이 나왔고 배운 것, 남은 것들이 많은 시간이었습니다. 그 때를 회상하며 프로젝트 결과를 정리하여 기록합니다. 처음으로 만들어보는 월간동근방 프로젝트의 그 시작은 이 블로그의 테마를 만드는 것으로 시작하였습니다. 월간동근방 매달 새로운 프로그램을 개발하는 프로젝트 도전 & 기술혼이라는 이름으로 재미삼아 만들어보는 시도 월간동근방 - 2016년 11월 작품 Hugo Hello Programmer Theme 첫 번째로 시작된 월간동근방 프로젝트는 이 블로그의 테마를 만들었습니다. 더보기

Docker 중에서도 아주 간단한 소개 및 사용방법을 공유합니다. 본 글은 Docker를 처음 보는 사람들을 위해서 정리하였고 특히 꼭 알고 싶어하는 김O호, 박O규를 위해 작성되었습니다. Docker? Docker를 왜 사용할까? 많은 고민을 해볼 수 있지만 가장 주요한 포인트는 독립 환경이라는 점입니다. 사실 가상화 기술들을 이용하여 다양한 방법으로 독립 환경을 구성하는 도구 및 방법들은 많이 존재합니다. 하지만 그 중에서도 Docker는 도커 이미지를 통해서 쉽고 빠르게 구성을 도와줍니다. [참고1], [참고2] LXC(리눅스 커널 컨테이너)를 기반으로 하는 하드웨어 자원이 효율적 사용과 같은 고급진 말로 설명도 하지만 저자는 여러 가상화 환경 중에서도 가장 쉽게 독립 환경을 구축하는 가상화 도구라는 관점에서 접근하였습니다. 더보기

본 글은 인공위성과 관련된 시스템을 개발하는 업무 중 좋은 설계란을 고민하며 작성한 글입니다. 현재는 다른 도메인으로 이직을 한 상태이지만 작성 시 일반적인 프로그래머의 입장에서 작성하였기 때문에 다른 분야의 프로그래머도 함께 고민할 수 있는 주제라고 생각합니다. 좋은 설계를 고민해보면 일단 설계가 무엇인지 정의가 필요합니다. SW공학에 영향을 많이 준 건축의 설계 정의는 다음과 같습니다. 건축설계의 정의(建築設計, architectural design)는 건축물을 구축하기 위하여 요구되는 기능과 형태와 구조를 결정하고 물리적 형식을 구체화하는 과정을 총칭한다. 더보기

페이지 3 / 4
위로