프로그래머의 길, 멘토에게 묻다 는 사회초년생 때 구매했던 책인데, "초보 프로그래머" 를 아직도 탈출하지 못했다는 자괴감이 들 때마다 종종 다시 펼쳐보곤 한다. 좋은 멘토에 대한 갈증이 있다면, 그리고 개발자 경력의 초반을 설계하는 데 고민이 든다면 한 번쯤 읽어보기를 추천한다. 이번에는 이 책을 읽고 생각나는 구절들을 몇 가지 소개해보고자 한다. 무지를 드러내라2장 잔을 비우다 中소프트웨어 장인은 고객이나 동료와 맺은 튼튼한 관계를 통해서 평판을 쌓아간다. 무언의 압력에 굴복해서 사람들이 듣고 싶어 하는 얘기를 해주는 것은 튼튼한 관계를 쌓는 데 좋은 방법이 아니다. 사람들에게 진실을 말하라. 그들이 무엇을 원하는지 이제 당신이 이해하기 시작했고, 그것을 해낼 방법을 배워 가는 중이라고 알려주어라...
전체 글
궁금한 것들을 파고드는 날것의 블로그입니다. 브라우저 환경에서 발생하는 일들을 주로 다뤄보고자 합니다.지난 글을 통해 i18n 프로젝트를 설정하고 Next.js, next-intl 라이브러리를 활용하여 실제 사용하는 방법에 대해 알아보았다. 이제 마음껏 기능 개발을 하면서 국제화된 텍스트를 앱에 적용해볼 수 있다. 그런데.. 어플리케이션 규모가 커지고 지원하는 언어/국가가 늘어날수록 뭔가 불편한 구석이 생겨날 것이다. 바로 다국어 텍스트를 수작업으로 관리하는 어려움이다. 개발자가 다국어 메세지 하나 추가하려면, 1. 언어 갯수만큼 존재하는 en.json 같은 파일에 들어가서, 2. namespace에 해당하는 적절한 위치를 찾아 중복되지 않는 key를 만들고, 3. 다국어 번역본을 복붙해줘야 한다. 지원 언어가 많아질수록, 텍스트와 도메인이 방대해질수록 이것은 보통 노가다가 아닐 뿐더러, 개발자의 실수가..
글로벌 서비스에 다국어 기능은 선택이 아닌 필수다. 그런데 단순히 한국어만을 고려한 어플리케이션과, 여러 개의 국가를 고려한 어플리케이션은 메세지를 화면에 띄워주는 구조부터 다르다. 따라서 글로벌 시장을 목표로 한다면, 초기 설계 단계부터 다국어를 고려하는 게 좋다. 이번 글에서는 다국어 웹사이트를 구성하기 위해서는 어떤 것들을 고려해야 하고, 어떻게 만들어야 할 지를 다뤄보고자 한다. i18n이란Internationalization(국제화) 의 준말. 비슷한 용어로 Localization(현지화) 도 있다. 일반적으로 다음과 같은 것들을 의미한다. 언어에 맞는 다국어 번역 및 최적화된 UI를 제공하는 것은 기본이다. 번역본을 관리하고, 언어 설정에 맞게 번역된 텍스트를 UI에 노출시켜야 하며, 텍스트 ..
한 윈도우에서 다른 윈도우를 참조하고, 데이터를 주고 받는 등의 통신이 필요할 때가 있다. 대표적으로 소셜 로그인을 위해 OAuth 처리를 해주는 팝업을 새 윈도우로 띄우고, 인증이 완료되면 다시 본래 창으로 돌아와야 할 때. 인증 관련 정보를 탭 간에 공유하여 로그인 처리를 일관성있게 유지해야 할 때. 어플리케이션의 상태를 윈도우/탭/iframe 사이에 맞춰야 하는 경우가 있을 수 있겠다. 따라서 이번에는 페이지에서 팝업을 열어서 데이터를 주고받아보며, 서로 다른 브라우징 컨텍스트 간에 통신하는 몇 가지 방법들을 살펴보고자 한다. window.postMessage Window 오브젝트 사이에서 cross-origin 통신을 하기 위해 가장 많이 쓰이던 API다. 페이지와 생성된 팝업 간의 통신, 또는 ..
JWT 토큰 기반의 인증을 프로젝트에 적용할 때, 클라이언트 사이드에서 신경써야 할 부분 중 하나가 바로 토큰 로테이션이다. JWT 토큰은 만료 기한이 반드시 존재하고, 토큰이 만료된 경우 새 토큰을 발급받기 위한 로직이 필요하다. 특히 Access 토큰과 Refresh 토큰을 함께 쓴다면 상황이 조금 더 복잡해진다. 이번 포스팅에서는 HTTP 클라이언트로 Axios를 사용하는 환경에서, Axios의 HTTP Interceptor 라는 괜찮은 미들웨어를 통해 어떻게 토큰 로테이션을 구현할 수 있을지 소개해보고자 한다. 만약 JWT, Access Token 과 Refresh Token 이 생소하다면 다음 블로그를 참고해보자. 보통 유저 인증이 필요한 API는 제한되어 있으나, 인증을 처리하는 로직은 공통으..