https://news.ycombinator.com 을 보고 읽을만한거를 정리해봤습니다.
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 홀펀칭등) 이라고도 불립니다. 네트워크 프로그래밍을 접하게 될것같으면 홀펀칭에 대해 한번씩 알아가면 좋을것 같습니다.
[https://news.ycombinator.com/item?id=24232752,](https://news.ycombinator.com/item?id=24232752) http://thepythoncorner.com/dev/hash-tables-understanding-dictionaries/
Python에서 dict의 내부는 어떻게 구성되어 있는지를 다룬 글입니다. 아마.. 이 글을 읽는 사람들은 Hash Table이 무엇인지와 어떻게 이루어저있는지 다들 알 것이지만... 잘 모르겠거나 dict을 쓰긴 쓰는데 어떻게 작동하는지 모른다면 읽어보면 좋을것 같습니다.
https://news.ycombinator.com/item?id=28274170, https://cfsamson.github.io/book-exploring-async-basics/
비동기를 사용 할 때 내부에서 어떤 일이 발생하는지를 잘 설명한 글입니다. Rust를 이용해서 비동기를 풀어냈지만, 이벤트루프나 epoll과 같은 기본 개념은 어디서나 비슷하기 때문에 비동기 처리가 조금 낯선 사람들이라면 꼭 읽어보면 좋겠습니다.
[https://news.ycombinator.com/item?id=28287170,](https://news.ycombinator.com/item?id=28287170) https://www.xda-developers.com/samsung-galaxy-z-fold-3-unlock-bootloader-broken-camera/
겔럭시 Z폴드 3의 부트로더를 언락하면 카메라를 사용할 수 없도록 한다는 글입니다. 댓글에서는 크게 두가지 내용이 나오는데, 하나는 "하드웨어를 구매한 시점에서 기기를 사용하는 권한은 모두 소비자에게 있는데, 이것을 삼성이 어겼다"는것과 "요즈음의 카메라는 단순히 렌즈뿐 아니라 처리하는 알고리즘과 같은 부가적인것도 들어가며, 이것들은 따로 라이센싱이 필요하다. 부트로더 언락시 카메라 사용을 금지하는것도 이러한 상황의 연장선일것이다" 라는 내용이네요. 둘 다 맞는 내용 같지만 어쨋든 저는 전자의 입장이 더 중요하다고 생각합니다. 다만에, 정상 부트로더로 돌리면 다시 카메라가 사용 가능해진다는 점에서 소프트웨어적인 방법으로 카메라를 비활성화 한다는것이 확인되었습니다. 시간이 걸리겠지만, 부트로더를 언락했을때도 카메라가 나오도록 하는 방법을 찾아내지 않을까 생각이 듭니다.
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 문제를 회피했는지도 다루고 있어서 읽어보기 좋은것 같습니다.
https://news.ycombinator.com/item?id=28289263, https://www.reddit.com/r/DataHoarder/comments/pa6dra/twitter_starts_to_require_login_to_view_tweets/
트위터에서 로그인을 해야만 트윗을 볼 수 있게끔 바꿧다는 글입니다. 트윗을 보려면 회원가입을 하고 전화번호를 입력해야는등 개인정보를 트위터에 받쳐야 한다는 점에서 비난이 많네요.