<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>조은우 기술 블로그</title><link>https://jonnung.dev/</link><description>Recent content on 조은우 기술 블로그</description><generator>Hugo -- gohugo.io</generator><language>ko-kr</language><lastBuildDate>Sat, 25 Apr 2026 00:00:00 +0900</lastBuildDate><atom:link href="https://jonnung.dev/index.xml" rel="self" type="application/rss+xml"/><item><title>QMD로 배운 하이브리드 검색</title><link>https://jonnung.dev/posts/2026-04-25-qmd-hybrid-search/</link><pubDate>Sat, 25 Apr 2026 00:00:00 +0900</pubDate><guid>https://jonnung.dev/posts/2026-04-25-qmd-hybrid-search/</guid><description>Obsidian 검색의 아쉬움 옵시디언에 노트가 1,500개 넘게 쌓여 있다. 요즘은 Claude Code로 옵시디언을 관리하고 있는데, 어느 날 특정 주제를 탐색하다 보니 Claude</description></item><item><title>tmux를 배운 이유</title><link>https://jonnung.dev/posts/2026-03-23-tmux/</link><pubDate>Mon, 23 Mar 2026 02:37:52 +0900</pubDate><guid>https://jonnung.dev/posts/2026-03-23-tmux/</guid><description>두 달 정도 Openclaw1와 놀아보면서 그동안 자동화하고 싶었던 사소한 일들이나 개인 프로젝트에 확실히 속도감이 붙었다. 특히 그 과정에서 PM 에이전트2와 아</description></item><item><title>자연석 돌담을 쌓는 것처럼 생각하고 글쓰기</title><link>https://jonnung.dev/book/2025/03/03/book-weinberg-writing/</link><pubDate>Mon, 03 Mar 2025 13:13:47 +0900</pubDate><guid>https://jonnung.dev/book/2025/03/03/book-weinberg-writing/</guid><description>글을 쓴다고 해서 살아가면서 무언가 대단히 중요한 것을 얻을 수 있다고 생각한 건 아니다. 단지 가끔 엄청나게 기발하다고 생각한 아이디어나 매 순간 느껴졌던 감정과 생각</description></item><item><title>2024년 회고</title><link>https://jonnung.dev/etc/2024/12/31/review-2024/</link><pubDate>Tue, 31 Dec 2024 21:40:00 +0900</pubDate><guid>https://jonnung.dev/etc/2024/12/31/review-2024/</guid><description>마무ㄹ/ 회사의 시작부터 함께 걸어온 여정을 3년 만에 마치게 되었다. 좋은 사람들도 많이 만났고, 좋은 경험도 많이 쌓았다. 내가 할 줄 아는 것들은 거의 다 해본 것 같고</description></item><item><title>2023년 회고</title><link>https://jonnung.dev/etc/2023/12/31/review-2023/</link><pubDate>Sun, 31 Dec 2023 18:41:00 +0900</pubDate><guid>https://jonnung.dev/etc/2023/12/31/review-2023/</guid><description>새로운 가족이 생기다 올해 가장 행복한 순간은 내 아이가 태어났다는 것이다. 작년에 회고를 쓸 무렵, 오랜 기다림과 간절함 끝에 우리 부부에게는 소중한 아이가 찾아왔다</description></item><item><title>OrbStack: MacOS 사용자를 위한 Docker Desktop 대체재</title><link>https://jonnung.dev/docker/2023/11/20/orbstack-alternative-docker-desktop/</link><pubDate>Mon, 20 Nov 2023 17:39:10 +0900</pubDate><guid>https://jonnung.dev/docker/2023/11/20/orbstack-alternative-docker-desktop/</guid><description>OrbStack이란? OrbStack은 MacOS에서 Docker 컨테이너와 Linux 가상 머신을 실행할 수 있는 도구입니다. 이는 WSL 2처럼 경량 Linux 가상 머신을 사용하여 오</description></item><item><title>2022년 회고</title><link>https://jonnung.dev/etc/2022/12/31/review-2022/</link><pubDate>Sat, 31 Dec 2022 20:00:00 +0900</pubDate><guid>https://jonnung.dev/etc/2022/12/31/review-2022/</guid><description>1. 테크 리더로 보낸 1년 10개월 2022년 회고를 준비하면서 가장 많이 떠오르는 기억은 대부분 회사와 관련된 것 같다. 내가 닷슬래시대시(DotSlashDa</description></item><item><title>AWS EKS 버전 업그레이드 실습 가이드</title><link>https://jonnung.dev/kubernetes/2022/12/18/upgrade-aws-eks-kubernetes-version/</link><pubDate>Sun, 18 Dec 2022 12:33:00 +0900</pubDate><guid>https://jonnung.dev/kubernetes/2022/12/18/upgrade-aws-eks-kubernetes-version/</guid><description>1. Control Plane 업그레이드 AWS EKS에서 Control Plane은 AWS에서 직접 관리하기 때문에 업그레이드하는 방법은 의외로 간단합니다. 가장 기본적인 방법으로는 AWS Management Console(web) 상에</description></item><item><title>Istio 버전 업그레이드 실습 가이드</title><link>https://jonnung.dev/istio/2022/12/15/upgrade-istio-version/</link><pubDate>Thu, 15 Dec 2022 11:59:39 +0900</pubDate><guid>https://jonnung.dev/istio/2022/12/15/upgrade-istio-version/</guid><description>1. 테스트용 EKS 클러스터 생성 마음 편하게 테스트할 수 있는 EKS 클러스터를 하나 준비합니다. 테스트용 애플리케이션을 실행해서 Sidecar Proxy가 제대로 붙는지 확인할 수</description></item><item><title>Go에서 String과 Bytes Slice 이해하기</title><link>https://jonnung.dev/golang/2022/08/16/go-string-bytes-slice/</link><pubDate>Tue, 16 Aug 2022 23:44:10 +0900</pubDate><guid>https://jonnung.dev/golang/2022/08/16/go-string-bytes-slice/</guid><description>이 글에서는 유니코드와 UTF-8 인코딩에 대한 자세한 내용은 다루지 않으니, 미리 가볍게 학습해두는 것을 추천한다. Go 언어에서 소스 코드는 UTF-8로 인코딩된다. 그</description></item><item><title>[책 읽고 정리] 'MongoDB 완벽 가이드'의 5장 인덱싱</title><link>https://jonnung.dev/book/2022/03/27/book-review-mongodb-the-definitive-guide-chapter5-indexing/</link><pubDate>Sun, 27 Mar 2022 11:37:03 +0900</pubDate><guid>https://jonnung.dev/book/2022/03/27/book-review-mongodb-the-definitive-guide-chapter5-indexing/</guid><description>MongoDB 인덱스에 대해 효과적인 인덱싱 전략을 위해서 가장 중요한 것은 &amp;ldquo;Selectivity(선택성)&amp;ldquo;를 높이는 것이다. 즉, 최대한</description></item><item><title>AWS RDS Proxy로 RDS 인스턴스 다운 타임을 최소화하기</title><link>https://jonnung.dev/aws/2022/02/15/aws-rds-proxy-for-rds-downtime/</link><pubDate>Tue, 15 Feb 2022 00:08:15 +0900</pubDate><guid>https://jonnung.dev/aws/2022/02/15/aws-rds-proxy-for-rds-downtime/</guid><description>서비스 초기 인프라를 구축하는 과정에서 트래픽 규모를 예상하는 일은 쉽지 않다. 적당히 (희망하는) 트래픽에 나름대로 적절하다고 생각했거나 혹시 대박이 터져서 대</description></item><item><title>[책 읽고 정리] 파이썬으로 살펴보는 아키텍처 패턴 (Part1)</title><link>https://jonnung.dev/book/2022/01/23/book-review-architecture-patters-with-python-part1/</link><pubDate>Sun, 23 Jan 2022 17:28:19 +0900</pubDate><guid>https://jonnung.dev/book/2022/01/23/book-review-architecture-patters-with-python-part1/</guid><description>작은 서비스를 만들 때는 일단 잘 돌아가게 하는 것이 중요하다고 생각했다. (일단 대충 돌아가게 하는 것과는 다르다) 그래야 나와 함께 손발을 맞추는 동료들이 너무 오래</description></item><item><title>2021년 회고</title><link>https://jonnung.dev/etc/2021/12/30/review-2021/</link><pubDate>Thu, 30 Dec 2021 16:28:14 +0900</pubDate><guid>https://jonnung.dev/etc/2021/12/30/review-2021/</guid><description>도저언 작년에도 이직이 핵심 이벤트였는데 올해 한번 더 이직을 했다. 다른 이유보다 지금 아니면 이런 경험을 못 할 것 같았다. 이렇게 된 계기는 2020년 말에 시작되었</description></item><item><title>세 번째 배우는 Go - 파트 3: 고루틴과 채널로 동시성 다루기</title><link>https://jonnung.dev/go/2021/12/21/concurrency-goroutine-and-channel/</link><pubDate>Tue, 21 Dec 2021 20:36:49 +0900</pubDate><guid>https://jonnung.dev/go/2021/12/21/concurrency-goroutine-and-channel/</guid><description>Goroutines goroutine은 Go 런타임이 자체적으로 관리하는 경량 스레드로서 다른 함수를 동시에 실행할 수 있다. 새로운 goroutine을 시작하려면 단순히 함수</description></item><item><title>세 번째 배우는 Go - 파트 2: Tour of Go를 학습하며 남기는 기록과 예제</title><link>https://jonnung.dev/go/2021/12/18/tour-of-go/</link><pubDate>Sat, 18 Dec 2021 14:45:45 +0900</pubDate><guid>https://jonnung.dev/go/2021/12/18/tour-of-go/</guid><description>패키지 모든 프로그램은 main 패키지에서 실행을 시작한다. 패키지를 import하고 import한 패키지 이름(경로)의 마지막 부분을 네임스페이스처럼 그 패키</description></item><item><title>세 번째 배우는 Go - 파트 1: 설치와 패키지 관리</title><link>https://jonnung.dev/go/2021/12/12/go-installation-package-management/</link><pubDate>Sun, 12 Dec 2021 17:51:15 +0900</pubDate><guid>https://jonnung.dev/go/2021/12/12/go-installation-package-management/</guid><description>Go 언어를 다시 공부하는 게 벌써 세 번째다. 2017년, 2019년 그리고 2021년&amp;hellip;(왜 2년마다?) 내가 새로운 언어를 배워야겠다고 결심하</description></item><item><title>ASGI와 Uvicorn 그리고 Gunicorn과 함께 사용하기</title><link>https://jonnung.dev/python/2021/10/24/asgi-uvicorn-with-guicorn/</link><pubDate>Sun, 24 Oct 2021 14:45:30 +0900</pubDate><guid>https://jonnung.dev/python/2021/10/24/asgi-uvicorn-with-guicorn/</guid><description>최근 FastAPI 프레임워크의 인기가 높아지는 이유에 대해 개인적으로 생각으로 2가지 정도 꼽을 수 있을 것 같다. 첫번째는 빠른 속도이다. FastAPI는 ASGI 서버인 Uvi</description></item><item><title>로컬 개발 환경에서 Tilt를 이용한 신속한 빌드/배포</title><link>https://jonnung.dev/etc/2021/05/08/tilt-for-dev-environment/</link><pubDate>Sat, 08 May 2021 00:10:39 +0900</pubDate><guid>https://jonnung.dev/etc/2021/05/08/tilt-for-dev-environment/</guid><description>Tilt 소개 Tilt는 개발자 로컬 환경에서 애플리케이션을 개발하고, 배포하는 반복 과정을 도와주는 도구이다. 만약 로컬 환경에서 Kind나 Docker Desktop을 이</description></item><item><title>Kubernetes Cluster API 따라하며 이해하기</title><link>https://jonnung.dev/kubernetes/2021/02/28/cluster-api-quickstart/</link><pubDate>Sun, 28 Feb 2021 15:34:01 +0900</pubDate><guid>https://jonnung.dev/kubernetes/2021/02/28/cluster-api-quickstart/</guid><description>이 글은 페이스북 Kubernetes Korea Group에서 진행한 Cluster-API 스터디 모임에 참여하면서 공부했던 것을 정리한 내용입니다. Cluster API란? Cluster API가 무엇인지 알아보기 전에 이게 필</description></item><item><title>AWS IAM 역할(Role)은 정확히 무엇인가요? 어떻게 써야 할까요</title><link>https://jonnung.dev/posts/2021-01-28-aws-iam-role/</link><pubDate>Thu, 28 Jan 2021 23:23:55 +0900</pubDate><guid>https://jonnung.dev/posts/2021-01-28-aws-iam-role/</guid><description>이 글에서는 IAM 역할(Role)에 대해 이해하기 위한 내용을 다뤄보려고 한다. 역할?이라고 하면 뭔가 뻔해 보이지만 자세히 들여다보기 전에는 조금 아리송한 부분이</description></item><item><title>AWS VPC Endpoint 개념과 간단한 실습</title><link>https://jonnung.dev/posts/2021-01-17-aws-vpc-gateway-endpoint/</link><pubDate>Sun, 17 Jan 2021 18:16:21 +0900</pubDate><guid>https://jonnung.dev/posts/2021-01-17-aws-vpc-gateway-endpoint/</guid><description>VPC 외부에서 실행되는 대표적인 서비스 중 S3와 VPC 내부의 리소스(예: EC2)가 통신하기 위해서는 기본적으로 인터넷을 통해서만 가능하다. 하지만 VPC 밖에서 들어</description></item><item><title>Python으로 CLI 만들 때는 Typer</title><link>https://jonnung.dev/python/2021/01/16/python-cli-typer/</link><pubDate>Sat, 16 Jan 2021 00:45:06 +0900</pubDate><guid>https://jonnung.dev/python/2021/01/16/python-cli-typer/</guid><description>#괜찮은오픈소스를소개합니다 간단한 명령어를 모아 놓거나, Crontab을 활용해 주기적으로 실행시킬 목적으로 Bash 스크립트를 작성할 때가 있다. 하지만 단순</description></item><item><title>2020년 회고</title><link>https://jonnung.dev/etc/2020/12/31/review-2020/</link><pubDate>Sat, 02 Jan 2021 00:08:53 +0900</pubDate><guid>https://jonnung.dev/etc/2020/12/31/review-2020/</guid><description>흘러가는 시간에 시작과 끝을 구분할 수는 없지만, 그래도 이상하게 해가 바뀌는 이쯤이 되면 지난 1년을 돌아보게 된다. 살면서 항상 좋은 일만 생기길 바란다고 좋은 일만</description></item><item><title>CKA 도전 후기와 스포 없는 팁 공유</title><link>https://jonnung.dev/kubernetes/2020/08/24/cka-challenge-and-spoiler-free-tips/</link><pubDate>Mon, 24 Aug 2020 13:28:00 +0900</pubDate><guid>https://jonnung.dev/kubernetes/2020/08/24/cka-challenge-and-spoiler-free-tips/</guid><description>2020년 한 해 목표를 세울 때 CKA(Certified Kubernetes Administrator) 취득도 계획했었다. 사실 이 자격 증명을 갖는다는 것에 어떤 큰 의미를 둔 것은 아니지만, 2년 넘게 쿠버네티스에서 서비스를 운영</description></item><item><title>Kubernetes의 사용자들</title><link>https://jonnung.dev/kubernetes/2020/06/18/kubernetes-user-authorizations/</link><pubDate>Thu, 18 Jun 2020 21:42:00 +0900</pubDate><guid>https://jonnung.dev/kubernetes/2020/06/18/kubernetes-user-authorizations/</guid><description>우리는 어떻게 쿠버네티스 클러스터에 접근할 수 있는 것일까? 쿠버네티스를 사용해 본 경험이 있다면, 보통 CLI 기반의 kubectl 명령어를 사용한다. 만약 MacOS에 Doc</description></item><item><title>Kubernetes의 DNS, CoreDNS를 알아보자</title><link>https://jonnung.dev/kubernetes/2020/05/11/kubernetes-dns-about-coredns/</link><pubDate>Mon, 11 May 2020 00:37:28 +0900</pubDate><guid>https://jonnung.dev/kubernetes/2020/05/11/kubernetes-dns-about-coredns/</guid><description>CoreDNS 살펴보기 쿠버네티스 클러스터 내 POD에서 어떤 도메인을 찾고자 할 때 kube-system 네임스페이스에 실행되고 있는 CoreDNS가 네임서버로 사용된다. 기존에 Kube</description></item><item><title>도커 이미지 잘 만드는 방법</title><link>https://jonnung.dev/docker/2020/04/08/optimizing-docker-images/</link><pubDate>Wed, 08 Apr 2020 18:29:21 +0900</pubDate><guid>https://jonnung.dev/docker/2020/04/08/optimizing-docker-images/</guid><description>도커 이미지가 저장되는 방식 도커 이미지를 pull 받게 되면 마치 여러개로 분리된 조각을 내려받는 것처럼 보인다. $ docker pull nginx:latest Using default tag: latest latest: Pulling from library/nginx c499e6d256d6: Already exists 74cda408e262: Pull complete ffadbd415ab7: Pull complete Digest: sha256:282530fcb7cd19f3848c7b611043f82ae4be3781cb00105a1d593d7e6286b596 Status:</description></item><item><title>Varnish 캐시 히트 효율을 높이는 방법</title><link>https://jonnung.dev/system/2020/03/18/increasing-varnish-cache-hit-rate/</link><pubDate>Wed, 18 Mar 2020 23:00:00 +0900</pubDate><guid>https://jonnung.dev/system/2020/03/18/increasing-varnish-cache-hit-rate/</guid><description>이 글은 웹 서버 또는 API 서버의 응답 결과를 캐시하기 위한 Reverse Proxy로서 활용되는 Varnish 캐시 서버에 대해서 다룬다. 하지만 설치와 실행 방법은 다루지 않으며 Varnish 캐시 서버</description></item><item><title>AWS EC2에서 kubeadm으로 쿠버네티스 클러스터 만들기 - (2) 쿠버네티스 클러스터 구성</title><link>https://jonnung.dev/kubernetes/2020/03/07/create-kubernetes-cluster-using-kubeadm-on-aws-ec2-part2/</link><pubDate>Sat, 07 Mar 2020 22:00:00 +0900</pubDate><guid>https://jonnung.dev/kubernetes/2020/03/07/create-kubernetes-cluster-using-kubeadm-on-aws-ec2-part2/</guid><description>이 튜토리얼은 &amp;ldquo;(1) AWS 인프라 구축&amp;ldquo;에서 만든 AWS EC2 인스턴스에 쿠버네티스 클러스터를 직접 구성 해보는 과정을 담았다. 쿠버네티스 1.17 버전과 네트워크 플러</description></item><item><title>AWS EC2에서 kubeadm으로 쿠버네티스 클러스터 만들기 - (1) AWS 인프라 구축</title><link>https://jonnung.dev/kubernetes/2020/03/01/create-kubernetes-cluster-using-kubeadm-on-aws-ec2/</link><pubDate>Sun, 01 Mar 2020 22:00:00 +0900</pubDate><guid>https://jonnung.dev/kubernetes/2020/03/01/create-kubernetes-cluster-using-kubeadm-on-aws-ec2/</guid><description>이 튜토리얼은 AWS EC2에 쿠버네티스 클러스터(Kubernetes Cluster)를 만들어 보는 것이다. 여기서 다루는 AWS 리소스는 AWS CLI를 사용해서 진</description></item><item><title>쿠버네티스 파드 네트워크 정리 (Kubernetes Pod Networking)</title><link>https://jonnung.dev/kubernetes/2020/02/24/kubernetes-pod-networking/</link><pubDate>Mon, 24 Feb 2020 01:00:00 +0900</pubDate><guid>https://jonnung.dev/kubernetes/2020/02/24/kubernetes-pod-networking/</guid><description>Pod 안에 도커 컨테이너 간의 네트워킹 Pod 안에 있는 모든 컨테이너들은 localhost로 서로 통신할 수 있다. 그 원리는 도커 컨테이너가 시작될 때 만들어지는 vet</description></item><item><title>도커 네트워크 요약 (Docker Networking)</title><link>https://jonnung.dev/docker/2020/02/16/docker_network/</link><pubDate>Sun, 16 Feb 2020 17:02:00 +0900</pubDate><guid>https://jonnung.dev/docker/2020/02/16/docker_network/</guid><description>도커를 설치하게 되면 생기는 일 Docker를 설치한 후 Host의 네트워크 인터페이스를 살펴보면 docker0라는 가상 인터페이스가 생긴다. docker</description></item><item><title>Github Action 빠르게 시작하기</title><link>https://jonnung.dev/devops/2020/01/31/github_action_getting_started/</link><pubDate>Fri, 31 Jan 2020 23:12:58 +0900</pubDate><guid>https://jonnung.dev/devops/2020/01/31/github_action_getting_started/</guid><description>Github Action이란? Github Action은 Github 저장소를 기반으로 소프트웨어 개발 Workflow를 자동화 할 수 있는 도구이다. 간단하게 말하자면 Github에</description></item><item><title>[독후감] 하룻밤에 읽는 Go언어 이야기</title><link>https://jonnung.dev/book/2020/01/12/one_day_golang/</link><pubDate>Sun, 12 Jan 2020 13:51:37 +0900</pubDate><guid>https://jonnung.dev/book/2020/01/12/one_day_golang/</guid><description>2016년 후반쯤 Go언어를 처음 접하고, 토이 프로젝트도 하면서 열심히 공부했던 기억이 난다. 오프라인 그룹 스터디도 만들어서 간단한 채팅 프로그램을 만들며 새</description></item><item><title>Jetbrains Upsource - 뜻밖에 고퀄리티 코드 협업 도구 (Reverse proxy와 함께 Docker로 설치하기)</title><link>https://jonnung.dev/devops/2020/01/05/jetbrains_upsource_code_review_collaboration_tool/</link><pubDate>Sun, 05 Jan 2020 16:08:42 +0900</pubDate><guid>https://jonnung.dev/devops/2020/01/05/jetbrains_upsource_code_review_collaboration_tool/</guid><description>Upsource 소개 Upsource는 Jetbrains에서 만든 코드 리뷰 도구이다. Upsource는 웹 브라우저를 통해 코드 변경사항과 커밋 메시지, 커밋한 사람,</description></item><item><title>2019년 회고</title><link>https://jonnung.dev/etc/2019/12/31/review-2019/</link><pubDate>Tue, 31 Dec 2019 01:38:05 +0900</pubDate><guid>https://jonnung.dev/etc/2019/12/31/review-2019/</guid><description>올해 정말 많은 일이 있었다. 열심히 노력해서 얻은 결실도 있었고, 그것에 대한 보상인지 내 가정에 큰 행운이 찾아오기도 했다. 당연히 좋은 일만 있던 것은 아니었지만 그</description></item><item><title>가장 보통의 파이썬 개발 환경 (Pyenv + Pipenv + Black + Flit)</title><link>https://jonnung.dev/python/2019/11/23/ordinary-python-development-environment/</link><pubDate>Sat, 23 Nov 2019 22:49:36 +0900</pubDate><guid>https://jonnung.dev/python/2019/11/23/ordinary-python-development-environment/</guid><description>개요 이 글은 파이썬 개발을 시작하면서 만나게 되는 여러 가지 선택과 궁금증에 대한 가장 보통의 선택을 할 수 있는 가이드다. 파이썬 버전을 여러 개 설치하는 방법, Vir</description></item><item><title>파이썬 코드 스타일(pep8)을 Black으로 자동 포맷팅하기</title><link>https://jonnung.dev/python/2019/11/10/python-black-uncompromising-code-formatter/</link><pubDate>Sun, 10 Nov 2019 14:35:04 +0900</pubDate><guid>https://jonnung.dev/python/2019/11/10/python-black-uncompromising-code-formatter/</guid><description>PEP8 파이썬을 배우고 있거나 사용하는 개발자라면 대부분 PEP8 에 대해 들어 봤거나 한두 번씩은 읽어 봤을 것이다. PEP8은 파이썬 코드 스타일에 대한 가이드이다. 파이썬</description></item><item><title>헤로쿠에서 크론탭처럼 작업 스케줄링 - Heroku Scheduler</title><link>https://jonnung.dev/paas/2019/10/03/heroku-scheduler/</link><pubDate>Thu, 03 Oct 2019 21:22:33 +0900</pubDate><guid>https://jonnung.dev/paas/2019/10/03/heroku-scheduler/</guid><description>보통 어떤 작업을 일정한 시간 간격으로 실행하기 위해서 Cron을 사용한다. Cron은 crontab 파일에 셸 명령어와 반복 시간을 표현하는 방식(ex. */1 * * * *)으로</description></item><item><title>RabbitMQ 클러스터 구성하기</title><link>https://jonnung.dev/rabbitmq/2019/08/08/rabbitmq-cluster/</link><pubDate>Thu, 08 Aug 2019 22:30:00 +0900</pubDate><guid>https://jonnung.dev/rabbitmq/2019/08/08/rabbitmq-cluster/</guid><description>RabbitMQ를 클러스터로 구성하는 방법은 아래 3가지가 존재한다. config file 에 클러스터 노드 목록을 정의 rabbitmqctl CLI 툴을 이용한 수동 구성 기타 AWS, K8S 기반의 노드 디스커버</description></item><item><title>Python으로 GraphQL 서버 구현 (Graphene 튜토리얼 따라하기)</title><link>https://jonnung.dev/graphql/2019/08/05/python-graphql-graphene-tutorial/</link><pubDate>Mon, 05 Aug 2019 23:00:00 +0900</pubDate><guid>https://jonnung.dev/graphql/2019/08/05/python-graphql-graphene-tutorial/</guid><description>내가 가장 좋아하고, 가장 많이 사용하는 프로그래밍 언어인 Python으로 GraphQL 서버를 구현하면서 GraphQL에 대해 자세히 공부해 보자. awesome-graphql Python 라이브러리 목록</description></item><item><title>처음 만나는 GraphQL</title><link>https://jonnung.dev/graphql/2019/07/23/graphql-getting-started/</link><pubDate>Tue, 23 Jul 2019 10:00:00 +0900</pubDate><guid>https://jonnung.dev/graphql/2019/07/23/graphql-getting-started/</guid><description>조만간 회사에서 새로운 프로젝트를 시작하게 될 예정이라 얼마 전부터 설계에 대해 여러 고민을 하고 있었다. 가장 신경 쓰는 부분은 증가하는 동시 접속 사용자에게 점점 더</description></item><item><title>AWS Lambda, API Gateway, Cloudwatch로 서버리스(serverless) API 구축 팁(1/3)</title><link>https://jonnung.dev/serverless/2019/07/11/lambda-apigateway-cloudwatch-tip-part1/</link><pubDate>Thu, 11 Jul 2019 23:11:00 +0900</pubDate><guid>https://jonnung.dev/serverless/2019/07/11/lambda-apigateway-cloudwatch-tip-part1/</guid><description>앞으로 3개의 포스트에 걸쳐서 AWS Lambda, API Gateway, Cloudwatch로 API 서비스를 구성할 때 도움이 될만한 내용을 정리할 것이다. 이 서비스들의 기본 개념과 사용법은 AWS 공</description></item><item><title>Python3, pathlib 모듈에 대해서</title><link>https://jonnung.dev/posts/2019-06-26-python-builtin-pathlib/</link><pubDate>Wed, 26 Jun 2019 10:30:00 +0900</pubDate><guid>https://jonnung.dev/posts/2019-06-26-python-builtin-pathlib/</guid><description>pathlib 모듈은 파일 시스템을 객체 기반으로 다루기 위해 PEP428에서 시작 되었고, Python3.4에서 공식 빌트인 모듈로 추가 되었다. 파일 시스템을 객체 기반</description></item><item><title>챗봇 구축을 위한 Serverless 서비스, AWS Lex 개념과 구성 요소</title><link>https://jonnung.dev/posts/2019-04-14-serverless-aws-lex-basic/</link><pubDate>Sun, 14 Apr 2019 17:18:08 +0900</pubDate><guid>https://jonnung.dev/posts/2019-04-14-serverless-aws-lex-basic/</guid><description>개인적인 학습 배경 이야기 서버리스(Serverless) 는 일반적인 웹서버나 WAS(Web Application Server) 또는 Database 같은 백엔드를 구성할 때 직접 물리적인 서버 구축부터 설치, 운영까</description></item><item><title>젠킨스(Jenkins)에서 파이썬 가상환경(venv) 세팅 가이드 (feat. pyenv)</title><link>https://jonnung.dev/python/2019/04/04/jenkins-pyenv-python-job/</link><pubDate>Thu, 04 Apr 2019 21:24:30 +0900</pubDate><guid>https://jonnung.dev/python/2019/04/04/jenkins-pyenv-python-job/</guid><description>젠킨스(Jenkins)에서 파이썬 스크립트를 실행할 때 아래와 같이 명령어를 실행하는 것이 보통이다. $ python run_script.py 이 때 실행되는 파이썬 환경은 해당 젠킨스 서버에 설</description></item><item><title>RabbitMQ 동작 이해하기</title><link>https://jonnung.dev/rabbitmq/2019/02/06/about-amqp-implementtation-of-rabbitmq/</link><pubDate>Wed, 06 Feb 2019 17:17:00 +0900</pubDate><guid>https://jonnung.dev/rabbitmq/2019/02/06/about-amqp-implementtation-of-rabbitmq/</guid><description>RabbitMQ 동작 이해하기 비동기 작업 큐(예: Celery)를 사용하려면 중간 단계에 Broker 라고 부르는 메시지 큐가 항상 등장한다. 메시지 큐에는 RabbitMQ, ActiveMQ, ZeroMQ, Kafaka 등이 대표적이다.</description></item><item><title>Ubuntu 에서 RabbitMQ 설치하기</title><link>https://jonnung.dev/rabbitmq/2019/01/30/rabbitmq-installation-on-ubuntu/</link><pubDate>Wed, 30 Jan 2019 11:50:00 +0900</pubDate><guid>https://jonnung.dev/rabbitmq/2019/01/30/rabbitmq-installation-on-ubuntu/</guid><description>RabbitMQ 서버를 설치하는 가이드 이며, 공식 사이트를 바탕으로 Ubutu 16.04 환경에서 설치한다. Signing key 신뢰할 수 있는 최신 RabbitMQ 패키지를 설치하기 위해 repository에 signing ke</description></item><item><title>Django에서 pytest로 테스트하기 위한 기본기</title><link>https://jonnung.dev/django/2018/12/30/pytest-django/</link><pubDate>Sat, 22 Dec 2018 11:37:00 +0900</pubDate><guid>https://jonnung.dev/django/2018/12/30/pytest-django/</guid><description>pytest-django 는 Django 프로젝트에서 pytest를 사용하기 위한 플러그인이다. pytest 와 pytest-django 는 Standard Django Test suite 와 Nose Test suite 호환 된다. 단, 테스트 실행은 Django 의 manage.py test 를 사용하지 않고, pytest 명령어</description></item><item><title>분산 비동기 작업 처리를 위한 Celery 첫걸음</title><link>https://jonnung.dev/python/2018/12/22/celery-distributed-task-queue/</link><pubDate>Sat, 22 Dec 2018 11:37:00 +0900</pubDate><guid>https://jonnung.dev/python/2018/12/22/celery-distributed-task-queue/</guid><description>뻔한 Celery 소개 Celery 는 분산 메시지 전달을 기반으로 동작하는 비동기 작업 큐(Asynchronous Task/Job Queue) 이다. 비동기 작업과 분산 메시지 전달은 어떤 관계가 있을까?</description></item><item><title>자바스크립트 테스트 프레임워크 간단 비교</title><link>https://jonnung.dev/javascript/2018/11/15/tdd-javascript-testing-framework/</link><pubDate>Thu, 15 Nov 2018 11:39:54 +0900</pubDate><guid>https://jonnung.dev/javascript/2018/11/15/tdd-javascript-testing-framework/</guid><description>테스트 프레임워크 선택 Jest Delightful JavaScript Testing 페이스북에서 만들었다. (Jasmine 기반) 고통 없는(Painless), 즐거운(Delightful) 자바스크립트 테스트 고통</description></item><item><title>Python3 Formatted String Literals (aka f-string)</title><link>https://jonnung.dev/python/2018/10/02/python3-formatted-string-literals/</link><pubDate>Tue, 02 Oct 2018 11:39:54 +0900</pubDate><guid>https://jonnung.dev/python/2018/10/02/python3-formatted-string-literals/</guid><description>PEP 498 &amp;ndash; Literal String Interpolation | Python.org in Python 3.6 &amp;lsquo;f&amp;rsquo; 또는 &amp;lsquo;F&amp;rsquo; 를 앞에 붙인 문자열 리터럴 bar = &amp;#39;World&amp;#39; f&amp;#39;Hello {bar}&amp;#39; # &amp;#39;Hello World&amp;#39; Formatted String Literals 또는 f-sting 이라고 부른다 중괄호 {}로 감싸진 필드 안에 변수가 치환되며, 일반적</description></item><item><title>젠킨스 Master/Slave 분산 빌드 환경 구축하기</title><link>https://jonnung.dev/devops/2018/08/15/jenkins-distributed-builds/</link><pubDate>Wed, 15 Aug 2018 14:49:03 +0900</pubDate><guid>https://jonnung.dev/devops/2018/08/15/jenkins-distributed-builds/</guid><description>1. Master + (Slave) Agent Jenkins 는 보통 모든 작업을 수행할 수 있는 단일 Master로 구성한다. 작업 부하를 분산하기 위해 Master + (Slave) Agent 구성도 가능하다. Master 는 프로젝트(작업)을 등록</description></item><item><title>앵귤러 두걸음(Angular Two Steps)</title><link>https://jonnung.dev/angular/2018/07/06/angular-two-steps/</link><pubDate>Fri, 06 Jul 2018 19:52:03 +0900</pubDate><guid>https://jonnung.dev/angular/2018/07/06/angular-two-steps/</guid><description>앵귤러 첫걸음 두걸음 이 글은 &amp;lsquo;앵귤러 첫걸음(저자: 조우진)&amp;rsquo; 책을 읽고, 초반 부분만 정리한 내용입니다. 개인적으로 앵귤러로 개발</description></item><item><title>Elasticsearch 검색( search) API 사용법과 Query DSL 요약 정리</title><link>https://jonnung.dev/elasticsearch/2018/05/08/elasticsearch-search-api-query-dsl-summary/</link><pubDate>Tue, 08 May 2018 21:36:00 +0900</pubDate><guid>https://jonnung.dev/elasticsearch/2018/05/08/elasticsearch-search-api-query-dsl-summary/</guid><description>사전 지식 Elasticsearch는 검색을 위한 REST API를 제공한다. 검색은 인덱스(Index) 또는 타입(Type) 단위로 수행할 수 있다. 검색 결과</description></item><item><title>Fluentd란 무엇인가? 구조와 기능 살펴보기</title><link>https://jonnung.dev/system/2018/04/06/fluentd-log-collector-part1/</link><pubDate>Fri, 06 Apr 2018 14:00:00 +0900</pubDate><guid>https://jonnung.dev/system/2018/04/06/fluentd-log-collector-part1/</guid><description>서버로 들어오는 요청이나 DB에서 실행되는 SQL, 각종 배치 스크립트가 실행되면서 남기는 로그들을 기본적인 파일 형태로만 남기고, 주기적으로 로테이팅 되기만 하고 버</description></item><item><title>Guide to better Git - 좋은 커밋 메시지 작성하기</title><link>https://jonnung.dev/git/2018/01/02/guide-to-better-git-commit-message/</link><pubDate>Tue, 02 Jan 2018 03:14:17 +0900</pubDate><guid>https://jonnung.dev/git/2018/01/02/guide-to-better-git-commit-message/</guid><description>Guide to better Git Commit Message 좋은 커밋 메시지를 작성해야 하는 이유? 커밋 로그 가독성 동료에 대한 배려 협업 코드 리뷰 오류 출처 찾기 커밋 로그 가독성 간결하고 일관성 있는 커밋 메시지</description></item><item><title>2017년 회고</title><link>https://jonnung.dev/etc/2017/12/31/review-2017/</link><pubDate>Sun, 31 Dec 2017 10:00:17 +0900</pubDate><guid>https://jonnung.dev/etc/2017/12/31/review-2017/</guid><description>2017년이 하루 남은 오후, 나도 처음으로 회고라는걸 적어보겠다고 카페에 와서 노트북을 폈다. 일본, 대만 여행 후쿠오카는 2015년 12월 마지막 주에 다녀왔</description></item><item><title>[네트워킹 기초 공부] IP Address</title><link>https://jonnung.dev/network/2017/11/15/network-study-ip-address/</link><pubDate>Thu, 16 Nov 2017 06:00:17 +0900</pubDate><guid>https://jonnung.dev/network/2017/11/15/network-study-ip-address/</guid><description>1. 라우터에서의 IP 주소 라우터에는 이더넷 인터페이스와 시리얼 인터페이스를 갖고 있고, 각각 IP 주소를 할당한다. 이더넷 인터페이스: 내부 네트워크에 연결되는 포</description></item><item><title>[네트워킹 기초 공부] 네트워크 장비들 - 허브(Hub), 브릿지(Bridge), 스위치(Switch), 라우터(Router)</title><link>https://jonnung.dev/network/2017/11/15/network-study-networking-equipments/</link><pubDate>Wed, 15 Nov 2017 06:00:17 +0900</pubDate><guid>https://jonnung.dev/network/2017/11/15/network-study-networking-equipments/</guid><description>허브 (Hub) 여러개의 포트를 갖고 있으며, 들어온 데이터를 그대로 재전송 하는 단순한 역할 UTP 케이블의 경우 최대 전송거리가 약 100미터, 멀리 떨어진 장비간의 통신을 전</description></item><item><title>PHP에서 세션(session)에 대한 주의할 점과 성능 개선 방법</title><link>https://jonnung.dev/php/2016/12/17/php-session-start-inefficient/</link><pubDate>Sat, 17 Dec 2016 11:00:00 +0000</pubDate><guid>https://jonnung.dev/php/2016/12/17/php-session-start-inefficient/</guid><description>최근에 잘 모르고 있었던 레거시 코드 부분에서 심각한 성능 저하가 있는 것을 발견했다. Request 마다 사용자 인증을 확인하는 함수가 호출 되는데 20 라인도 안되는 그 함수에서 전</description></item><item><title>Jenkins 프로젝트(jobs) 설정이 사라지는 오류 및 일단위 백업하기</title><link>https://jonnung.dev/jenkins/2016/10/28/jenkins-jobs-backup/</link><pubDate>Fri, 28 Oct 2016 11:00:00 +0000</pubDate><guid>https://jonnung.dev/jenkins/2016/10/28/jenkins-jobs-backup/</guid><description>Jenkins 에서 실행되는 프로젝트(job)들은 ${JENKINS_HOME}/jobs 경로에 프로젝트 이름마다 디렉토리가 존재하며, 안에는 config.xml 과 빌드 히스토리 관련 파일들이 있다. 만약 Jenkins를</description></item><item><title>Hive UDF - ngrams</title><link>https://jonnung.dev/hive/2016/10/27/hive-udf-ngrams/</link><pubDate>Thu, 27 Oct 2016 11:00:00 +0000</pubDate><guid>https://jonnung.dev/hive/2016/10/27/hive-udf-ngrams/</guid><description>N-gram 이란? 전체 문자열을 N개의 기준 단위만큼 절단해서 사용하는 방법 N개는 문자 단위가 될 수도 있고, 단어 단위가 될 수도 있다. 만들어진 N-gram 은 나오는 빈도를 분석하거</description></item><item><title>DEVIEW2016 첫째날(DAY 1) 참석 후기 - Part1</title><link>https://jonnung.dev/review/2016/10/25/deview2016-day1-review-part1/</link><pubDate>Tue, 25 Oct 2016 02:14:04 +0000</pubDate><guid>https://jonnung.dev/review/2016/10/25/deview2016-day1-review-part1/</guid><description>처음으로 개발자 컨퍼런스 후기를 남겨볼까 한다. (후기라기 보다 일기라고 해야할까) 후기를 써봐야겠다는 생각을 하게된 이유를 들자면 최근 4년동안은 몇몇 개발자</description></item><item><title>DEVIEW2016 첫째날(DAY 1) 참석 후기 - Part2</title><link>https://jonnung.dev/review/2016/10/25/deview2016-day1-review-part2/</link><pubDate>Tue, 25 Oct 2016 00:46:00 +0000</pubDate><guid>https://jonnung.dev/review/2016/10/25/deview2016-day1-review-part2/</guid><description>첫번째 세션 &amp;ldquo;Web payments API의 미래와 현재&amp;rdquo; 이 세션은 작년에 파이썬 스터디 모임에서 하면서 알게된 친구가 발표를 한다는 사실을 행사장 와서 알게 되었는데 엄</description></item><item><title>Golang - nil 비교하기</title><link>https://jonnung.dev/golang/2016/08/07/go-compare-nil/</link><pubDate>Sun, 07 Aug 2016 23:34:04 +0000</pubDate><guid>https://jonnung.dev/golang/2016/08/07/go-compare-nil/</guid><description>아래 코드를 실행하면 checkEggOneSet() 함수에서 파라미터 p 와 nil 을 비교할 때 에러가 발생한다. compare_pointer_to_nil_test.go|13| cannot convert nil to type Person package main import &amp;#34;fmt&amp;#34; type Age int type Person struct { age Age gender string } func checkEggOneSet(p Person) bool { if p != nil &amp;amp;&amp;amp; p.age &amp;gt;= 30</description></item><item><title>Golang - go install 과 go build 의 차이</title><link>https://jonnung.dev/golang/2016/08/04/go_install_and_go_build/</link><pubDate>Thu, 04 Aug 2016 23:01:26 +0000</pubDate><guid>https://jonnung.dev/golang/2016/08/04/go_install_and_go_build/</guid><description>go install main.go 은 Compile 되어 (OS 에 맞는) 실행 파일이 $GOBIN ($GOPATH/bin) 위치에 생성된다. 라이브러리 파일(non-main)일 경우 $GOPATH/pkg 디렉토리에 파일명.a 형태로 Complie 된 결과가 생성되며</description></item><item><title>Redux 공식 사이트에서 학습한 내용 정리</title><link>https://jonnung.dev/react/2016/07/11/react-redux/</link><pubDate>Mon, 11 Jul 2016 23:01:26 +0000</pubDate><guid>https://jonnung.dev/react/2016/07/11/react-redux/</guid><description>액션 : 무엇이 일어날지&amp;hellip; 애플리케이션에서 스토어로 보내는 데이터 묶음. 액션은 반드시 어떤 형태의 액션이 실행될지 나타내는 type 속성을 가져야 한다</description></item><item><title>React 건드리기 1일차</title><link>https://jonnung.dev/react/2016/04/14/react-touch-1/</link><pubDate>Thu, 14 Apr 2016 01:49:50 +0000</pubDate><guid>https://jonnung.dev/react/2016/04/14/react-touch-1/</guid><description>React, 일단 빠르게 이해하기 오직 View 만을 담당하는 javascript 라이브러리 (찔끔찔끔 조사할때마다 지겹게 봤던 내용) View를 컴포넌트 단위로 구성하고, 이리저리 섞을 수도 있</description></item><item><title>Vagrant 실행시 공유 폴더가 마운트 되지 않는 오류</title><link>https://jonnung.dev/vagrant/2016/02/19/vagrant_up_fail_to_mount_guest_directory/</link><pubDate>Fri, 19 Feb 2016 11:12:52 +0000</pubDate><guid>https://jonnung.dev/vagrant/2016/02/19/vagrant_up_fail_to_mount_guest_directory/</guid><description>어제까지 잘 되던 vagrant up 에서 공유 폴더를 마운트하지 못하는 오류가 발생 했다. 검색을 해보니까 동일한 문제를 겪고 있는 사람들이 꽤 많았는데 Virtualbox 문제인 것 같기도 하고..</description></item><item><title>통합 개발환경 구축을 위한 Vagrant와 프로비저닝 (1)</title><link>https://jonnung.dev/vagrant/2016/02/17/vagrant_provisioning_1/</link><pubDate>Wed, 17 Feb 2016 02:05:09 +0000</pubDate><guid>https://jonnung.dev/vagrant/2016/02/17/vagrant_provisioning_1/</guid><description>Vagrant 를 이용해 개발자간의 로컬 개발환경 차이를 극복하는 통합 개발환경을 만드는 것이 목표이다. 이런 고민은 Windows와 Mac 환경에서의 APM(Apache, PHP, MySQL) 세팅에서 비롯 되었</description></item><item><title>Vagrant 에 ssh로 외부에서 접속하기</title><link>https://jonnung.dev/vagrant/2016/02/16/vagrant_external_ssh/</link><pubDate>Tue, 16 Feb 2016 01:55:32 +0000</pubDate><guid>https://jonnung.dev/vagrant/2016/02/16/vagrant_external_ssh/</guid><description>Vagrant 로 실행한 VM 서버에 ssh key(pub)를 등록하더라도 ssh(vagrant ssh 아님)나 ansible로 접근할 수 없다. 외부 머신에서 접속하기 위해서는 vagrant share 를 통해 발급 받은 {</description></item><item><title>파이썬 데코레이터(Python Decorator) 를 이해하고 잘 써보기</title><link>https://jonnung.dev/python/2015/08/17/python-decorator/</link><pubDate>Mon, 17 Aug 2015 20:57:58 +0000</pubDate><guid>https://jonnung.dev/python/2015/08/17/python-decorator/</guid><description>파이썬 코드를 보다보면 간혹 정의된 함수 위에 @가 붙은 짧은 문장, 의미상으로는 함수명을 같기도한 것들이 있는 것을 본적이 많을 것이다. 어떻게 보면 문서화를 위한 D</description></item><item><title>PHP 로 HTTP raw post data를 다루는 방법</title><link>https://jonnung.dev/php/2015/08/06/php-use-http-raw-post-data/</link><pubDate>Thu, 06 Aug 2015 23:16:07 +0000</pubDate><guid>https://jonnung.dev/php/2015/08/06/php-use-http-raw-post-data/</guid><description>HTTP request는 header 와 body로 나눌 수 있다. body 에는 데이터가 있을 수도 있고, 없을 수도 있다. POST 요청도 body에 담겨서 오게 되는데 HTML form 으로부터 전달되는</description></item></channel></rss>