이메일 인증을 위한 Redis 설정과 문제 해결 과정
·
Backend Programming
이메일 인증을 위한 Redis 도입 배경회원가입 시 이메일 인증은 보안성과 신뢰성을 높이기 위한 중요한 과정입니다. 이를 구현하면서 "이메일 인증 정보는 오래 저장할 필요가 없으니, 영구 저장소가 아닌 일시적인 데이터를 저장할 수 있는 시스템을 선택하는 게 맞겠다"는 판단을 내렸습니다.이 과정에서 적합한 데이터베이스를 조사하던 중 Redis를 알게 되었고, 다음과 같은 이유로 선택하게 되었습니다.Key-Value 형태의 NoSQL 데이터베이스: 복잡한 관계형 데이터를 다룰 필요가 없었기 때문입니다.일시적인 데이터 저장: 이메일 인증번호와 같은 데이터는 짧은 시간 동안만 유지되므로, Redis의 TTL(Time-To-Live) 기능이 적합했습니다. Redis를 사용하며 겪은 시행착오와 해결 과정시행착오와 ..
라우팅과 라우팅 테이블의 이해
·
Backend Programming
서론의문은 AWS의 RDS를 추가해주면서 생기게 되었습니다. 만들면서 연결에 대한 부분을 설정해줄 때 내가 이것들이 정확하게 뭔지 알고 설정을 하는 것인가 아니면 그냥 검색해서 나온 정보들로 그냥 따라서 만드는 것인가 확인했습니다. 아무래도 기본을 정확하게 이해하고 직접 설정을 해주는 편이 좋다고 생각해서 필요한 정보들을 공부하게 되었습니다.라우팅이란?라우팅은 네트워크 장치(예: 라우터)가 데이터를 최적의 경로로 목적지에 전달하는 과정입니다.데이터를 보내려면 어느 경로로 보낼지 결정을 해야되는데 그 경로 정보를 라우팅 테이블이라는 것에 저장합니다. 데이터는 목적지로 가는 동안 여러 개의 라우터를 거치며 여러 번의 라우팅을 수행합니다. 라우팅 테이블이란?패킷을 목적지로 보낼 때 어느 IP주소로 보낼지 저장..
JPA 영속성 컨텍스트
·
Backend Programming
서론JPA강의를 모두 듣고 배운 내용을 정리하고 프로젝트에 적용해주기 위해서 영속성 컨텍스트에 대해서 작성해보고자합니다. 이전에는 그냥 jpaRepository.save로 저장된 객체를 사용하거나 find로 찾아온 엔티티 객체를 사용하면 데이터베이스에 있는 객체에 접근할 수 있겠거니 했었는데 강의를 듣고 그 원리에 대해서 알게 된 것 같습니다. 이번 포스팅을 통해서 트랜젝션과 영속성 컨텍스트가 엔티티 객체를 어떻게 관리하는지 원리를 파악해서 더 효율적으로 엔티티를 관리할 수 있게 되는 계기가 되었으면 좋겠습니다.영속성 컨텍스트(Persistence Context)란?영속성 컨텍스트는 JPA(Java Persistence API)에서 엔티티 객체를 관리하는 일종의 저장소입니다. JPA는 애플리케이션과 데이..
빈은 어떻게 관리되어서 응답을 하는가?
·
Backend Programming
서론개발을 하다 보면 빈(bean)과 의존성 주입, 그리고 여러 클라이언트 요청을 처리하는 과정에서 혼란스러울 수 있습니다. 특히, 여러 사용자의 요청이 하나의 빈으로 처리되는 방식과 그 이유가 궁금해질 수 있습니다. 이 포스팅에서는 이러한 궁금증들을 해결하기 위해, 빈이 어떻게 관리되고 여러 요청을 처리하는지 그 흐름에 대해 작성하고자 합니다. 빈과 의존성 주입의 기본 개념빈(bean)이란 Spring 컨테이너에서 관리하는 객체를 말합니다. Spring 프레임워크는 애플리케이션에서 사용할 객체들을 빈으로 등록하고, 이들을 관리합니다. 빈은 기본적으로 싱글톤으로 관리되며, 이는 애플리케이션 내에서 해당 빈의 인스턴스가 단 하나만 존재한다는 뜻입니다. 이러한 구조는 메모리 사용을 최적화하고 성능을 높이는 ..
HTTP란?
·
Backend Programming
HTTP란?HTTP(Hypertext Transfer Protocol)는 웹에서 데이터를 주고받기 위한 프로토콜입니다. 클라이언트(예: 웹 브라우저)가 서버에 요청을 보내고, 서버는 클라이언트에게 응답을 보냄으로써 웹 페이지, 이미지, 동영상 등을 전송하는 구조입니다. HTTP는 비상태적(stateless)이며, 연결이 끊어진 후에는 서버가 클라이언트의 이전 상태를 기억하지 못한다는 특징이 있습니다. 이를 보완하기 위해 세션이나 쿠키 같은 기술이 사용됩니다.HTTP의 주요 특징비상태성 (Stateless):HTTP는 비상태적이기 때문에, 각 요청은 독립적입니다. 서버는 이전 요청이나 응답에 대한 상태를 기억하지 않습니다. 클라이언트가 같은 웹사이트에 재접속할 때도 서버는 클라이언트의 이전 상태를 인식하지..
인터넷의 작동 원리
·
Backend Programming
인터넷이란?인터넷은 전 세계 컴퓨터들이 서로 연결된 거대한 네트워크입니다. 각 컴퓨터, 서버, 모바일 기기 등은 인터넷을 통해 서로 데이터를 주고받을 수 있습니다. 인터넷은 여러 네트워크가 결합된 네트워크의 집합체로, 이 네트워크들은 다양한 장치와 프로토콜을 통해 연결됩니다.IP 주소와 도메인 이름인터넷에서 모든 장치는 IP 주소라는 고유한 번호를 가지고 있습니다. 이 IP 주소는 각 장치를 식별하며, 데이터를 보낼 곳을 지정하는 역할을 합니다. 예를 들어, 우리가 웹사이트를 방문할 때, 웹사이트의 서버도 고유의 IP 주소를 가지고 있습니다.하지만 숫자로 이루어진 IP 주소를 기억하는 것은 매우 어렵기 때문에 도메인 이름이라는 인간이 기억하기 쉬운 이름 체계를 사용합니다. 예를 들어, www.google..