웹개발 관련
그 밖의 프로그래밍 관련
- Microservice Architecture at Medium : Medium에서 수년간 Node.js로 만든 모노리틱 서버를 운영하다가 마이크로서비스 아키텍처로 변경한 과정을 설명한 글이다. 먼저 Medium이 생각하는 마이크로서비스의 특징을 "단일 목적", "낮은 의존성", "높은 응집성"으로 정의하고 이 설계원칙에만 집중했다. 항상 무언가 바꿀 때 "왜 지금이어야 하는가?"를 물어보는데 현재 Node.js 서버가 성능 병목 지점이 되었고 개발 속도가 느려졌으므로 마이크로서비스로 바꾸기로 했다. 진행 과정은 "명확한 가치를 가지고 새로운 서비스를 만든다", "모노리틱 스토리지는 피한다", "서비스 개발과 서비스 운영은 분리한다", "일관되고 철저한 가시성", "모든 서비스를 처음부터 만들 필요는 없다", "장애는 항상 생기므로 중요하게 생각한다", "마이크로서비스 신드롬은 피한다"의 전략을 세우고 각 단계가 어떤 의미가 있고 어떻게 진행했는지 설명하고 있다.(영어)
- October 21 post-incident analysis : 10월 21일 GitHub에서 24시간 11분 동안 발생한 장애에 대해서 사후 분석을 통해 원인과 진행 과정을 정리한 글이다. US East와 US West 데이터 센터 사이에 정기작업을 하던 중 43초간 네트워크 단절이 발생했는데 이때 각 데이터센터가 RAFT 알고리즘으로 Primary 서버를 새로 뽑으면서 두 데이터센터 간 데이터가 달라지면서 네트워크 복구가 이뤄진 이후에도 장애로 이어졌다. 시간이 지나면서 두 데이터베이스 간에 데이터 격차가 벌어졌고 백업에서 전체 복구를 한 뒤에 백로그로 데이터를 맞추기로 했지만 실제로 전체 클러스터를 백업에서 다시 올리는 작업을 해본 적은 없고, 작업하면서 미국/유럽의 근무시간이 시작되면서 작업 시간은 더 늦어졌다. GitHub이 이렇게 긴 장애를 일으킨 건 처음이라서 궁금했는데 원인과 시간별 분석 내용 및 진행상태가 자세히 적혀있어서 흥미롭다.(영어)
- 자바의 새로운 도약: OpenJDK(Feat. 자바 라이센스) : 오라클에서 발표한 Java의 새 라이센스 정책으로 얘기가 많은데 최근 OpenJDK를 중심으로 달라지고 있는 상황과 OracleJDK의 라이센스관련 내용을 정리한 글인데 여러 문서를 참고해서 자세히 정리되어 있다.(한국어)
- 신규 포인트 시스템 전환기 #1 - 개발 단계, #2 - 오픈 준비 단계 : 우아한 형제들에서 레거시 포인트 시스템을 새로 개선하면서 진행한 과정을 정리한 글이다. 포인트 시스템의 구조 개선뿐 아니라 배포에 관한 기술 선택, 디비와 큐의 선택, 테스트 및 개발환경, 문서화, 성능 테스트 및 오픈 준비 등 시스템 하나를 오픈하는 전체 과정이 다 나와 있다.(한국어)
- 깃을 위한 flight rules : Git을 사용하다가 문제가 발생했을 때 해결 방법을 정리해 놓은 문서다. 커밋메시지를 잘못 쓰거나 리베이스를 잘못했을 경우 등 문제 상황에 대한 해결책이 나와 있다.(한국어)
- HashiCorp Learn : HashiCorp에서 자사의 제품을 따라 해 보면서 배울 수 있는 교육사이트를 공개했다. 현재는 Vault만 제공되고 Terraform, Consul, Nomad도 곧 제공할 예정이라고 한다.(영어)
블록체인 관련
볼만한 링크
- école 42 탐방기 : 코드스쿼드에서 SW 혁신학교인 에콜42 프랑스와 샌프란시스코를 모두 방문하고 에콜 42가 어떤 시설을 가지고 있고 어떻게 가르치고 있는지를 정리한 글이다. 나도 최근에 에콜 42에 대해 알게 되었고 같이 일하는 동료가 EPITECH 출신이라서 궁금한 게 많았는데 사진과 함께 자세히 나와 있어서 재미있게 읽었다.(한국어)
- The State of the Octoverse : GitHub에서 사용자들의 활동을 분석한 자료를 웹사이트로 만들어서 보고했다. Octoverse를 보면 GitHub 사용자들의 국가 추이, 언어별 인기도, 주요 프로젝트 등 다양한 내용이 나와 있다.(영어)
IT 업계 뉴스
프로젝트
버전 업데이트
- Ubuntu v18.10 Cosmic Cuttlefish : Linux 배포판, 릴리스 공지
- PostgreSQL 11: 관계형 데이터베이스, 릴리스 공지
- Redis v5.0.0 : 키-밸류 스토어, 릴리스 공지
- Node.js v11.0.0 (Current) : 자바스크립트 런타임, 릴리스 공지
- Node.js v10.13.0 (LTS) : 자바스크립트 런타임, 릴리스 공지
- V8 v7.0 : JavaScript 엔진, 릴리스 공지
- React v16.6.0 : 자바스크립트 UI 라이브러리, 릴리스 공지
- Angular v7.0.0 : JavaScript 프레임워크, 릴리스 공지
- Angular Material v7.0.0 amethyst ammonite : Angular의 머터리얼 컴포넌트, 릴리스 공지
- LoopBack v4 : Node.js API 프레임워크, 릴리스 공지
- Spring Boot v2.1.0 : 스프링 애플리케이션의 구축을 도와주는 도구, 릴리스 공지
- Spring Batch 4.1 GA : 스프링 배치 프레임워크, 릴리스 공지
- Spring Integration 5.1 GA : 엔터프라이즈 통합 패턴의 Spring 구현체, 릴리스 공지
- Rust v1.30 : 프로그래밍 언어, 릴리스 공지
- Linux Kernel v4.19 : 리눅스 커널, 릴리스 공지
- OpenBSD 6.4: 운영체제, 릴리스 공지
- Homebrew v1.4.0 : OS X 패키지 매니저, 릴리스 공지
- Atom v1.32 : 에디터, 릴리스 공지
- Vagrant v2.2.0 : 개발 환경 구성 도구, 릴리스 공지
- Terraform v0.12 Preview : 서버 인프라 설정 도구, 릴리스 공지, 다운로드
Outsider
2018/11/01 23:29
2018/11/01 23:29
"3 JavaScript Performance Mistakes You Should Stop Doing" 포스팅을 보니 작성자가 댓글로 엄청 두들겨 맞고 있네요; 퍼포먼스 vs 가독성 및 확장성 이야 케이스 바이 케이스라고 생각하는데.. 제목에 mistake 라고 떡하니 써둔게 마음에 들지 않는 사람들이 생각보다 많은 것 같아요.
아 댓글까지는 제가 보진 않고 있었네요. 맘에 안드는 정도까진 아닌데 mistake라고 할정도는 저도 아닌것 같긴 합니다. 항상 그냥 for문을 써야한다기 보다는 속도차이가 있다는 것을 인지하고 있다면 필요한 경우에 튜닝할 수 있는 정도로 받아들이면 되지 않을까 싶습니다.