티스토리 뷰
반응형
1. 유용한 개발 관련 아티클 및 영상 #9
스칼라 관점에서 바라본 코틀린: Advent of Code 2023
- 코틀린은 원칙적이기보다 실용적임
- 변경가능성은 상당히 쉽고, 불변성은 어려움
- Null에 대한 두려움이 거의 없음
- 제네릭 타입의 추상화에 대해 전문적인 기능을 제공해줌
- 최소한의 패턴 매칭
- 신세대 언어임
- 많은 기능들이 보다 개선된 상태임
- 하지만 스칼라에만 있는 부족한 기능도 있음
- 그럼에도 불구하고 필요한 대부분의 기능을 갖추고 있음
출처: https://medium.com/@w.pitula/kotlin-from-scala-perspective-advent-of-code-2023-f2901863ba0e
구글(Google)에서 가장 성공적인 팀들의 5가지 특징
- 팀을 “심리적 안전지대”로 만듬
- "우리 팀에 모든 사람들은 인간 관계상의 리스크로부터 완벽하게 안전하다”는 믿음
- 팀원 누구라도 자신의 아이디어나 이야기, 질문 등으로 인해 자신이나 타인이 심리적으로나 물리적으로 불이익을 받지 않는다는 확신
- 팀원들 사이에 높은 상호의존성이 존재함
- 모든 팀원들은 각자의 업무를 기한 내에 높은 수준의 성과를 내며, 한 사람이라도 자신의 책임과 주어진 역할을 느슨하게 하면 팀 전체가 어려움을 겪게 됨
- 팀원들이 우리는 팀으로써 효과적(Effective)이라는 믿음을 갖는 팀 문화를 만들어가는 노력이 필요함
- 팀 내에 구조와 명확성을 가지고 있음
- 팀 리더는 팀원들을 업무 진행과 성과를 세심하게 모니터링하고 있지만 일일이 간섭하는 마이크로 매니징을 하지는 않음
- 팀과 팀원 각자의 역할과 책임, 목표와 계획을 팀원들의 합의를 통해 명확하게 정의하고, 이러한 구조적 체계를 통해 팀이 운영됨
- 각각의 팀원들에게 충분한 의미를 부여함
- 팀원 각자의 역할과 책임, 목표와 계획들을 팀원 한사람 한 사람에게 명확하게 소통되게 하고 개인적으로는 깊은 공감을 얻음
- 그렇게 되지 않으면 팀원은 충분한 잠재력을 발휘하지도 새로운 한계에 도전하지도 않게 됨
- 그 무엇보다는 그들만의 좋은 목적을 공유함
- 성공적인 팀은 팀 스스로에게 "우리가 중요한 일을 하고 있다는 것을 모든 팀원들이 근본적으로 믿고 있는가?"라는 질문을 지속적으로 함
- 팀원들 개개인이 우리 팀이 하는 일이 정말로 가치 있고 의미 있는 목적을 이루어 간다는 사실을 날마다 느낄 수 있다면, 개개인의 최고의 잠재력이 발휘 될 것이고 팀으로써의 놀라운 창조적 시너지도 만들어질 것
출처: https://m.blog.naver.com/summerxmas/220546882694
실행 시간 효율을 위한 클래스 데이터 공유(CDS)와 Layered Jar
- 순간 급증하는 트래픽에 대응하기 위해서 초기 시작 문제가 대두되고 있음
- JVM 애플리케이션의 초기 시작 문제를 해결하는 여러 문제가 있음
- GraalVM Native Image
- Checkpoint Restore: Project CRaC
- Project Leyden
- Project Leyden
- 애플리케이션 클래스 데이터 공유(application class-data sharing) 기능은 OpenJDK 12버전부터 제공된 기능임
- 스프링 프레임워크(Spring Framework) 6.1.3 버전에서 정식 지원을 시작함
- Layered-jar
- Jar 파일의 압축을 풀어서 계층 형태로 분배하고 도커(Docker)로 복사하면, 도커 내 개별 레이어를 가짐
- Layered-jar는 스프링부트 2.3 이후 버전부터 정식 지원됨
출처: https://netmarble.engineering/class-data-sharing-cds-and-layered-jar/
시스템의 시계에 대하여
- 대부분 프로그래머는 시계가 일정하게 순차적이라는 정신 모델을 갖고 있음
- 시스템의 시계에서 값을 얻는 프로그램이 같은 값을 두번 얻을 수는 있지만 이전보다 작은 값을 얻을 수는 없다는 생각
- 하지만 이는 사실이 아니며 가상 머신에서는 더 심각해질 수 있음
- 결국 OS의 시계를 믿으면 안되고, 자체 NTP 서버 같은 외부 시계를 이용해야 함
출처: https://twitter.com/John_Grib/status/1760869233544859991
상반된 시스템 설계 사례(인스타그램 vs 핀터레스트)
상반된 시스템 설계 사례, 우리가 만드는 서비스 성향에 따라 고려되어야 함
- 인스타그램
- 단순하게 만들었다가 장애들을 거치며 아키텍처를 확장함
- 인그타그램에서는 처음에 확장을 고려했어야했다고 회고함
- 핀터레스트
- 빠르게 확장성을 고려해서 만들었다가 단순하게 변경함
- 핀터레스트는 미리 확장을 고려하지 말았어야했다고 회고함
출처: https://twitter.com/golbin/status/1731269398663762197?t=f8zeZlkDWMjdomW5UirTWQ&s=09
반응형
'Tech News' 카테고리의 다른 글
[TechNews] 유용한 개발 관련 아티클 및 영상 #11 (4) | 2024.03.15 |
---|---|
[TechNews] 유용한 개발 관련 아티클 및 영상 #10 (0) | 2024.03.08 |
[TechNews] 유용한 개발 관련 아티클 및 영상 #8 (2) | 2024.02.23 |
[TechNews] 개발 관련 아티클 및 영상 #7 (0) | 2024.02.16 |
[TechNews] 유용한 개발 관련 아티클 및 영상 #6 (2) | 2024.02.09 |
댓글