본문 바로가기

Base5

세션 인증과 JWT를 이용한 토큰 인증 방식 이번 포스팅에서는 세션과 JWT를 이용한 인증 방식에 대해서 알아보겠습니다. 세션과 JWT를 다루기 전에 먼저 알고 넘어가야하는 중요한 개념이 있는데요, 바로 인증과 인가입니다. 인증과 인가 인증 인증(Authentication)은 쉽게 말해서 로그인 이라고 할 수 있습니다. 클라이언트가 이 사이트에 가입된 회원임이 맞는지 아이디와 패스워드 등을 통해서 말 그대로 인증 받는 것이지요. 예를들어, Github에 이메일과 패스워드를 통해서 로그인을 했다고 가정해본다면 Github 서버는 사용자가 입력한 로그인 정보를 통해서 Github에 가입된 회원이 맞는지 검증하고 확인한 것입니다. 위와 같이 클라이언트가 이 사이트에 가입된 회원이 맞는지를 검증하는 과정을 인증 이라고 할 수 있습니다. 인가 인가(Auth.. 2023. 12. 14.
API URL의 올바른 설계와 HTTP 메서드 API URL의 올바른 설계와 HTTP 메서드 1. API URL의 올바른 설계 2. HTTP 메서드 3. HTTP 메서드의 속성 📌 API URL의 올바른 설계 많은 개발자들이 API의 URL을 설계할 때 다음과 같이 기능에 대한 이름으로 URL을 설계한다. 회원 정보 관리 API 설계 회원 목록 조회 : /read-member-list 회원 조회 : /read-member-by-id 회원 등록 : /create-member 회원 수정 : /update-member 회원 삭제 : /delete-member 해당 API URL을 설계는 좋지 못한 설계이다. API URL 설계는 리소스와 행위를 구분하여 설계해야 한다. 리소스(Resource)란 리소스란 웹 상에서 고유한 식별자를 가지고 있는 모든 개별 .. 2023. 6. 2.
객체지향 프로그래밍이란 알고 있지만 막상 설명할 수 없는 기본 개념을 정리하기 위해 포스팅을 하게 되었다. 📌 객체지향 프로그래밍 :: OOP 객체지향 프로그래밍(Object-Oriented Programming)은 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고, 그 객체들 간 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다. * 객체 : 현실에 무언가를 추상적으로 표현한 것 📌 OOP의 특징 1. 추상화 클래스들의 공통적인 특성(변수, 메서드)들을 묶어서 표현하는 것 2. 캡슐화 데이터 구조와 데이터를 다루는 방법들을 하나의 캡슐 형태로 결합시켜 데이터와 코드의 형태를 외부로부터 알 수 없게 하는 것 3. 상속 상위 요소의 특징을 하위 요소가 물려받는 것 4. 다형성 하나의 변수명, .. 2023. 5. 11.
Layered 아키텍처와 SOLID 원칙 Layered 아키텍처란? 크게 3가지 계층으로 분리할 수 있다. Controller 클라이언트 요청과 응답을 담당하는 계층 클라이언트 요청에 대한 유효성 체크를 하는 계층 UI 계층 Service 비즈니스 로직에 연관된 계층 Repository 데이터 베이스 접근 계층 InfraStructure 레이어로도 사용된다. Layered 아키텍처의 장점 구현이 단순하다. 레이어드 간의 작성되어야 할 코드가 구분되어 있어 생산성이 좋다. 빠르게 학습할 수 있다. Layered 아키텍처의 단점 데이터 베이스 우선적으로 설계가 이루어진다. Repository가 우선적으로 되는 이유는 DB 설계부터 우선적으로 되기 때문이다. DB 중심적이면 도메인 모델에 대한 상태 변경이 아닌 행동 중심으로 모델링이 된다. 결국 D.. 2023. 3. 21.