F-Lab
🚀
상위 1% 개발자에게 1:1로 멘토링 받아 성장하세요
🚀
상위 1% 개발자에게 1:1로 멘토링 받아 성장하세요

멘토 Pick! 25년 5월 마지막 주 아티클 모음

writer_thumbnail

F-Lab : 상위 1% 개발자들의 멘토링

안녕하세요 여러분!
이번 주도 카카오 출신 멘토님께서 이번 주에 직접 선정한 아티클을 공유드립니다!

 

멘토's Pick에서 트렌디한 인사이트를 놓치지 마세요! 🚀

 

🤔 들어가기 전에 알아두면 좋습니다!

  • 대부분 아티클은 영문으로 제공됩니다. 영문 글을 읽을 때 크롬 번역 플러그인을 쓰면 읽기가 불편하나, 크롬 플러그인 하나를 설치하면 한국어를 읽듯이 좀 더 쉽게 영어 아티클을 읽을 수 있습니다. Trancy Chrome 플러그인을 설치 후 더 쉽게 읽을 수 있습니다.
  • 아티클을 읽고 어떤 점을 더 고민해 보고, 생각해 보면 좋을지 제시해 주시는 멘토님의 Comment도 잘 활용해 보시면 좋습니다!

 

💡 코루틴과 Virtual Thread 비교와 사용 

🔗 아티클 전문 보기

  • 동시성 처리를 위한 두 기술인 Kotlin 코루틴과 Java Virtual Thread를 실제 코드와 성능 테스트를 통해 비교 분석합니다.

💌 멘토님의 Comment 

: 코루틴과 Virtual Thread중 어떤것이 더 가볍고 빠를 것이라고 생각하시나요? 

 

Java Virtual Thread는 출시당시 꽤나 무겁고 실제 Thread보다 느리다는 결과가 있어서 코루틴이 더 빠를 것이라고 생각했지만 의외로 실제로는 Virtual Thread가 더 빨랐습니다. 

특히 Virtual Thread의 경우 기존 Thread를 사용하는 코드를 재사용할 수 있었기 때문에 코드 변경이 크지 않다는 장점도 있어서 더 반가운 소식이기도 합니다. 

 

다만, 대부분 Java8 / Java11을 쓰고있는 현실과 비교하면 Virtual Thread를 사용하려면 JDK21 이상을 사용해야 한다는 점이 아쉽기는 합니다. 한 가지 아쉬운 점은 CPU 작업 위주로만 테스트했다는 건데, 동시성을 쓰는 대부분의 경우는 DB 쿼리나 API 호출 같은 I/O 작업이 많기 때문에 이런 상황에서의 비교도 있었으면 더 실용적이었을 것으로 보입니다.

 

 

💡 Should I Use JWTs For Authentication Tokens?

🔗 아티클 전문 보기 

  • JWT 인증의 무분별한 사용을 비판하며, Google/Facebook 규모가 아닌 대부분의 애플리케이션에서는 전통적인 세션 기반 인증이 더 적합하다고 주장합니다.
  • JWT를 사용하면서도 매 요청마다 DB를 조회하는 아이러니한 상황을 지적하고, 복잡성만 증가시키는 잘못된 JWT 사용 패턴을 분석합니다.

💌 멘토님의 Comment 

: "JWT를 인증에 써야 할까?"라는 질문에 대한 답이 딱 한 단어 "No"로 시작합니다. 

 

이 아티클은 JWT의 장/단점과 특징을 이해하지 못하고 JWT를 적용할 경우 발생하는 잘못된 사용 패턴에 대해 알려줍니다. 저자의 핵심 주장은 명확합니다. JWT는 Google이나 Facebook 같은 초대규모 서비스를 위해 설계된 것이고, 초당 1만 요청도 처리하지 않는 대부분의 서비스에서는 오버엔지니어링이라는 거죠. JWT를 쓰면서도 결국 매번 DB를 조회한다고 지적하며 세션방식과 차이가 없다는 이야기를 합니다. 더불어 JWT 서명을 검증하는 오버헤드가 추가되므로, 글로벌 세션 저장소를 두고 세션 검증만 하는 방식보다 더 큰 성능저하를 불러올 수 있다고 설명합니다. 

물론 이 글이 모든 상황을 다루지는 않습니다. 마이크로서비스 환경이나 SSO가 필요한 환경에서는 JWT가 여전히 좋은 선택입니다. 

 

하지만 JWT가 인증에서 유행이라는 이유로 근거 없이 적용했다면 검증된 세션 메커니즘으로 해결할 수 없는 문제가 있었는지, 남들이 다 쓴다고 해서 적용한 것은 아닐지 고민해볼 필요가 있을 것으로 보입니다. 

 

JWT든 세션이든 결국 도구일 뿐입니다. 중요한 건 우리가 해결하려는 문제가 무엇인지, 그리고 그 문제를 해결하는 가장 단순한 방법이 무엇인지 아는 것 아닐까요?

 

 

💡 How JavaScript Works Behind the Scenes

🔗 아티클 전문 보기

  • JavaScript의 싱글 스레드 실행 모델과 비동기 처리 메커니즘을 Call Stack, Web APIs, Task Queue, Microtask Queue, Event Loop의 상호작용을 통해 설명합니다
  • setTimeout, Promise, async/await 등의 비동기 코드가 실제로 어떤 순서로 실행되는지 보여줍니다.

💌 멘토님의 Comment
: JavaScript가 싱글 스레드인데 어떻게 동시에 여러 작업을 처리할까요? setTimeout(fn, 1000) 코드는 정말 1초 후에 실행되는게 보장될까요?

 

이 코드는 정확히 1초 후에 실행되는 게 아니라, 1초 후에 Task Queue로 가고, Call Stack이 비어있을 때까지 기다려야 실행됩니다. 이런 구조를 모른다면 Javascript의 비동기 처리 방식이 왜 이렇게 늦게 실행되는지 이해하기가 어렵습니다.

 

왜 이 코드가 이 순서로 실행되지? 라는 의문을 가져본 적이 있다면 읽어보시길 권장드립니다.

 

 

깊이 있는 인사이트와 현실적인 조언이 담긴 멘토님들의 인터뷰와 커리어 성장 콘텐츠가 데브클럽에서 정기적으로 업데이트되고 있습니다.

 

실력 있는 현직 개발자 멘토들과 직접 소통하고, 생생한 실무 노하우와 커리어 성장 전략을 배워보세요!

 

👉 멘토링 신청하고 데브클럽 참여하

ⓒ F-Lab & Company

이 컨텐츠는 F-Lab의 고유 자산으로 상업적인 목적의 복사 및 배포를 금합니다.

조회수

멘토링 코스 선택하기

  • 코스 이미지
    Java Backend

    아키텍처 설계와 대용량 트래픽 처리 능력을 깊이 있게 기르는 백앤드 개발자 성장 과정

  • 코스 이미지
    Node.js Backend

    아키텍처 설계와 대용량 트래픽 처리 능력을 깊이 있게 기르는 백앤드 개발자 성장 과정

  • 코스 이미지
    Python Backend

    대규모 서비스를 지탱할 수 있는 대체 불가능한 백엔드, 데이터 엔지니어, ML엔지니어의 길을 탐구하는 성장 과정

  • 코스 이미지
    Frontend

    기술과 브라우저를 Deep-Dive 하며 성능과 아키텍처, UX에 능한 개발자로 성장하는 과정

  • 코스 이미지
    iOS

    언어와 프레임워크, 모바일 환경에 대한 탄탄한 이해도를 갖추는 iOS 개발자 성장 과정

  • 코스 이미지
    Android

    아키텍처 설계 능력과 성능 튜닝 능력을 향상시키는 안드로이드 Deep-Dive 과정

  • 코스 이미지
    Flutter

    네이티브와 의존성 관리까지 깊이 있는 크로스 플랫폼 개발자로 성장하는 과정

  • 코스 이미지
    React Native

    네이티브와 의존성 관리까지 깊이 있는 크로스 플랫폼 개발자로 성장하는 과정

  • 코스 이미지
    Devops

    대규모 서비스를 지탱할 수 있는 데브옵스 엔지니어로 성장하는 과정

  • 코스 이미지
    ML Engineering

    머신러닝과 엔지니어링 자체에 대한 탄탄한 이해도를 갖추는 머신러닝 엔지니어 성장 과정

  • 코스 이미지
    Data Engineering

    확장성 있는 데이터 처리 및 수급이 가능하도록 시스템을 설계 하고 운영할 수 있는 능력을 갖추는 데이터 엔지니어 성장 과정

  • 코스 이미지
    Game Server

    대규모 라이브 게임을 운영할 수 있는 처리 능력과 아키텍처 설계 능력을 갖추는 게임 서버 개발자 성장 과정

  • 코스 이미지
    Game Client

    대규모 라이브 게임 그래픽 처리 성능과 게임 자체 성능을 높힐 수 있는 능력을 갖추는 게임 클라이언트 개발자 성장 과정

logo
copyright © F-Lab & Company 2025