HTTP란?
·
Backend Programming
HTTP란?HTTP(Hypertext Transfer Protocol)는 웹에서 데이터를 주고받기 위한 프로토콜입니다. 클라이언트(예: 웹 브라우저)가 서버에 요청을 보내고, 서버는 클라이언트에게 응답을 보냄으로써 웹 페이지, 이미지, 동영상 등을 전송하는 구조입니다. HTTP는 비상태적(stateless)이며, 연결이 끊어진 후에는 서버가 클라이언트의 이전 상태를 기억하지 못한다는 특징이 있습니다. 이를 보완하기 위해 세션이나 쿠키 같은 기술이 사용됩니다.HTTP의 주요 특징비상태성 (Stateless):HTTP는 비상태적이기 때문에, 각 요청은 독립적입니다. 서버는 이전 요청이나 응답에 대한 상태를 기억하지 않습니다. 클라이언트가 같은 웹사이트에 재접속할 때도 서버는 클라이언트의 이전 상태를 인식하지..
인터넷의 작동 원리
·
Backend Programming
인터넷이란?인터넷은 전 세계 컴퓨터들이 서로 연결된 거대한 네트워크입니다. 각 컴퓨터, 서버, 모바일 기기 등은 인터넷을 통해 서로 데이터를 주고받을 수 있습니다. 인터넷은 여러 네트워크가 결합된 네트워크의 집합체로, 이 네트워크들은 다양한 장치와 프로토콜을 통해 연결됩니다.IP 주소와 도메인 이름인터넷에서 모든 장치는 IP 주소라는 고유한 번호를 가지고 있습니다. 이 IP 주소는 각 장치를 식별하며, 데이터를 보낼 곳을 지정하는 역할을 합니다. 예를 들어, 우리가 웹사이트를 방문할 때, 웹사이트의 서버도 고유의 IP 주소를 가지고 있습니다.하지만 숫자로 이루어진 IP 주소를 기억하는 것은 매우 어렵기 때문에 도메인 이름이라는 인간이 기억하기 쉬운 이름 체계를 사용합니다. 예를 들어, www.google..
HTTPS에 대해서
·
Backend Programming
HTTP와 HTTPS의 차이점HTTP: HTTP는 데이터를 암호화하지 않습니다. 즉, 클라이언트(브라우저)와 서버 간에 주고받는 데이터가 평문(Plain Text) 상태로 전송됩니다. 따라서 네트워크 상에서 중간에 누군가가 데이터를 가로챌 경우, 내용을 쉽게 읽을 수 있습니다.HTTPS: HTTPS는 데이터를 암호화합니다. HTTPS는 SSL/TLS(보안 소켓 계층 또는 전송 계층 보안) 프로토콜을 사용하여 브라우저와 서버 간의 데이터를 암호화한 후 전송합니다. 이를 통해 중간에서 누군가가 데이터를 가로채더라도 내용을 읽을 수 없도록 보호됩니다. 이를 종단 간 암호화라고 합니다.그렇다면 HTTPS를 사용하는 목적은?API 요청이 안전하게 전송되도록 보장하기 위해서 사용되고, 서버는 따로 요청을 보낸 사용..
JWT을 사용하여 로그인 서비스 만들기
·
Backend Programming
서론캘린더 프로젝트에서 회원가입 기능을 먼저 구현한 후, 로그인 기능을 추가하기 위해 공부하며 작성했습니다. 그 중에서도 로그인할 때 회원을 어떻게 인증할 지에 대해서 검색을 시작해서 Spring Security를 사용하며 JWT를 사용한 인증을 선택했습니다. 특히 JWT의 공부를 시작할 때 버전으로 인해 검색이 되게 어려움이 있었는데 아래의 버전을 사용했으니 참고하시면 되겠습니다. java 17, SpringBoot 3.3.1, Spring 6.1.10, JWT 0.11.5 JWT에 대해서JWT란?JWT (JSON Web Token)는 인증과 정보를 안전하게 전송하기 위해 사용하는 개방형 표준 (RFC 7519)입니다. JWT는 주로 세 가지 구성 요소로 이루어져 있습니다.Header: 토큰의 유형과 ..
회원가입 서비스 만들기
·
Backend Programming
잡담캘린더 프로젝트에 회원을 추가해서 회원마다의 일정을 사용할 수 있도록 회원가입, 로그인에 대해 공부하고 배운 내용들을 정리해서 올려보고자 합니다. 작성된 내용들이 회원가입 서비스를 만들기 위해서 배우고 있는 개발자분들에게 도움이 되었으면합니다. 다만 저 또한 공부하고 작성하는 코드들이여서 부족한 내용이 있을 수도 있으니 참고 정도로 살펴보셨으면 합니다.회원 가입 만들기1. 이메일 검증//Controller@PostMapping("/register/users") public String createUser(@Validated @ModelAttribute UserDto.RegisterRequest userRequest, RedirectAttribut..
DTO에서 NotNull설정이 되어 있을 때 PATCH를 어떻게 해줘야할까?
·
Backend Programming
현재 상황 및 문제점캘린더 프로젝트를 만들면서 일정 설정, 반복 설정, 알림 설정을 한 곳에서 받아 처리하려고 했습니다. 그러나 PUT을 사용하여 구현할 경우, 현 구조에서는 반복 설정이 바뀌지 않았음에도 반복 내용을 삭제하고 재등록해야 하는 문제가 있었습니다. 이를 해결하기 위해 PATCH를 사용하여 특정 기능만 수정할 수 있도록 하려고 했습니다. 그러나 일정 설정의 필수 정보들이 NotNull로 설정되어 있어, PATCH로 데이터를 보낼 때 어떻게 처리해야 할지 고민이 되었습니다.public class ScheduleDto { private int id; @NotNull private String title; private String description; @NotNull..