티스토리 뷰

Tech News

[TechNews] 유용한 개발 관련 아티클 및 영상 #25

망나니개발자 2024. 6. 21. 10:00
반응형



1. 유용한 개발 관련 아티클 및 영상 #25


Kotlin 1.9.2에 도입된 Enum entries

  • values의 경우
    • 매번 새로운 배열이 생성됨
    • 배열이 반환되는데, 일반적으로 리스트를 사용하기 마련임
    • 가변이므로, 얘기치 못한 버그가 발생할 수 있음
  • entries의 경우
    • 상수로 값을 정의해두어 매번 새로운 배열을 복사하여 생성하지 않음
    • 확장함수를 통해 배열이 아닌 리스트를 반환함
    • 불변임

 

Enum.values() // 사용 X
Enum.entries // 사용 O

 

출처: https://medium.com/@michalankiersztajn/enum-values-is-recommended-to-be-replaced-by-enum-entries-7b73e1ed7265

 

 

 

NodeJS는 웹서버가 아니라 Runtime이라는 의미

  • 크롬의 성능이 뛰어난 이유는 V8 엔진 때문인데, 이는 크롬에 장착된 브라우저를 위한 자바스크림트 엔진임
  • NodeJS의 정의를 보면 크롬 V8 엔진을 기반으로 한 자바스크립트 런타임이라고 나옴
  • 즉, 브라우저용 V8 엔진을 크롬 없이 웹서버에 사용될 수 있도록 만든 것이 NodeJS임
  • 따라서 V8 엔진을 위한 실행 환경이 NodeJS이고, 프로그래밍 언어는 JS라고 볼 수 잇음

 

출처: https://www.youtube.com/watch?app=desktop&v=u-hZI2tFGdU&

 

 

 

개인에게 부여된 임의의 번호(DB 인공키 혹은 unique key 등)은 개인정보인가?

  • 개인정보보호위원회에 따르면, 개인에게 부여된 임의의 번호(DB 인공키 혹은 unique key 등)가 개인정보라고 판단했음
  • 개인정보보호법는 '해당 정보만으론 특정 개인을 알아볼 수 없더라도 다른 정보와 쉽게 결합해 알아볼 수 있는 정보'를 개인정보로 규정하며, 개인정보 여부를 따지려면 결합 가능성과 유출 용이성 등을 살펴봐야 함
  • 카카오 자체의 개인 식별 번호와 무관한 또 다른 임의 식별번호까지 한 번 더 부여해서 카카오 내부 식별번호까지도 보호하는 장치를 만든 뒤에 오픈 채팅을 만들었는데, 이것이 개인정보로 분류될 수 있는가는 논란의 여지가 있어 보임

 

출처: https://www.facebook.com/1151410584/posts/10231746287537454/?mibextid=oFDknk&rdid=WlE09hdiUG1PtQjW

 

 

 

채팅 애플리케이션 시스템 디자인

  • 요구사항
    • 기능 요구사항
      • 1대1 채팅 애플리케이션을 지원하며 채팅 내역을 보관해야 함
      • 온라인/오프라인 상태가 보여져야 하며, 다중 기기를 지원해야 함
      • 100명의 소규모 그룹챗 및 푸시 발송을 지원해야 함
    • 비기능 요구사항
      • 낮은 지연으로 실시간 채팅을 할 수 있음
      • 매우 높은 정합성으로 모든 기기에서 동일한 메시지를 볼 수 있어야 함
    • 요구사항 추정치
      • DAU는 5억 명, 하루에 인당 40개의 메시지 보냄 ⇒ 20억 개의 메시지/일
      • 메시지 크기는 평균 100바이트 ⇒ 100B x 20B = 2TB/일
      • 5년을 저장 주기로함 ⇒ 2TB x 365 x 5 = 3650 ~ 3.5PB
      • 대역폭은 2TB / 100K 초 ⇒ 20Mbps, 업로드와 다운로드 모두에 필요함
  • 통신 프로토콜
    • HTTP 기반으로 처리하기 위해 폴링 방식을 사용할 수 있지만, latency가 더해짐
    • 하지만 대부분 빈 응답이므로 통신 비용만 증가시킬 수 있음
    • Web Socket을 사용하면 양방향 통신이 가능해짐
  • DB 스키마
    • 사용자 프로필과 같은 데이터에 대해서는 ACID를 지원하는 RDB가 적합할 수 있음
    • 대량의 데이터(메시지)를 위해서는 빠르기 읽고 쓰기 위해 NoSQL과 같은 key-value 저장소가 적합함

 

 

출처: https://medium.com/@ishwarya1011.hidkimath/system-design-design-a-chat-system-e0056fb093d1

 

 

 

 

Docker Image 계층을 보여주는 오픈소스

  • docker image, layer contents를 시각화하여 보여주는 도구
  • 이를 통해 도커 이미지 크기를 줄이는데 사용할 수 있음
  • 다음과 같은 기능을 기본적으로 갖고 있음
    • Layer 구성에 대해 도식화하여 보여줌
    • 각 Layer에서 생긴 변화를 보여줌
    • 이미지의 효율성에 대해 측정해줌
    • 기타 등등

 

 


출처: https://github.com/wagoodman/dive

 

 

 

 

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함