한국어 | English | 日本語
8.8년차 Web Application Developer 웹 개발자
posts
다양한 주제의 글들을 게시해놓았습니다
Engineering
View All
쓰로틀링(Throttling)과 디바운싱(Debounce)의 차이점
쓰로틀링과 디바운싱은 마우스 스크롤 이벤트가 적용되어있는 웹페이지에서 유저가 마우스 스크롤을 하니 수백수천번의 호출이 일어나 브라우저가 메모리 외상을 입는 등의 상황에 대한 해결책이다. 다수 호출로 인한 성능저하를 방지하기 위해서는 호출 수를 줄이면 된다. 호출 수를 줄이는 방법 중 호출간 간격을 두는것이 쓰로틀링(Throttling)이고 다수 호출을 적은수의 호출로 그룹핑하는걸 디바운싱(Debouncing)이라한다.
CORS - Cross-origin AJAX 호출을 위한 SOP 보완 정책
필자가 웹 개발을 가장 처음했을때 맞닥뜨렸던 이슈가 CORS 였다. CORS 는 그 자체가 이슈가 아닌 규약으로 개발자에게 해당 요청이 CORS 규약을 따르지 않음을 알려주는것이다. CORS 규약은 웹 브라우저의 보안을 위한 요소이다. 우리는 블로그를 만들때 외부 이미지들을 링크할때가 있다. 이처럼 외부에 있는 단순 자원을 가져오는건 보안의 문제가 되지 않는데, POST 이나 PUT 과 같은 AJAX 호출을 통해 외부에 있는 동적 자원을 가져오는건 서버의 상태를 바꾸게되어 보안의 문제가 된다. 이에 서버 상태 변경(쿠키 헤더 등을 통한 클라이언트 상태 변경도 포함) 관련 호출 시 본 호출이 진짜 개발자가 의도한 호출인지 철저히 검증해야한다. 그렇지 않으면 블로그에서 악의적 스크립트 주입에 의해 외부 도메인에 원치않는 서버 자원을 조작할 수 있는 AJAX 가 호출될 수 있기 때문이다.
자바스크립트 런타임 환경: 크롬 '브라우저'와 Node.js '서버'
크롬 브라우저와 Node.js 둘 모두 V8 이라는 유명한 자바스크립트 엔진을 쓴다. 자바스크립트 엔진을 기반으로 구성된 크롬 브라우저와 Node.js 를 자바스크립트 런타임 환경(Javascript Runtime Environment)라 부른다. 간단하게 말하자면, 자바스크립트 언어를 통해 돌아가는 환경이라는 의미이다. 그럼 차이점이 무엇일까? 크롬 브라우저 환경은 렌더에 관련된 DOM 처리나 AXIOS 와 같은 외부 자원 호출 처리, 이미지 처리 등 브라우저에서 유저가 필요로하는 모든 기능을 Web API 로 추가 제공해주고, Node.js 서버 환경에서는 수많은 요청을 받기위해 이벤트 큐, 이벤트 루프(싱글 스레드)와 함께 워커 스레드 구성을 추가 제공한다.
Spring Security: SecurityContextHolder 의 Thread 공유 전략
병렬 처리를 위해 도입한 parallelStream 내에서 Spring Security의 세션 정보가 간헐적으로 사라지는 기이한 버그를 마주했다. '슈뢰딩거의 고양이'처럼 새로고침할 때마다 결과가 달라지는 이 현상의 원인을 파헤치고, SecurityContextHolder가 멀티스레드 환경에서 세션 데이터를 공유하는 세 가지 전략을 살펴본다.
Opinion
View All
LLM 필터가 앗아가는 대화의 근육과 소통의 양식
대화의 무례함을 거르고 정제된 답변을 내놓는 LLM 도구가 일상화된 시대, 우리는 더 사려 깊은 대화를 하고 있는 것일까? 실시간 소통에서 오는 수많은 실패를 통해 다듬어져야 할 대화의 능력이 외부 도구에 의존하며 퇴화하고 있는 현상과, 그것이 가져올 사회적 불안 및 세대적 행동 양식의 변화를 고찰한다.
시니어 채용 시 유리한 연봉협상 시점과 전략
연봉협상은 단순히 숫자를 주고받는 과정이 아니라 심리적인 타이밍의 싸움이다. 사측의 입장에서 후보자가 계산적인 태도로 변하기 쉬운 최종 합격 이후보다, 채용 절차의 초기 단계부터 차근차근 협상을 진행하는 것이 왜 더 효율적이고 솔직한 자원 공유를 이끌어낼 수 있는지 분석한다.
법치주의의 한계와 인간의 다양성
모든 인간의 행위를 단일한 법 체계로 규제할 수 있다는 믿음은 오만일지도 모른다. 중세의 계층적 통제에서 벗어나 현대의 무한한 자유를 얻은 인류가 마주한 법치주의의 역설과, 다양성이라는 이름 아래 심화되는 사회적 강제성과 타인의 악마화 현상을 날카롭게 분석한다.
철학은 왜 아직도 과거에 머물러있는가
세계대전과 산업혁명이라는 격변기를 지나 현대에 이르기까지, 인류의 지성사는 눈부시게 발전했지만 철학은 여전히 과거의 유산에 머물러 있는 듯하다. 사회적 갈등의 온도가 임계점을 넘어서고 있는 오늘날, 왜 우리에게는 시대를 관통하는 새로운 철학적 통찰이 나타나지 않는지에 대한 의문을 던진다.
토스트 예시 메세지