멘토 Pick! 25년 2월 마지막 주 아티클 모음
F-Lab : 상위 1% 개발자들의 멘토링
안녕하세요 여러분!
이번 주도 카카오 출신 멘토님께서 이번 주에 직접 선정한 아티클을 공유드립니다!
멘토's Pick에서 트렌디한 인사이트를 놓치지 마세요! 🚀
🤔 들어가기 전에 알아두면 좋습니다!
- 대부분 아티클은 영문으로 제공됩니다. 영문 글을 읽을 때 크롬 번역 플러그인을 쓰면 읽기가 불편하나, 크롬 플러그인 하나를 설치하면 한국어를 읽듯이 좀 더 쉽게 영어 아티클을 읽을 수 있습니다. Trancy Chrome 플러그인을 설치 후 더 쉽게 읽을 수 있습니다.
- 아티클을 읽고 어떤 점을 더 고민해 보고, 생각해 보면 좋을지 제시해 주시는
멘토님의 Comment
도 잘 활용해 보시면 좋습니다!
💡인터넷이 동작하는 아주 구체적인 원리
면접질문으로 자주 등장하는 “브라우저에서 URL 입력시 발생하는 일” 에 대한 모범답안입니다.
>> 아티클 읽어보러 가기 >>
💌 멘토님의 Comment
"‘브라우저에서 URL 입력시 발생하는 일’ 질문은 10명의 사람에게 질문하면 10개의 다른 답이 나올정도로 답변자의 이해도와 지식 깊이에 따라 많은 차이가 나는 질문입니다. 그래서 이미 이런 질문이 대중적으로 알려졌지만 여전히 자주 출제되는 면접 질문입니다.
이런 질문에 답변하려면 단순히 외우는 것으로는 높은 점수를 얻기 어렵습니다. 실제 이론 지식이 뒷받침되는 상황에서 답변해야 이어 들어오는 꼬리질문에도 답변할 수 있으며, 답변 중간중간에 혹시나 틀린 말을 하지 않을 수 있습니다.
위 글을 읽어보시며 잘 모르는 단어가 등장하거나, 이해하기 어려운 문장이 있다면 이번 기회에 CS지식 깊이와 넓이를 확장하기 위한 이론 공부를 추가로 진행해보시는건 어떠실까요?"
💡JavaScript Temporal is coming
1995년 Java 초기 Date를 참고하여 만든 Javascript의 Date를 대체할 Temporal이 곧 출시됩니다.
Date객체의 완전한 대체를 목표하며, 달력표현, 시간대, 변환, 비교 등 200개가 넘는 유틸리티 함수를 지원합니다.
Firefox 브라우저에서 실험버전으로 사용 가능하며, 이외 브라우저는 현재 개발중으로 사용 가능 시점은 미정입니다.
💌 멘토님의 Comment
"javascript에서 날짜와 시간을 표현하기 위해서 사용하는 Date는 꽤나 많은 문제점을 가지고 있습니다. 글로벌 시간대를 설정할 수 없고, 직렬화나 파싱이 불편하며 사용법도 직관적이지 않았는데요. 이를 대체할 Temporal이 등장합니다.
꽤나 많은 기능을 지원하지만 여러가지 비판적인 시각도 있습니다. JS의 Temporal의 구현도 Date와 마찬가지로 Java의 Temporal을 많이 참고하여 구현된 점, 이미 Javascript에는 시간 관련 라이브러리인 moment.js와 joda-time, date-fns등의 라이브러리가 대중화되어 사용될 정도로 새로운 기능 출시까지 너무 오래걸린 점 등이 아쉽게 느껴집니다.
그래도 라이브러리 사용 없이도 시간과 날짜를 다루는 방법의 편리한 사용을 위한 신 기능 출시는 환열할만한 일입니다. 출시때까지 관련 문서에서 어떤 인터페이스를 지원하고, 어떤 기능이 있는지 미리 살펴보고 준비한다면 JS의 Date는 이제 보내줄 수 있을 것 같습니다."
💡더 안전한 대화를 위한 Letter Sealing
기존 서버 암호화 방식에서 Letter Sealing방식으로 클라이언트 암호화로 변경한 설계를 공유합니다.
Elliptic Curve Diffie-Hellman (ECDH) 키 교환 방식을 활용하여, 대화 참여자 간의 키 교환을 안전하게 수행합니다.
데이터를 안전하게 봉인하여 서버에 저장하고, 서버가 해킹당해도 메시지를 보호하기 위한 방식을 고민하였고, 이 해결방식을 공유합니다.
💌 멘토님의 Comment
"라인 메신저가 2015년에 공개한 Letter Sealing 기술입니다. 기존 서버레벨 메시지 메신저의 보안에서 가장 중요한 것은 사용자의 메시지가 유출되지 않으며, 내부자를 포함한 그 누구도 메시지를 가로챌 수 없게 만드는 것입니다.
서버 사이드 암호화는 강력하지만 중간자 공격 MITM(Man In The Middle Attack)에 취약합니다. 이에 따라 클라이언트 암호화를 적용해야 하는 이유를 설명하고 구현 방식을 소개합니다.
10년 전 발행된 옛날 기술에 대한 이야기지만 개발자가 민감한 데이터를 서버에 보관할 때 어디까지 생각해야하는지에 대한 인사이트를 얻을 수 있습니다. 단순히 암호화하여 보관한다면 서버 권한자가 탈취를 시도하면 어떻게하지? 암호 키가 유출되고 서버가 해킹당하면 어떻게하지? 와 같은 넓은 고민에서 이런 안정성 강화와 암호화방식 적용이 되었을 것입니다.
개발자가 다루는 정보중 개인정보와 민감정보를 단순히 암호화만 하여 보관하는 경우가 많습니다. 하지만 네트워크, 해킹 방식, 여러가지 인프라 설정에 따라 데이터가 언제든 유출될 수 있음을 인지하고 이를 보호하기 위한 방식을 꼭 고민해보셨으면 좋겠습니다."
이 컨텐츠는 F-Lab의 고유 자산으로 상업적인 목적의 복사 및 배포를 금합니다.