본문 바로가기

전체 글9

서비스에서 부동소수점 수 계산으로 인한 오차 해결 이야기 배경무역 ERP 앱에서 화물 중량 데이터를 톤 단위로 저장하고 있었습니다. 그런데 실제 화물은 톤 단위로 딱 떨어지지 않고, 8500kg처럼 kg 단위로도 거래됩니다. 소수점 아래 값이 필요했기 때문에 중량 컬럼에 부동소수점 타입을 사용해 8500kg을 8.5톤으로 저장하고 있었습니다. 문제는 화물 중량에 계산식을 적용해 단가를 보여 주는 화면에서 발생했습니다. 8.5로 보여야 하는 값이 8.49999999... 처럼 길게 표시된 것입니다.원인부동소수점 타입은 특성상 0.1이나 8.47 같은 소수를 정확히 표현하지 못하고, 가장 가까운 근사값으로 저장합니다. 예를 들어 8.47을 저장하면 실제로 저장되는 값은 8.47000000000000063948… 입니다. 그런데도 값을 조회하면 8.47로 보입니다... 2026. 10. 8.
Next.js 서버 React2Shell 보안취약점 침해 대응 회고 Next.js 서버가 뚫려 약 3일 동안 암호화폐 채굴에 쓰였습니다. 침입 경로는 React2Shell 취약점(CVE-2025-55182)으로 추정됩니다.이 글은 이상 징후를 발견한 순간부터 침입 경로를 추적하고 재발 방지책을 적용하기까지의 기록입니다.배경Next.js 애플리케이션을 AWS EC2에서 pm2로 실행해 운영하고 있었습니다. 그런데 어느 날부터 평소 1초 정도 걸리던 API 응답이 10초 정도로 느려졌습니다.원인 파악응답이 느려진 원익을 파악하기 위해 EC2의 자원 사용률을 조회해보니, 평소 5~10% 였던 CPU 사용률이 3일 전부터 99%를 유지하고 있었습니다. top 명령으로 프로세스 현황을 살펴보니 처음 보는 이름의 프로세스가 CPU 대부분을 점유하고 있었습니다.프로세스 이름을 AI에.. 2026. 10. 8.
Loki를 이용한 사내 로그 모니터링 시스템 구축기 배경사내에서 운영하는 서버가 늘어나면서 다음과 같은 문제가 생겼습니다.여러 서버를 거쳐 처리되는 API에서 오류가 나면, 원인을 찾기 위해 각 서버에 일일이 접속해 로그를 확인해야 했습니다.오류 건수는 늘어나는데 이를 바로 감지할 방법이 없어, 사용자가 제보한 후에야 알게 되는 오류가 많아졌습니다.API별 월간 호출 수나 평균 처리 시간 같은 통계가 필요한 일이 늘었지만, 로그가 서버마다 흩어져 있어 집계하기 어려웠습니다.로그 모니터링 시스템이란로그 모니터링 시스템은 여러 서버에서 발생하는 로그를 별도의 저장소에 모아 두고, 이를 조회하고 감시할 수 있게 해 주는 시스템입니다. 제공하는 기능은 다음과 같습니다.여러 서비스의 로그를 한 곳에서 통합 조회하는 기능서비스별, 키워드별, 날짜별로 로그를 필터링해.. 2026. 10. 7.
내부망에서 Docker 네트워크 대역 충돌 장애 해결 배경내부망 운영 환경에서 Docker Compose로 배포한 서버에 특정 PC 한 대만 접속하지 못하는 문제가 발생했습니다. 다른 PC에서는 잘 접속되는데, 이 PC에서 접속하면 타임아웃 오류가 났습니다. 편의상 이 글에서는 서버를 목적지, 접속이 안 되는 PC를 발신지라고 부르겠습니다.원인 탐색오류의 원인을 찾기 위해 확인한 사실은 다음과 같습니다.다른 PC에서는 목적지에 잘 접속됩니다.발신지에서 목적지가 아닌 다른 서버에는 잘 접속됩니다.발신지에서 요청을 보내도 목적지의 애플리케이션 로그에는 요청 기록이 남지 않습니다.목적지나 발신지 어느 한 쪽이 장애가 난 것이 아니라, 발신지에서 목적지로 접속할 때만 문제가 발생합니다.그리고 목적지의 애플리케이션 로그에서도 단서를 찾을 수 없었습니다. 그래서 네트.. 2026. 10. 7.
커머스 플랫폼 개발 전 알아야 할 법적 요구사항 한국에서 커머스 서비스를 운영하려면 거래 기록을 어떻게 보존할 지, 개인정보를 어떻게 다뤄야 하는 지 등 법률로 정해진 의무들이 있습니다. 이걸 모르고 서비스의 DB를 설계하면 나중에 설계를 갈아엎어야 할 수도 있기에 개발 전 반드시 짚고 넘어가야 합니다.이번 글에서는 그러한 법적 의무들에 대해 알아보도록 하겠습니다.본 글은 개발자 시점에서 정리한 자료이며, 법률 자문이 아닙니다. 작성 과정에서 법령 해석이나 조항 인용에 오류가 있을 수 있습니다. 실제 사업 진행 시에는 관할 기관 또는 전문가의 자문을 받으시기 바랍니다. 또한 법령은 개정될 수 있으므로 글 작성 시점(2026년 5월) 이후의 변경사항은 반영되어 있지 않을 수 있습니다. 법적 지위 구분법령에서는 커머스 플랫폼의 관계자들을 다음과 같이 구분.. 2026. 5. 21.
JWT 토큰에 대해 JWT 토큰이란?JWT 토큰은 Json Web Token의 약자로, 웹 통신 시 클라이언트의 인증에 사용되는 JSON 형태의 토큰 값입니다.최근, 서버 측에서 토큰 인증 방식으로 요청을 보낸 클라이언트의 신원을 확인할 때 JWT 토큰을 많이 사용합니다. JWT토큰은 Session 기반 인증과는 다르게 인증 시 서버측에서 별도의 DB 조회가 필요 없어 효율적이라는 장점이 있습니다.JWT 토큰의 구조eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyQGV4YW1wbGUuY29tIiwicm9sZXMiOlsiUk9MRV9BRE1JTiJdLCJleHAiOjE3NTA4MjYyODgsImlhdCI6MTc1MDczOTg4OH0.cSW65JDV0wTpSIfQV4KPE8kWuN.. 2025. 6. 29.