[서버] 단일 장애 지점(SPOF)이란?개발/Programming / 2025. 2. 20.단일 장애 지점(SPOF)이란?단일 장애 지점(Single Point of Failure, SPOF) 이란 전체 시스템에서 제대로 동작하지 않는 경우, 전체 시스템이 중단되는 특정 구성 요소를 의미합니다. 서버와 네트워크, 프로그램 등 정보 시스템이 정상적으로 사용할 수 있는 정도를 가용성(Availability) 이라고 합니다. 가용성은 정상적인 사용 시간(Uptime)을 전체 사용 시간(Uptime+Downtime)으로 나누어 구할 수 있습니다. 이때, 가용성이 99.999% 처럼 높은 경우에 고가용성(High Availability, HA) 이라 합니다. 시스템이 고가용성을 만족하기 위해서는 SPOF를 식별하고, 개선하는 작업이 필요합니다.단일 장애점은 시스템구성 요소 중에서, 동작하지 않으면 전체..
[서버] 다중 서버 환경에서 세션 기반 인증 방식을 사용하는 경우 발생할 수 있는 문제개발/Programming / 2025. 1. 6.다중 서버 환경에서 세션 기반 인증 방식을 사용하는 경우에는 세션 불일치 문제가 발생할 수 있습니다. 만약 서버 A, B를 관리하고 있을 때, 로드밸런서는 사용자의 요청을 상황에 맞게 A, B 중 한 곳으로 전달합니다. 유효한 로그인 요청이 A 서버로 처음 도착하면 사용자에 대한 세션 정보는 A 서버에 저장됩니다. 이후에 해당 사용자의 또 다른 요청이 로드 밸런서에 도착했을 때, B 서버로 도착하게 되면 사용자의 세션 데이터가 존재하지 않기 때문에 요청이 제대로 처리되지 않습니다. 이를 세션 불일치 문제라고 합니다.세션 불일치 문제는 어떻게 해결할 수 있나요? 🤔세션 불일치 문제는 크게 3가지 방식으로 해결할 수 있습니다. 스티키 세션 방식, 세션 클러스터링 방식, 스토리지 분리 방식입니다.스티키 세션..
[CI/CD] Github Action, AWS로 Java 자동 빌드/배포하기개발/Programming / 2024. 1. 15.오늘은 Java로 개발한 프로젝트를 Github Action과 AWS의 서비스를 활용하여 빌드/배포 자동화를 해보도록 하겠습니다. CI/CD를 구축하는 방법은 다양하게 있습니다. 저는 그중 Github Action과 AWS의 CodeDeploy를 많이 활용하는데요. 구축 방법도 쉬울뿐더러, 한번 구축해 두면 프로젝트를 깃헙에 Push(merge)만 하여도 테스트와 배포를 자동으로 진행하는 덕분에 필수로 애정하며 도입하는 기술입니다. 현재 프로젝트를 함께 진행중인 세바개 팀에서도 Github Action과 AWS를 활용한 CI/CD를 도입하였습니다. 그래서 이번 게시글에서 위 기술을 활용한 CI/CD 구축 방법을 정리해보려고 합니다. 사용 기술 Java 17, Spring boot, Gradle Git, ..
[트러블 슈팅] '채식이들' 메인 페이지-제품 출력 에러 해결(java.lang.NullPointerException)개발/Programming / 2023. 4. 16.안녕하세요😎 백엔드 개발자 제임스입니다 :) 오늘은 채식이들 쇼핑 서비스에서 발생했던 에러와 해결 과정을 포스팅하도록 하겠습니다. '채식이들' 쇼핑 서비스는 2022년 9월에 협업 프로젝트로 개발했던 서비스입니다. 프로젝트를 진행할 당시에는 에러 없이 성공적으로 배포했다고 생각했습니다. 하지만 웹 사이트에 들어갔을 때, 제품이 출력되어야 하는 메인 페이지에서 불규칙적으로 전체 제품이 출력되지 않는 문제가 발생했었습니다. 문제를 인지하고, 몇 번을 테스트했을 때 로그인 이전에 기능들이 정상적으로 동작하지 않는 것을 확인했습니다. 처음 문제를 접했을 때는 'AWS 서버나 가비아의 저렴한 서비스를 이용한 것이 원인인가?'라는 안일한 생각으로 크게 신경 쓰지 않았습니다. 정말 바보 같은 생각이었습니다. 그 이후..
[SMTP] 메일 전송을 위한, Google Gmail SMTP 설정개발/Programming / 2023. 3. 21.안녕하세요😎 백엔드 개발자 제임스입니다 :) 최근에 스프링 부트로 웹을 개발하던 중 인증 메일 전송 기능을 구현하게 되었습니다. 항상 웹에서 회원가입을 진행할 때마다 받게 되는 인증 메일을 보면서, 구현 방법이 궁금했었습니다. 동시에 직접 구현해보고 싶다는 생각이 들었는데요. 이번에 기회가 되면서 자세하게 알 수 있었습니다. 오늘 포스팅과 다음 이어질 포스팅은 이메일 전송 기능을 구현한 방법에 대해서 정리하도록 하겠습니다. 먼저 오늘은 메일 전송을 위한 SMTP와 Gmail SMTP 설정 방법을 알아보도록 하겠습니다. SMTP 란? SMTP(Simple Mail Transfer Protocol)는 단순 전자우편 전송 프로토콜로 네트워크를 통해 전자우편(Email)을 전송하는 기술입니다. 해당 기술을 이용..
[프로그래밍] 자주 사용하는 정규식 표현 정리개발/Programming / 2023. 3. 8.안녕하세요😎 백엔드 개발자 제임스입니다 :) 오늘은 정규식 표현에 대해서 정리하도록 하겠습니다. 검증을 위해 유용하게 사용하는 정규식인데요. 그중 IP 주소, URL, email, Id, 패스워드, youtube 등, 자주 사용할 표현으로 정리했습니다. 1) IP 주소 IP 주소 (IPv4) ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$ IP 주소 (IPv6) ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$ IP 주소 (IP..