https://news.ycombinator.com 을 보고 읽을만한거를 정리해봤습니다.
How NAT Traversal Works
https://news.ycombinator.com/item?id=24241105, https://tailscale.com/blog/how-nat-traversal-works/
NAT traversal이 어떻게 되는지를 다룬 글입니다. P2P 통신을 하게되면 NAT Traversal을 한번씩 꼭 다루게 됩니다. 일반 가정집에서는 대부분 공유기를 하나씩 사용하고 있습니다. 공유기 아래에 있는 컴퓨터는 대부분 사설 IP를 가집니다. 사설 IP를 가진 컴퓨터가 다른 집에 있는 사설 IP를 가진 컴퓨터와 통신하려면 어떤 방법을 이용해야 할까요? 원래라면 공유기 아래에 있는 PC에는 연결이 불가능합니다. 공인 IP를 가진 공유기까진 접근이 되지만, 그 아래에는 접근이 안되는거죠. 이런 상황에서 각 PC끼리 연결을 할 수 있게 해주는것이 NAT Traversal입니다. 홀펀칭 (TCP 홀펀칭, UDP 홀펀칭등) 이라고도 불립니다. 네트워크 프로그래밍을 접하게 될것같으면 홀펀칭에 대해 한번씩 알아가면 좋을것 같습니다.
Python Hash Tables: understanding dictionaries
https://news.ycombinator.com/item?id=24232752, http://thepythoncorner.com/dev/hash-tables-understanding-dictionaries/
Python에서 dict의 내부는 어떻게 구성되어 있는지를 다룬 글입니다. 아마.. 이 글을 읽는 사람들은 Hash Table이 무엇인지와 어떻게 이루어저있는지 다들 알 것이지만… 잘 모르겠거나 dict을 쓰긴 쓰는데 어떻게 작동하는지 모른다면 읽어보면 좋을것 같습니다.
Book Exploring Async Basics
https://news.ycombinator.com/item?id=28274170, https://cfsamson.github.io/book-exploring-async-basics/
비동기를 사용 할 때 내부에서 어떤 일이 발생하는지를 잘 설명한 글입니다. Rust를 이용해서 비동기를 풀어냈지만, 이벤트루프나 epoll과 같은 기본 개념은 어디서나 비슷하기 때문에 비동기 처리가 조금 낯선 사람들이라면 꼭 읽어보면 좋겠습니다.
Samsung kills the cameras on the Galaxy Z Fold 3 if you unlock the bootloader
https://news.ycombinator.com/item?id=28287170, https://www.xda-developers.com/samsung-galaxy-z-fold-3-unlock-bootloader-broken-camera/
겔럭시 Z폴드 3의 부트로더를 언락하면 카메라를 사용할 수 없도록 한다는 글입니다. 댓글에서는 크게 두가지 내용이 나오는데, 하나는 “하드웨어를 구매한 시점에서 기기를 사용하는 권한은 모두 소비자에게 있는데, 이것을 삼성이 어겼다”는것과 “요즈음의 카메라는 단순히 렌즈뿐 아니라 처리하는 알고리즘과 같은 부가적인것도 들어가며, 이것들은 따로 라이센싱이 필요하다. 부트로더 언락시 카메라 사용을 금지하는것도 이러한 상황의 연장선일것이다” 라는 내용이네요. 둘 다 맞는 내용 같지만 어쨋든 저는 전자의 입장이 더 중요하다고 생각합니다. 다만에, 정상 부트로더로 돌리면 다시 카메라가 사용 가능해진다는 점에서 소프트웨어적인 방법으로 카메라를 비활성화 한다는것이 확인되었습니다. 시간이 걸리겠지만, 부트로더를 언락했을때도 카메라가 나오도록 하는 방법을 찾아내지 않을까 생각이 듭니다.
How Discord Stores Billions of Messages (2017)
https://news.ycombinator.com/item?id=28292369, https://blog.discord.com/how-discord-stores-billions-of-messages-7fa6ec7ee4c7
2017년 글인데, 디스코드에서 어떻게 대용량의 메세지를 저장하고 처리하는지를 적은 글입니다. 저한테는 생소 Cassandra 라는 DB를 사용했네요. 해당 DB는 KKV에 특회되어 있으며, 지정된 Primary Key에 따라서 고르게 파티셔닝을 지원한다고 합니다. 여러 노드를 추가하면 알아서 각 노드에 데이터를 분산해주고 성능향상을 일정하게 해 준다네요. 대신 성능을 위해 ACID를 조금 포기했다고 합니다. 글에서 디스코드는 어떻게 ACID 문제를 회피했는지도 다루고 있어서 읽어보기 좋은것 같습니다.
Twitter starts to require login to view tweets
https://news.ycombinator.com/item?id=28289263, https://www.reddit.com/r/DataHoarder/comments/pa6dra/twitter_starts_to_require_login_to_view_tweets/
트위터에서 로그인을 해야만 트윗을 볼 수 있게끔 바꿧다는 글입니다. 트윗을 보려면 회원가입을 하고 전화번호를 입력해야는등 개인정보를 트위터에 받쳐야 한다는 점에서 비난이 많네요.
K/V Benchmark: PostgreSQL vs. Redis vs. Memcached
https://news.ycombinator.com/item?id=28306472, https://www.cybertec-postgresql.com/en/postgresql-vs-redis-vs-memcached-performance/
Key-Value 용으로 PostgreSQL, Redis, Memcached의 성능을 비교해 본 글입니다. 일단 PostgreSQL은 KV용으로 만들어진게 아니다 보니까 느릴거라고 생각은 했었습니다. 그래서 Redis와 Memcached중 어느게 더 빠를까가 궁금했는데요, 놀랍게도 읽기 작업시에 PostgreSQL이 압승하였습니다. 쓰기 작업시에는 Memcached > Redis >>> PostgreSQL 이었는데 읽기에선 반대로 PostgreSQL >>> Redis > Memcachde 순서로 빠르네요. 실험이 제한적인 상황에서 이루어졌겠지만, 메모리가 충분하고 쓰기에 비해 읽기가 매우 자주 발생한다면 Memcached나 Redis말고 일반 PostgreSQL같은 일반 상용 DB를 써보는것도 좋을것 같습니다. 제가 보기에는 아무래도 인덱스의 역할이 매우 크지 않았나 싶네요.
Razer bug lets you become a Windows 10 admin by plugging in a mouse
https://news.ycombinator.com/item?id=28273283, https://www.bleepingcomputer.com/news/security/razer-bug-lets-you-become-a-windows-10-admin-by-plugging-in-a-mouse/
윈10 Razer 마우스 드라이버에서 권한 상승 버그가 발견되었습니다. 이 버그는 마우스 드라이버 설치 프로그램내에서 디렉토리를 지정할때 파워쉘을 열면, 파워쉘이 시스템 권한을 가지게 되는 버그입니다. 마우스를 꽂으면 윈도우 업데이터가 자동으로 Razer 마우스 드라이버를 다운로드 받고 설치를 시작합니다. 이 버그를 제대로 사용하려면 물리적으로 PC에 손을 댈 수 있어야합니다. Razer 마우스를 컴퓨터에 꽂아야 하고, 드라이버 설치 프로그램이 나오는것 까지 봐야지 사용할 수 있기 때문입니다.
아래 글에서 다시한번 다루겠지만, 마우스에 여러 기능이 들어가면서 드라이버 설치 프로그램 마저 복잡해지는것 같습니다. 복잡해지면서 보이지 않는 버그들과 권한요청 문제가 많아지는것 같습니다.
My mouse driver is asking for a firewall exemption (2019)
https://news.ycombinator.com/item?id=28274305, https://twitter.com/Foone/status/1146135405793669121
위의 Razer 마우스 드라이버 버그가 알려지며 옛날에 있었던 글이 또 올라왔습니다. 마우스 드라이버를 설치하는데 드라이버가 “포트 Open을 요청”하는 상황을 다룬 트위터 글입니다. 드라이버 설치 프로그램이 몇백메가를 하지만, 실제로는 드라이버가 아니고 드라이버를 다운받는 껍데기이며.. 필요없어 보이는 포트오픈까지 시도하는 상황에 비판하는 글입니다. 해당 트위터에서는 “이 설치 프로그램은 껍데이길 뿐이어서 몇년후 서버가 사라지면 실제 드라이버를 설치하지도 못한다”고 적었습니다. 실제로 해당 프로그램은 서버에 다시한번 드라이버를 HTTP로 요청하여 (…) 설치하는 과정을 보였습니다.
보면서 [소프트웨어 환멸감] 글이 떠올랐습니다. 쓸데없이 용량이 크고 느리기만 한 프로그램이 우리 주변에 알게 모르게 엄청 많습니다. 비단 이 글의 마우스 드라이버 뿐 아니라 다른것들도요. 프로그램이 쓸데없이 너무 커지기만 하는것이 안타깝습니다.
TSMC hikes chip prices up to 20% amid supply shortage
https://news.ycombinator.com/item?id=28313360, https://asia.nikkei.com/Business/Tech/Semiconductors/TSMC-hikes-chip-prices-up-to-20-amid-supply-shortage
TSMC가 칩 가격을 최대 20%씩 올렸다는 기사입니다. 반도체 부족이 지속되는 가운데 칩 가격까지 올라서 실제로 칩을 구할때 발생하는 비용이 꽤 오를것 같습니다. 해당 HN 쓰레드를 보면 공급부족으로 애초에 가격이 오른데다가 TSMC에서 출하가격마저 올라서 칩 가격이 엄청나게 상승할 것 같다는 말이 많습니다. 올해말에 컴퓨터를 새로 맞출 계획인데 CPU하고 그래픽카드등의 가격이 얼마나 올라갈지 걱정이네요ㅠ
Silent changes to Western Digital’s budget SSD may lower speeds by up to 50%
https://news.ycombinator.com/item?id=28314072, https://arstechnica.com/gadgets/2021/08/silent-changes-to-western-digitals-budget-ssd-may-lower-speeds-by-up-to-50/
WD의 SSD에서 내부적으로 NAND 플레시를 다른것으로 바꿧다고 합니다. 그로 인해서 SSD 속도가 최대 50%씩 까지도 떨어질수도 있다네요. WD도 NAND플래시가 바꼈다는것을 인정했고 SN550(http://prod.danawa.com/info/?pcode=10120452) 의 NAND 플래시가 바꼈다고 하니까 구매에 참고하시면 좋을것 같습니다.
Why are hyperlinks blue?
https://news.ycombinator.com/item?id=28315934, https://blog.mozilla.org/en/internet-culture/deep-dives/why-are-hyperlinks-blue/
하이퍼링크는 언제부터 파란색이 됐는가… 역사를 찾아봤다는 글입니다. 그냥 웹 상식으로 알면 좋을것 같습니다. 요약하자면 1993년부터였네요.
답글 남기기