전체에 해당하는 글 283

  1. Virtual Thread 2025.08.12

    보호되어 있는 글입니다.


  2. Uncaught DOMException: Failed to execute 'importScripts' on 'WorkerGlobalScope': The script at 'http://localhost/worker-html.js' failed to load 2025.08.06

    ~Next.JS, React 환경 기준으로 작성된 글입니다~ JSON 에디터 컴포넌트가 필요해서 외부 에디터 라이브러리 중 하나인 AceEditor를 활용했다.공식 문서 바로가기 | React 기준 미리 보기 페이지 그러나... Uncaught DOMException: Failed to execute 'importScripts' on 'WorkerGlobalScope': The script at 'http://localhost/worker-html.js' failed to load 이런 에러메시지가 뜨면서 에디터가 제대로 로드되지 않는 이슈가 발생했다.어떻게 어떻게 찾은 해결 방법은 아래와 같다. { onChange(t); }} value={jsonValue}..


  3. nginx http2 설정 (feat. http/1.x 부터 http/3) 2025.08.05

    최근 프록시 서버로써 nginx에서 http2를 설정하면서 알아본 내용을 간략하게 정리해 본다.더보기server { listen 443 ssl; # 예전에는 이 뒤에 http2를 붙였지만 http2 on; # 이제 이렇게 합니다 ssl_certificate ssl/certificate.pem; ssl_certificate_key ssl/key.pem; location = / { ... }} HTTP가 뭔데?널리 알려져있다시피, HTTP는 HyperText Transfer Protocol 의 줄임말이다.HyperText를 전송하는 프로토콜이라고 직역할 수 있다.html 페이지에서 태그로 생성한 요소를 클릭하면 다른 페이지로 이동하게 되는데,이렇게 링크를 통해 다른 ..


  4. 일렉트론 자동 업데이트 설정하기 (electron auto-updater) 2025.07.21

    일반적으로 일렉트론으로 빌드한 클라이언트 프로그램에는 많은 비즈니스 로직을 담지 않는다. 1. 클라이언트는 결국 사용자의 컴퓨터에 설치되기 때문에 작정하고 까보면 내부 코드를 파악할 수 있고,2. 실제 서비스와 관련된 비즈니스 로직을 너무 많이 담으면 유지보수가 힘들어지며,3. 특히나 단순히 WebView Wrapper로서 사용하는 거라면 더더욱 그렇다. 보여지는 것에 집중하지, 내부 로직은 담지 않는다. 그럼에도 불구하고, 부득이하게 내부 정책이나 서버 환경 변동에 따라 업데이트가 필요한 경우가 있다.캡처 방지와 같은 보안 기능을 넣고 빼거나, 로딩 페이지 경로 등 환경변수에 변화가 있을 때에도 다시 빌드해서 배포해 주어야 한다. 이런 점을 고려했을 때,버전이 업그레이드될 때 유저에게 재설치하라는 것보..


  5. fail2ban 설정하기 2025.07.17

    fail2ban?GitHub - fail2ban/fail2ban: Daemon to ban hosts that cause multiple authentication errorslog파일을 참조하여 filter에 정의된 조건에 맞는 IP를 기록하고 차단하기 위한 brute force 방어 시스템이다. jail 과 filter라는 개념을 사용하는데,jail은 특정 필터에 의해 걸러진 IP를 가두는 감옥과 같은 개념으로,감옥별로 차단 단계까지 도달하기 위해 반복될 실패횟수나 시간, 차단할 시간 등을 지정할 수 있다.filter는 간단하게 IP 차단 여부를 판단하기 위한 기준이 되는 필터를 의미한다. 설치(ubuntu 기준)$ apt-get update apt-get install fail2ban 설치를 완료..


  6. [LeetCode] Guess Number Higher or Lower 2025.07.17

    https://leetcode.com/problems/guess-number-higher-or-lower/description/?envType=study-plan-v2&envId=leetcode-75We are playing the Guess Game. The game is as follows: I pick a number from 1 to n. You have to guess which number I picked. Every time you guess wrong, I will tell you whether the number I picked is higher or lower than your guess. You call a pre-defined API int guess(int num), which r..


  7. VPN 해제 후 공인 IP 기반 서비스 오픈과 보안 구성 2025.07.16

    보호되어 있는 글입니다.


  8. ResizeObserver.unobserve()는 필수인가? 2025.07.10

    https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver ResizeObserver - Web APIs | MDNThe ResizeObserver interface reports changes to the dimensions of an Element's content or border box, or the bounding box of an SVGElement.developer.mozilla.orgResizeObserver는 html 엘리먼트의 내용물 크기 또는 svg의 바운딩박스의 변화를 추적해 주는 인터페이스다.new ResizeObserver() 로 인스턴스를 생성한 뒤, 추적하고 싶은 엘리먼트를 observe 하면 끝이다.추적을 멈추고 싶을 ..


  9. [LeetCode] Edit Distance 2025.07.09

    https://leetcode.com/problems/edit-distance/description/?envType=study-plan-v2&envId=leetcode-75 Given two strings word1 and word2, return the minimum number of operations required to convert word1 to word2.You have the following three operations permitted on a word:Insert a characterDelete a characterReplace a characterExample 1: Input: word1 = "horse", word2 = "ros" Output: 3Explanation: hors..


  10. [LeetCode] Best Time to Buy and Sell Stock with Transaction Fee 2025.07.02

    https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/description/?envType=study-plan-v2&envId=leetcode-75You are given an array prices where prices[i] is the price of a given stock on the ith day, and an integer fee representing a transaction fee. Find the maximum profit you can achieve. You may complete as many transactions as you like, but you need to pay the tran..