전체 글 61

ETag로 같은 JSON 다시 받지 않기: 304 응답 처리하기

같은 API를 다시 조회했는데 304 응답에 response.json()을 호출하면 파싱 오류가 납니다. 304에는 본문이 없으므로, 이전에 받은 JSON을 보관했다가 그대로 사용해야 합니다.let cached = null;const getArticle = async (url) => { const response = await fetch(url, { headers: cached ? { 'If-None-Match': cached.etag } : {}, }); if (response.status === 304) { if (!cached) throw new Error('재사용할 데이터가 없습니다.'); return { status: 304, data: cached.data }; } i..

웹 개발 2026.10.11

Firefox 157.0.1 업데이트: 보안 수정과 다운로드 오류 해결

Firefox 157.0.1이 2026년 10월 6일 배포됐습니다. 파일 처리 관련 보안 문제를 수정했고, macOS 다운로드 실패와 사이드바 오류도 함께 고쳤습니다. Firefox에서 파일을 내려받지 못하거나 사이드바가 멈추는 문제를 겪었다면 업데이트를 확인해 보세요.보안 수정은 파일 처리 구성요소의 보호 조치를 우회할 수 있는 문제인 CVE-2026-106016입니다. Mozilla는 심각도를 보통(moderate)으로 분류하고, 수정 버전을 157.0.1로 안내했습니다. 자세한 내용은 Mozilla 보안 권고에서 확인할 수 있습니다.함께 고친 오류macOS에서는 저장 위치를 매번 묻도록 설정했을 때 다운로드가 실패하는 문제가 있었습니다. Firefox에 다운로드 폴더 접근 권한이 없는 경우 발생하던..

IT정보 2026.10.10

fetch 요청에 타임아웃과 취소 기능 넣기

API 응답이 늦어서 로딩 표시가 계속 남는 경우가 있습니다. 일정 시간이 지나면 요청을 취소하도록 fetch에 AbortSignal.timeout()을 넣으면 됩니다. 아래 코드는 500ms 안에 JSON을 읽지 못하면 오류를 던집니다.const getWithTimeout = async (url, timeoutMs = 500) => { const response = await fetch(url, { signal: AbortSignal.timeout(timeoutMs), }); if (!response.ok) { await response.body?.cancel(); throw new Error(`HTTP ${response.status}`); } return await resp..

웹 개발 2026.10.08

개발자로서 백엔드를 훨씬 더 빠르게 구축하는 7가지 실용적인 방법 (번역)

백엔드 개발은 다양한 선택지 때문에 부담스럽게 느껴질 수 있습니다. 하지만 적절한 도구와 접근 방식을 조합하면 개발 속도를 높이고 강력한 애플리케이션을 훨씬 빠르게 구축할 수 있습니다.오늘은 백엔드를 구축하는 7가지 실용적인 방법을 살펴보겠습니다. 각 방법은 강력한 프레임워크, 도구, 라이브러리 조합을 포함하고 있습니다. 이 목록은 아마 놀라움을 줄 것입니다. 1. Encore를 백엔드 프레임워크로 사용하기 확장 가능한 애플리케이션을 구축할 때, 클라우드 서비스를 활용하면 복잡한 인프라를 관리하고 반복적인 작업을 수행해야 하는 등 개발자 경험이 저하되는 경우가 많습니다. Encore는 이러한 문제를 해결하는 오픈 소스 백엔드 프레임워크로, TypeScript와 Go를 지원합니다.앱 내에서 타입 안정성이 ..

IT정보 2025.02.01

금융권에서 GraphQL을 사용하는 방법 (번역)

GraphQL은 독특하고 강력한 방식으로 데이터를 연결하는 매우 강력한 쿼리 언어입니다. GraphQL의 가장 흥미로운 사용 사례 중 하나는 은행 산업으로, 다양한 데이터 소스와 사용 사례에 걸쳐 놀라운 가치와 통찰력을 제공합니다. 아래에서 GraphQL과 은행에서의 몇 가지 사용 사례를 살펴보겠습니다. 자세히 살펴보겠습니다!GraphQL이란?은행업에서 GraphQL 의 구체적인 예를 논의하기 전에 GraphQL이 무엇인지 간단히 살펴보겠습니다. GraphQL 은 클라이언트가 데이터 측면에서 필요한 것을 정확히 요청하고 필요한 방식으로 요청할 수 있는 API용 쿼리 언어입니다. GraphQL은 원래 2012년 Facebook에서 개발했으며 2015년 오픈소스 프로젝트로 출시되었습니다. 그 이후로 핵심 기..

IT정보 2024.12.05

[백준 BOJ 2606번] 바이러스 (C / C++ , Python ) [DFS/BFS]

https://www.acmicpc.net/problem/2606시간 제한메모리 제한제출정답맞은 사람정답 비율1초128MB19657393063+283646.126% 문제신종 바이러스인 웜 바이러스는 네트워크를 통해 전파된다. 한 컴퓨터가 웜 바이러스에 걸리면 그 컴퓨터와 네트워크 상에서 연결되어 있는 모든 컴퓨터는 웜 바이러스에 걸리게 된다.예를 들어 7대의 컴퓨터가 과 같이 네트워크 상에서 연결되어 있다고 하자. 1번 컴퓨터가 웜 바이러스에 걸리면 웜 바이러스는 2번과 5번 컴퓨터를 거쳐 3번과 6번 컴퓨터까지 전파되어 2, 3, 5, 6 네 대의 컴퓨터는 웜 바이러스에 걸리게 된다. 하지만 4번과 7번 컴퓨터는 1번 컴퓨터와 네트워크상에서 연결되어 있지 않기 때문에 영향을 받지 않는다.어느 날 1번 ..

백준 2024.11.18

Chrome 132 베타가 출시됩니다!

별도의 언급이 없는 한 다음 변경사항은 Android, ChromeOS, Linux, macOS, Windows용 최신 Chrome 베타 채널 출시에 적용됩니다. 제공된 링크 또는 ChromeStatus.com의 목록에서 여기에 나열된 기능에 대해 자세히 알아보세요. Chrome 132는 2024년 11월 13일 현재 베타 버전입니다. 데스크톱의 Google.com 또는 Android의 Google Play 스토어에서 최신 버전을 다운로드할 수 있습니다.CSS이 출시에서는 두 가지 새로운 CSS 기능이 추가되었습니다.CSS 앵커 포지셔닝: inset 및 margin 속성에서 anchor-size() 허용원래 anchor-size()는 크기 조절 속성에서만 허용되었습니다. 인셋과 여백에서도 anchor-s..

IT정보 2024.11.18

[백준 BOJ 1008번] A/B(C / C++, Python ) [구현]

https://www.acmicpc.net/problem/1008시간 제한메모리 제한제출정답맞은 사람정답 비율2초128 MB79985527101922483134.503% 문제두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오. 입력첫째 줄에 A와 B가 주어진다. (0  출력첫째 줄에 A/B를 출력한다. 실제 정답과 출력값의 절대오차 또는 상대오차가 10-9 이하이면 정답이다. 예제 입력 11 3예제 출력 10.33333333333333333333333333333333 풀이문제는 간단합니다.C++의 경우 더 높은 정밀도를 위해 setprecision을 사용하여 소수점 15자리까지 출력, 파이썬 또한 15자리까지 출력시키도록 했습니다. 코드C++#include #include int ..

백준 2024.11.17

코딩 기술을 향상시키는 최고의 오픈소스 프로젝트들🔥

오픈소스 프로젝트는 기술 세계를 바꾸어 놓았으며, 개발자에게 막대한 비용 없이 혁신적인 솔루션을 만들 수 있는 도구와 플랫폼을 제공합니다. 코딩에 열정적이거나 가장 영향력 있는 상위 오픈소스 프로젝트에 대해 궁금한 경우 이 블로그가 적합합니다.여기서는 기술의 미래를 형성하는 몇몇 대표적인 오픈소스 프로젝트를 살펴보겠습니다.최고의 파이썬 오픈소스 프로젝트단순성과 다재다능함으로 유명한 Python 덕분에 수많은 영향력 있는 오픈소스 프로젝트가 탄생했습니다.최고의 Python 오픈소스 프로젝트 중 일부는 다음과 같습니다.DjangoDjango 는 빠른 개발을 용이하게 하고 깔끔하고 효율적인 디자인 관행을 촉진하도록 설계된 고급 Python 웹 프레임워크입니다. 개발자가 복잡하고 데이터베이스 중심의 웹사이트를 ..

IT정보 2024.11.17

좋은 소프트웨어 개발 습관

이 글은 조언이 아니라, 제게 효과가 있었던 내용입니다.나쁜 습관을 들이는 것은 쉽지만 좋은 습관을 만드는 것은 어렵습니다. 저에게 효과가 있는 것을 적어두면 열심히 개발한 좋은 습관을 유지하는 데 도움이 됩니다. 현재 개발 중인 제품에서 속도를 높이고 적절한 수준의 품질을 유지하는 데 도움이 된 10가지 사항을 순서 없이 나열해 보겠습니다.커밋을 작게 유지하면 "커밋을 작게 유지"하는 것이 조금 지나치지 않을까 하는 생각이 들 수 있습니다. 특정 변경 사항을 언제 되돌려야 할지 알 수 없고, 6일 전에 버그를 도입한 곳을 알고 병합 충돌의 야만스러움을 겪지 않고 해당 커밋만 되돌리는 행복감이 있습니다. 제 경험 법칙: 소프트웨어 컴파일은 커밋 가능해야 합니다.Kent Beck의 지혜로운 성스러운 말씀을..

카테고리 없음 2024.11.15