티스토리 뷰
반응형
1. 유용한 개발 관련 아티클 및 영상 #25
Kotlin 1.9.2에 도입된 Enum entries
- values의 경우
- 매번 새로운 배열이 생성됨
- 배열이 반환되는데, 일반적으로 리스트를 사용하기 마련임
- 가변이므로, 얘기치 못한 버그가 발생할 수 있음
- entries의 경우
- 상수로 값을 정의해두어 매번 새로운 배열을 복사하여 생성하지 않음
- 확장함수를 통해 배열이 아닌 리스트를 반환함
- 불변임
Enum.values() // 사용 X
Enum.entries // 사용 O
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
반응형
'Tech News' 카테고리의 다른 글
[TechNews] 유용한 개발 관련 아티클 및 영상 #27 (0) | 2024.07.05 |
---|---|
[TechNews] 유용한 개발 관련 아티클 및 영상 #26 (0) | 2024.06.28 |
[TechNews] 유용한 개발 관련 아티클 및 영상 #24 (2) | 2024.06.14 |
[TechNews] 유용한 개발 관련 아티클 및 영상 #23 (2) | 2024.06.07 |
[TechNews] 유용한 개발 관련 아티클 및 영상 #22 (8) | 2024.05.31 |
댓글