Docker와 Nginx를 사용해 컨테이너를 빌드할 때마다 자동으로 배포되는 서비스를 구축해 보겠습니다. 제가 일전에 기술블로그에 올렸던 GoCD와 같이 쓰시면 배포 생산성이 높아집니다. 이런 과정을 CD(지속적인 배포)라고 부르는데 적어도 소프트웨어를 다루고 있다면 관련 공부는 필수적입니다. 대부분 DevOps 과정으로 편입되니 인프라나 클라우드 관련 취업이 목적이라면 꼭 알아두셔야 할 기초 개념입니다. 이 포스트에서는 Docker로 자동배포 + SSL 적용까지 한 번에 해결되는 배포 시스템을 구축해 봅니다. 1. 자동 배포 https://hub.docker.com/r/nginxproxy/nginx-proxy Docker hub.docker.com 스크립트는 다음과 같습니다. 아래는 Mac/Linux ..
전체 글
안녕하세요 🔭 소프트웨어 개발자 허형준입니다. 개인적인 에세이와 대중적인 기술 칼럼을 쓰고 있습니다. 테스트베드 스타트업 데카르트좌표계를 창립하고 bleeding edge 기술을 다루고 있습니다.해커톤을 나가거나 실무를 한다면 협업은 필수입니다. 이때 어떤 사람은 끝에 세미콜론을 안 붙이거나, 같은 알고리즘을 짜더라도 가독성을 신경 쓰지 않거나, Tab vs Space 논쟁이 시사하는 것처럼 컨벤션을 다르게 하기도 합니다. 이때마다 "컨벤션을 통일합시다"라고 말하기에는 각자의 코드 스타일이 너무 명확해서 오히려 불편해지고 생산성이 떨어지는 문제를 낳습니다. 그럴때 VSCode에는 협업을 위한 익스텐션이 여러 개 존재합니다. 이 포스트에서는 유용한 VSCode 익스텐션을 살펴보고 어떤 이점이 있는지 살펴봅니다. 1. Prettier - Code formatter 코드 포멧팅 도구입니다. 사실상 협업의 필수이기도 하고 앞서 언급했듯 Tab vs Space 논쟁을 한 번에 일축할 최고의 도구입니다. ..
개인적으로 데카르트의 방법서설을 좋아하는데, 은 한국어로 번역되어 있지 않다. 책 좋아하는 사람으로서 이제 이런 건 익숙하기도 하고 그러려니 한다. 근데 왜 은 번역해 놓고 나머지는 번역하지 않았는지 궁금할 따름이다. 우리가 아는 그 방법서설은 에 서문 격에 해당하는데, 적어도 한국어로 번역되어야 할 부분이라고 본다. (설마 역자가 LaTeX 문법을 모르나.........?) 의심도 해볼 수 있으나 고작 16세기 수학 공식 몇 개 적는 게 그렇게 힘들까. 다른걸 다 떠나서 한국어 번역본이 나왔으면 하는 바람이다. 방법서설은 한국어로 번역되어 있으니 사서 읽으면 되고, 나머지는 한국어로 번역되어있지 않아 영어 번역본을 올린다. "Les Météores" (The Meteors) (기상학) 이건 심지어 미국..
형준의 에세이 #1 카뮈의 철학에는 무의미함이 깔려있다. "우리들 각자는 최대한의 삶과 경험을 쌓아 가지만 결국 그 경험의 무용함을 너무나도 분명하게 느끼고 만다. 무용함의 감정이야말로 그 경험의 가장 심오한 표현인 것이다." 이십 대 초반이었던 1934~1935년 겨울에 이미 카뮈는 친구 막스 폴 푸셰에게 보낸 편지에서 이렇게 말했다. 그러나 그는 또한 ”그렇다고 해서 비관론자가 되어야 한다는 말은 아니다 “라고 못 박는다. 알베르 카뮈 이방인 187p 삶이 무의미하다고 해서 아무것도 하지 말란 뜻은 아니다. 오히려 그 반대다. 카뮈는 "치열하게 살아야 한다"고 강조한다. 카뮈의 철학은 시지프 신화에서 잘 드러난다. 시지프는 신의 분노를 사 지옥에서 벌을 받는다. 거대한 돌덩이를 산 정상으로 밀어 올린..
디자인 시스템 디자인 시스템은 UIUX 디자인 전반을 포괄하는 체계다. 제품의 성격과 사용성을 규정하며, 체계적이고 유연함과 동시에 빠른 디자인을 가능하게 한다. 흔히 애플스럽다, 딱딱하다, 부드럽다 같은 디자인의 주관적인 느낌을 결정하는데 중요한 역할을 한다. 대부분의 많은 회사와 조직이 디자인 시스템을 가지고 있으며 최근 들어서는 대기업뿐 아니라 일반 스타트업 까지도 디자인 시스템의 중요성이 부각되는 추세다. 디자인 시스템의 역할은 협업 용의성에 있다. 디자이너가 제시한 초안을 바탕으로 개발자는 직접 개발하게 되는데, 디자인 시스템이 없다면 px 단위인지 mm단위인지부터 서면으로 상세하게 규정해야 한다. 시스템의 부재로 인해 협업 시간이 오래 소요되고, 불필요한 소통이 증가하게 된다. 단순히 디자인 ..
이 글에서 나오는 업체명, 서비스 이름은 광고가 아닙니다. 어떠한 원고료, 수고비등의 보상을 받지 않고 작성한 글임을 밝힙니다. 코드사인 인증서 발급에 관한 글이 없다시피 해서 이번 기회에 적어보려 한다. 개인적으로 electron, javascript(+type)으로 윈도우 프로그램을 만들어보며 겪은 일화 중, 코드사인이 가장 골치 아팠다. 그만큼 자료가 부족하기도 하고 쓸데없이 외국에서 구매해 보겠다고 삽질하는 바람에 약 1개월을 날렸던 기억이 있다. 그런 의미에서 이 글을 읽는 여러분들은 필자의 삽질을 따라 하지 않길 바라는 마음에서 공유해보려고 한다. 코드 사인 관련 블로그로는 아래를 참고했다. https://blog.horyu.me/20 코드 사인 인증서 발급기 1 - 자료 조사 평소에 C# 으..
어떤 선생님이든 질문하는 학생을 좋아할 수밖에 없다. 질문한다는 건 학생이 수업을 열심히 들었다는 증거고, 동시에 수업에 참여한다는 반증이니까. 그래서 많은 선생님들은 학생들에게 늘 질문하라 말한다. 그럼 어떻게 질문을 이끌어낼 수 있을까. 답은 맨 처음 질문의 포문을 여는 단 한 명에게 걸려있다. 왜 질문하지 않는 분위기가 만들어지나 질문하지 않는 분위기는 크게 두 가지 요소가 중첩될 때 형성된다. 꽉 찬 오디오와 충분한 정보제공. 꽉 찬 오디오는 청자 입장에서 생각할 틈을 주지 않는다. 생각은 별다른 외부로부터의 자극이 들어오지 않을 때 뉴런 간 연결이 활성화되어 정보에 대한 심층적인 처리로 이루어진다. 만일 우리가 자극을 지속적으로 받는다면 그 자극을 처리하느라 자극에 대한 분석을 의식적으로 처리할..
프로그래밍 언어, Javascript. 특정한 소프트웨어를 만드는 데 있어 언어의 제약은 없지만, 개발 목적에 따라 특화된 언어는 존재한다. C#은 윈도우즈 개발, Java는 쉬운 코드와 안정성 범용성, Python은 ML. JavaScript는 웹이다. 현대의 산업은 웹에서 시작해, 웹으로 끝난다. 그만큼 인터넷과 웹의 범위는 상당하고 또 중요하다. 대부분의 전자상거래가 인터넷으로 이루어진 만큼, 개발자는 사용자에게 필요한 기능을 빠르고 안정적으로 제공해야 한다. 개발자가 선택할 수 있는 플랫폼은 두 가지다. 웹이냐 앱이냐. 앱 개발은 개발 비용이나 복잡성만큼이나, 빠르게 개발하기는 어렵다. 배포도 웹만큼 간편하지 않다. 심지어 플랫폼 업자에게 심사까지 받아야 한다. 반면 웹 개발에는 제한요소가 없다...