<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>이권수</title>
  <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@797z" />
  <author>
    <name>growthminder</name>
  </author>
  <subtitle>개발과 책을 좋아하는 평범한 개발자입니다. 소소하게 배운 지식을 공유하고 싶습니다.</subtitle>
  <id>https://brunch.co.kr/@@797z</id>
  <updated>2019-01-11T12:38:54Z</updated>
  <entry>
    <title>[책 리뷰] AI 패권 전쟁 - AI 시대에 우리의 삶은 어떻게 변화할까?</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@797z/157" />
    <id>https://brunch.co.kr/@@797z/157</id>
    <updated>2025-06-30T08:20:52Z</updated>
    <published>2025-06-30T02:07:25Z</published>
    <summary type="html">AI는 이미 우리 삶 깊숙이 자리 잡았으며, 개인 맞춤형 제품과 서비스를 빠르게 만들어내고 있다. AI 기술은 이제 개발자의 업무 영역까지 침투해, 코드 작성 대신 프롬프트 설계가 주요 업무로 자리 잡는 시대가 되었다.   2025년 6월 현재, AI 없는 생활을 상상하기 어려울 정도로 AI는 우리의 일상과 사회 전반을 급속히 변화시키고 있다. 이제는 AI&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbrunch%2Fservice%2Fuser%2F797z%2Fimage%2FCsKPVBOIGy5xausnRf4hBH5CZ7M.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>어떻게 Redis는 여러 요청을 동시에 받을까? - 싱글 스레드인 Redis가 빠르게 요청을 처리하는 방법</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@797z/154" />
    <id>https://brunch.co.kr/@@797z/154</id>
    <updated>2024-06-25T16:31:35Z</updated>
    <published>2024-06-25T16:31:35Z</published>
    <summary type="html">이메일로 블로그 포스트 받아보기:&amp;nbsp;https://blog.techchallengearena.com/ Redis는 기본적으로 싱글 스레드 기반으로 동작하는 인메모리 데이터베이스이다. Redis는 내부적으로 싱글 스레드를 고수하고 있다. 보통은 싱글스레드가 느려서 멀티스레드나 멀리 프로세싱 등을 고려하기 마련인데, Redis는 싱글스레드로 동작하면서도 속도가 &lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbrunch%2Fservice%2Fuser%2F797z%2Fimage%2FKfMMhU_8ae-xWpbcZ9iV1-UO7VY.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>Python MRO란? - 다중 상속 시, 검색 순서를 결정하는 MRO</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@797z/153" />
    <id>https://brunch.co.kr/@@797z/153</id>
    <updated>2024-06-23T09:20:40Z</updated>
    <published>2024-06-23T09:20:40Z</published>
    <summary type="html">이메일로 블로그 포스트 받아보기:&amp;nbsp;https://blog.techchallengearena.com/ Python에서 MRO(Method Resolution Order)는 다중 상속 시 메서드나 속성을 어떤 순서로 검색할지를 결정하는 규칙을 의미한다. MRO는 Python의&amp;nbsp;super()&amp;nbsp;함수와 밀접한 관련이 있으며, 이는 다중 상속에서의 메서드 호출 순서를&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbrunch%2Fservice%2Fuser%2F797z%2Fimage%2FVkPazp4dcp9X_uF-jp3myAcg0Ss.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>사설 대역 사용 시, docker 주의사항 - Bridge 기본 네트워크 대역을 잘 살펴봐야 하는&amp;nbsp;&amp;nbsp;이유</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@797z/152" />
    <id>https://brunch.co.kr/@@797z/152</id>
    <updated>2024-06-20T15:57:30Z</updated>
    <published>2024-06-20T15:56:56Z</published>
    <summary type="html">이메일로 블로그 포스트 받아보기:&amp;nbsp;https://blog.techchallengearena.com/ 최근 docker를 활용해 간단하게 애플리케이션을 서버에 올렸는데, 최근에 장애가 발생한 적이 있었다. 해당 애플리케이션은 클라우드 환경과 온프레미스 환경을 연결해 주는 프락시 서비스였는데, 이상하게 갑자기 통신이 안된다는 연락을 받은 것이었다. 다른 곳은 &lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbrunch%2Fservice%2Fuser%2F797z%2Fimage%2FwBaLVHkySv4BN-c_zQDWLe9zM6M.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>CNAME 레코드는 1개만 존재한다!? - CNAME 레코드가 다른 레코드와 공존하지 못하는 이유</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@797z/151" />
    <id>https://brunch.co.kr/@@797z/151</id>
    <updated>2024-06-19T15:32:01Z</updated>
    <published>2024-06-19T15:30:20Z</published>
    <summary type="html">이메일로 블로그 포스트 받아보기:&amp;nbsp;https://blog.techchallengearena.com/ CNAME(Canonical Name) 레코드는 특정 도메인 이름이 다른 도메인 이름의 별칭으로 사용되도록 설정하는 데 사용된다. 예컨대,&amp;nbsp;example.com이라는 도메인이 실제로&amp;nbsp;&amp;nbsp;www.example.com을 가리키게 하려면, CNAME 레코드를 설정할&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbrunch%2Fservice%2Fuser%2F797z%2Fimage%2FEK_KLOPmiL32_nuUgz_x1B94nUE.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>[Istio] Auto Mutual TLS - 자동으로 설정되는 istio의 TLS!</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@797z/150" />
    <id>https://brunch.co.kr/@@797z/150</id>
    <updated>2024-06-17T19:46:27Z</updated>
    <published>2024-06-17T19:46:27Z</published>
    <summary type="html">이메일로 블로그 포스트 받아보기:&amp;nbsp;https://techchallengearena.substack.com 보통 istio를 사용하면,&amp;nbsp;envoy를 istio proxy로 사용하고, 이를 사이드카(sidecar)로 띄운다. 이때 istio proxy는 실제 애플리케이션에서 발생하는 in/out 트래픽을 모두 제어할 수 있다. 즉, 모든 통신은 istio-pr&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbrunch%2Fservice%2Fuser%2F797z%2Fimage%2F5Q3QnFpnkKNhf75YAlOmW47wu2U.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>Introduction to Load Balancing - 로드 밸런서란 무엇인가?</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@797z/149" />
    <id>https://brunch.co.kr/@@797z/149</id>
    <updated>2024-06-16T18:37:40Z</updated>
    <published>2024-06-16T18:36:48Z</published>
    <summary type="html">이메일로 블로그 포스트 받아보기:&amp;nbsp;https://techchallengearena.substack.com 로드 밸런싱은 네트워크 트래픽을 여러 서버에 분산시켜서 한 서버에 과부하가 걸리지 않도록 하는 기술이다. 이를 통해 서비스의 성능과 신뢰성을 향상할 수 있다. 로드 밸런싱은 주로 웹 서버, 데이터베이스 서버, 애플리케이션 서버 등에서 사용된다.  로드 &lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbrunch%2Fservice%2Fuser%2F797z%2Fimage%2FwyipMvbQcKq-b8_dG_UZIznx1d8.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>OCSP 프로토콜을 아시나요? - 브라우저에서 웹사이트 접속할 때 OCSP 요청을 보낸다고요?</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@797z/148" />
    <id>https://brunch.co.kr/@@797z/148</id>
    <updated>2024-06-12T17:04:52Z</updated>
    <published>2024-06-12T17:02:51Z</published>
    <summary type="html">이메일로 블로그 포스트 받아보기:&amp;nbsp;https://techchallengearena.substack.com 면접을 볼 때, 가끔 웹사이트에서 https://google.com을 입력하면 어떤 일이 발생하는지 물어보곤 한다. 이 질문이 꽤나 유용한 점은 DNS와 TCP의 원리, 그리고 HTTPS는 어떻게 작동하는지에 대한 기본적인 지식을 어느 정도 알고 있는지&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbrunch%2Fservice%2Fuser%2F797z%2Fimage%2FhNxjOhUx0DXCwXlD6CaKQldv8fs.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>What is the ACME Protocol  - Let's Encrypt는 어떻게 자동으로 인증서를 갱신할 수 있을까?</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@797z/147" />
    <id>https://brunch.co.kr/@@797z/147</id>
    <updated>2024-06-10T18:41:47Z</updated>
    <published>2024-06-10T18:21:50Z</published>
    <summary type="html">이메일로 블로그 포스트 받아보기:&amp;nbsp;https://techchallengearena.substack.com  요즘은 대부분의 애플리케이션에서 HTTPS를 사용한다. 개인 블로그를 하더라도 HTTPS를 통해서 안전한 연결을 하도록 하는 것이 보통이다. HTTPS 연결이 필요한 이유는 SSL 인증서 덕분에 클라이언트와 서버가 통신을 할 때 암호화된 상태로 통신하&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbrunch%2Fservice%2Fuser%2F797z%2Fimage%2FhyHtAHD2pATzMjFT5w50x6t-JZM.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>Locking Deep Dive - 1 - Multiprocessing &amp;nbsp;Semaphore의 실체를 파헤쳐보기</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@797z/146" />
    <id>https://brunch.co.kr/@@797z/146</id>
    <updated>2024-06-09T20:07:48Z</updated>
    <published>2024-06-09T20:04:21Z</published>
    <summary type="html">이메일로 블로그 포스트 받아보기:&amp;nbsp;https://techchallengearena.substack.com   애플리케이션을 개발할 때,&amp;nbsp;&amp;quot;locking&amp;quot;은 데이터의 일관성과 동시성 제어를 위해 중요한 역할을 한다. 여러 사용자가 동시에 애플리케이션을 사용할 때, 데이터가 일관되게 유지되도록 하는 것이 매우 중요하다. 이를 위해 많은 개발자들이 다양한 loc&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbrunch%2Fservice%2Fuser%2F797z%2Fimage%2FEXpyGhSXQfRA4JSV82J9ihrEGoU.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>ddtrace로 보는 Monkey Patch - 데이터독은 어떻게 Tracing을 수행할까?</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@797z/145" />
    <id>https://brunch.co.kr/@@797z/145</id>
    <updated>2024-06-07T18:51:21Z</updated>
    <published>2024-06-07T18:51:21Z</published>
    <summary type="html">데이터독은 모니터링 SaaS 강자 중 하나로 손꼽히는 솔루션이다. 그중 APM 기능을 사용하려면 &amp;nbsp;dd-trace-py 라이브러리를 사용하여 일부 세팅을 해주어야 한다. 그런데, APM 기능을 켜서 확인해 보면, 다양한 외부 솔루션/라이브러리(Cache, DB, Celery 등)에 대한 Tracing도 풍부하게 제공하는 것을 알 수 있다. 해당 라이브러리나&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbrunch%2Fservice%2Fuser%2F797z%2Fimage%2FlX5nGB7GymPQIpXQm6firDDdRgo.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>Resolve DNS faster in a pod - Pod에서 조금이나마 빠르게 DNS 쿼리 하는 방법</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@797z/144" />
    <id>https://brunch.co.kr/@@797z/144</id>
    <updated>2024-06-05T18:03:14Z</updated>
    <published>2024-06-05T18:02:37Z</published>
    <summary type="html">미디엄에서 글을 보던 중, 다음의 글을 보게 되었다. https://medium.com/@hmquan08011996/reduce-dns-resolution-time-for-10-000-pods-on-eks-7f8bddef8dc4  전체 내용을 요약하자면, 파드 안에서 도메인을 요청할 때, 끝에 . (trailing dot)을 붙이면 빠르게 쿼리가 가능하다는&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbrunch%2Fservice%2Fuser%2F797z%2Fimage%2FUKQYnsDr8v6lmKLy0hUs70RL7yk.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>Gunicorn은 어떻게 트래픽을 분산할까? - gunicorn과 uvicorn 조합이 가능한 이유</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@797z/143" />
    <id>https://brunch.co.kr/@@797z/143</id>
    <updated>2024-06-03T17:37:43Z</updated>
    <published>2024-06-03T17:37:27Z</published>
    <summary type="html">Django나 FastAPI와 같은 웹 프레임워크를 사용하면 간단하게 파이썬 API 서버를 만들 수 있다. Django나 Fastapi와 같은 웹 프레임워크는 웹 애플리케이션 개발을 쉽게 하기 위한 다양한 기능을 제공한다. 예컨대, Routing, Template Rending, Session Management, Request / Response hand&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbrunch%2Fservice%2Fuser%2F797z%2Fimage%2FXmg-3R3BMcHLPlXIcfBqzmnYfGE.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>Entrypoint에서 exec 사용하는 이유 - 당연시하고 넘어갔던 exec 명령어의 역할</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@797z/142" />
    <id>https://brunch.co.kr/@@797z/142</id>
    <updated>2024-06-02T12:56:24Z</updated>
    <published>2024-06-02T12:56:24Z</published>
    <summary type="html">애플리케이션을 개발할 때 종종 docker-compose를 통해서 로컬 개발환경을 구성하곤 한다. docker-compose를 사용하는 이유는 환경 종속을 덜 받고, 필요한 구성요소를 빠르게 올려서 테스트할 수 있기 때문이다. 이때 프로세스를 돌리기 위해서 명령어를 직접 수행할 수도 있고, 엔트리포인트(Entrypoint)를 지정해서 컨테이너를 실행할 수 &lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbrunch%2Fservice%2Fuser%2F797z%2Fimage%2FyIoPtPMwfEFbKAF-U2IdqL31lPY.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>DNS가 TCP를 사용하는 경우 - DNS는 언제나 UDP로 통신할까?</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@797z/141" />
    <id>https://brunch.co.kr/@@797z/141</id>
    <updated>2024-05-28T16:07:29Z</updated>
    <published>2024-05-28T16:07:29Z</published>
    <summary type="html">DNS(Domain Name Service)는 우리가 브라우저를 열면 가장 먼저 개입하는 서비스 중 하나이다. 컴퓨터는 영어로 된 도메인만 알고는 목적지 서버와&amp;nbsp;통신할 수가 없다. 통신하고자 하는 실제 목적지 IP가 반드시 필요하다. 그래서 도메인에 google.com이라고 주소를 입력하면, 가장 먼저 DNS Resolver가 해당 도메인과 연결된 IP를 &lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbrunch%2Fservice%2Fuser%2F797z%2Fimage%2Ff1x6NCynXKYfk2yNvB8r2omFLyo.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>[Python] Multi-Threading &amp;amp; GIL - 파이썬 Multi-Thread와 GIL에 대해 알아보기</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@797z/140" />
    <id>https://brunch.co.kr/@@797z/140</id>
    <updated>2024-03-31T16:20:39Z</updated>
    <published>2024-03-31T16:04:22Z</published>
    <summary type="html">컴퓨터 공학(Computer Science)을 공부하면, 동시성(Concurrency)과&amp;nbsp;병렬성(Parallelism)에 대해서 배운다. 동시성은 여러 작업이 순서 상관없이 혼재되어 실행될 수 있다는 의미이고, 병렬성은 여러 작업이 동시에 수행될 수 있다는 의미이다. 우리는 코드를 짤 때, 병렬성을 고려하지 않고도 동시성을 만족시킬 수 있다. 하지만 동시성&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbrunch%2Fservice%2Fuser%2F797z%2Fimage%2Fn10gnLkowxGPWUB5zVVWICA7Q8M.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>[Python] __main__ 의미 - __main__을 사용하는 방법</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@797z/132" />
    <id>https://brunch.co.kr/@@797z/132</id>
    <updated>2024-03-24T14:56:49Z</updated>
    <published>2024-03-24T12:42:11Z</published>
    <summary type="html">파이썬은 애플리케이션을 개발할 때도 자주 사용되지만, 자동화 스크립트를 작성하거나 데이터 분석 코드를 수행할 때도 자주 사용된다. 그 중 간단한 자동화 스크립트 작성하는 경우,&amp;nbsp;개발자는&amp;nbsp;main.py 파일 하나에 모든 코드를 작성한다. 코드 자체가 길지 않기 때문에,&amp;nbsp;외부에 모듈을 따로 빼서 import 하는 번거로움을 굳이 가지지 않으려고 하는 목적이다.&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbrunch%2Fservice%2Fuser%2F797z%2Fimage%2FdiYgEIVuhx_2lTWfjzunLZgVERA.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>[Python] Iterable &amp;amp; Iterator - 더 효과적인 반복문 만들기</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@797z/135" />
    <id>https://brunch.co.kr/@@797z/135</id>
    <updated>2024-03-24T10:47:05Z</updated>
    <published>2024-03-20T16:46:52Z</published>
    <summary type="html">파이썬 변수 타입 중에 반복문에서 사용할 수 있는 시퀀스 타입들이 있다. 예컨대, 리스트(list), 튜플(tuple) 등이 대표적인 시퀀스 타입들이다. 이렇게 요소를 반복할 수 있는 구조를 가진 객체를 iterable이라고 한다.&amp;nbsp;아래 예시를 보면 [1,2,3,4]라는 요소를 가진 list인 my_list가 정의되어 있다. list는 iterable 하기&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbrunch%2Fservice%2Fuser%2F797z%2Fimage%2FCQ3wcHOx0a-IzGe937Aqr3Tdk84.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>[Python] Protocol - Python에서 Protocol 사용하여 간단하게 인터페이스 만들기</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@797z/134" />
    <id>https://brunch.co.kr/@@797z/134</id>
    <updated>2024-03-24T10:46:48Z</updated>
    <published>2024-03-16T16:17:43Z</published>
    <summary type="html">파이썬은 클래스 상속을 통해서 OOP를 지원한다. 클래스를 상속하는 방법은 클래스를 정의할 때 상속받고자 하는 클래스를 추가하면 된다. 예컨대, 시험에 대한 정보를 관리하는 시스템을 개발한다고 해보자. 모든 시험에는 점수가 존재하기 때문에, Test라는 클래스를 정의하여 score를 저장하도록 한다. 그러고 나서, 시험의 종류마다 클래스를 만들 때, Tes&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbrunch%2Fservice%2Fuser%2F797z%2Fimage%2FXa-Sib05iyHHwizyXtAuzDxXGT4.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>Learn abount DynamoDB - DynamoDB 에 대한 이론과 키 디자인 연습</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@797z/133" />
    <id>https://brunch.co.kr/@@797z/133</id>
    <updated>2024-03-18T00:29:23Z</updated>
    <published>2024-03-16T13:35:48Z</published>
    <summary type="html">DynamoDB의 역사 2004년에 Amazon.com은 급속도로 확장하고 있었는데, 자사에서&amp;nbsp;사용하던 Oracle 데이터베이스의 용량 한계에 부딪혔다. 이 문제를 해결하기 위해, 다소 위험할 수도 있지만 자체적으로 데이터베이스를 만들기로 결정했다. 이 과정에서 개발된 것이 바로 Amazon DynamoDB이다. Amazon DynamoDB는 Amazon.&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbrunch%2Fservice%2Fuser%2F797z%2Fimage%2FXry6K5A2bcGc03-S5u-TABY0nlo.png" width="500" /&gt;</summary>
  </entry>
</feed>
