멘토 Pick! 25년 5월 둘째 주 아티클 모음
F-Lab : 상위 1% 개발자들의 멘토링
안녕하세요 여러분!
이번 주도 카카오 출신 멘토님께서 이번 주에 직접 선정한 아티클을 공유드립니다!
멘토's Pick에서 트렌디한 인사이트를 놓치지 마세요! 🚀
🤔 들어가기 전에 알아두면 좋습니다!
- 대부분 아티클은 영문으로 제공됩니다. 영문 글을 읽을 때 크롬 번역 플러그인을 쓰면 읽기가 불편하나, 크롬 플러그인 하나를 설치하면 한국어를 읽듯이 좀 더 쉽게 영어 아티클을 읽을 수 있습니다. Trancy Chrome 플러그인을 설치 후 더 쉽게 읽을 수 있습니다.
- 아티클을 읽고 어떤 점을 더 고민해 보고, 생각해 보면 좋을지 제시해 주시는
멘토님의 Comment
도 잘 활용해 보시면 좋습니다!
💡What is Eventual Consistency?
- Eventual Consistency(최종적 일관성) 개념을 실무 관점에서 설명합니다.
💌 멘토님의 Comment
"우리가 흔히 생각하는 “일관성”은 보통 실시간을 전제로 합니다. 어디서 데이터를 읽든, 지금 이 순간 동일한 값을 볼 수 있어야 한다는 개념이 Strong Consistency의 개념입니다.
하지만 모든 시스템이 이걸 보장해야만 하는 건 아닙니다. 특히 분산 시스템이나 글로벌 서비스를 설계할 땐, Strong Consistencty를 보장하기 어렵습니다. DB도 여러개, 서버도 여러개이기 때문에 완벽한 일관성을 보장하려면 너무 많은 락 또는 비용이 발생합니다.
그럴 때 나오는 선택지가 바로 Eventual Consistency입니다. 지금 당장은 서로 다른 값을 볼 수 있어도 일정 시간이 지나면 결국 모든 노드가 같은 값을 갖도록 맞춰지는 구조입니다. 대표적인 예가 SNS의 좋아요 수, 메시지 읽음 처리 같은 것들입니다.
현재 개발 중인 기능 중에서 실시간 동기화가 반드시 필요한지, 아니면 약간의 지연이 허용되는지 판단할 수 있다면 복잡도와 비용 면에서 훨씬 유연한 선택이 가능해질 수 있습니다.
지금 만들고 있는 시스템의 데이터는 정말 ‘즉시’ 일관성이 필요할까요? 아니면 수 초 뒤에 맞춰져도 괜찮은 구조일까요? 대부분의 시스템은 즉시 일관성이 확보되지 않아도 큰 이슈가 없는 경우가 종종 있습니다.
최종적 일관성을 선택한다면 분산시스템으로의 설계가 가능해지고, 확장 가능한 서비스 아키텍처를 구축할 수 있으므로 이런 전략이 있다는걸 학습하고 아키텍처 설계시 하나의 선택지로 가져갈 수 있다면 좋겠습니다."
💡Java Generics PECS – Producer Extends Consumer Super
- 이 글은 Java 제네릭에서 자주 혼동되는 extends와 super 사용법을 정리합니다.
- 공변/반공변에 대한 개념을 잡을 수 있게 도와줍니다.
💌 멘토님의 Comment
"자바에서 제네릭을 쓰다 보면 <? extends T>랑 <? super T> 중에 뭘 써야 할지 헷갈릴 때가 많습니다. 문법은 알고 있는데 막상 코드에선 손이 잘 안 가죠.
자바에서 List<? extends Animal>은 공변(covariant)입니다. List<Dog>나 List<Cat>도 받아들일 수 있지만 그 안에 뭘 추가할 수는 없습니다. Dog인지 Cat인지 모르기 때문이죠. 그래서 이런 리스트는 읽기 전용, 즉 producer로만 써야 안전합니다.
반대로 List<? super Dog>는 반공변(contravariant입니다. List<Dog>, List<Animal>, List<Object>에 Dog 객체를 넣는 건 괜찮지만 꺼낸 값을 정확히 어떤 타입인지 모르기 때문에 읽기는 제한적입니다. 그래서 이런 리스트는 쓰기 전용, 즉 consumer로만 쓰는 게 맞습니다.
이걸 모르고 그냥 ?만 써두면 결국 IDE에 의존하거나 타입캐스팅으로 넘어가게 되고 제네릭이 주는 타입 안정성을 잘 사용하기 어렵습니다."
💡Some features that every JavaScript developer should know in 2025
- 2025년 javascript에 추가되는 여러 기능에 대해 소개합니다.
Temporal
,Record & Tuple
,await import()
,Set methods
등 기존 문법을 넘어선 언어 차원의 변화들을 정리해두었습니다.
💌 멘토님의 Comment
"2025년에는 javascript언어에 어떤 업데이트가 있었을까요?
Temporal로 날짜 다루는 방식이 바뀌고, Record와 Tuple로 구조체처럼 불변 객체를 표현할 수 있게 되며 await import()처럼 모듈도 동적으로 불러올 수 있게 됩니다. 이전에도 모두 라이브러리형태로 지원되었던 기능이나 이제 라이브러리 없이도 기본 언어레벨로 지원하기 위한 업데이트로 보입니다.
사용하기 어렵고 예측하기 힘들었던 JS가 점점 더 명시적이고 타입 안전한 방향으로 발전하고 있다는 흐름을 보여줍니다. 새로운 기능들을 꼭 당장 써보지 않더라도 "이런 방향으로 언어가 바뀌고 있다"는 감각을 가져두면 실제로 설계를 하거나 라이브러리 선택할 때 좀 더 지금의 문법에 맞는 판단을 할 수 있습니다.
다만 라이브러리로 지원하여 쉽게 쓸 수 있던 기능이 아직은 사용하기 약간 어렵거나 불편한 부분들도 눈에 띄는 부분이 있습니다. 추후 업데이트를 통해 개선될 여지가 있으므로 JS 개발자라면 업데이트 트랜드를 따라갈 필요가 있어보입니다."
깊이 있는 인사이트와 현실적인 조언이 담긴 멘토님들의 인터뷰와 커리어 성장 콘텐츠가 데브클럽에서 정기적으로 업데이트되고 있습니다.
실력 있는 현직 개발자 멘토들과 직접 소통하고, 생생한 실무 노하우와 커리어 성장 전략을 배워보세요!
이 컨텐츠는 F-Lab의 고유 자산으로 상업적인 목적의 복사 및 배포를 금합니다.