분류 전체보기

· Spring
들어가기이전 포스팅에서 Spring Boot로 이메일 인증 요청 API를 구현했다.이번에는 인증 코드에 만료 시간을 부여해서 Redis를 통해 인증 코드를 관리하는 로직을 추가하려고 한다.먼저 Redis에 대해 가볍게 알아보자 !      💡 Redis란?Redis (Remote Dictionary Server): Key-Value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 관리 시스템이다.데이터베이스, 캐시, 메시지 브로커로 사용되며, 인메모리(In-Memory) 데이터 구조를 가진 저장소이다.     ✔️ 인메모리(In-Memory) 데이터 구조란?컴퓨터 메인 메모리(RAM)에 데이터를 올려서 사용하는 구조이다.SSD, HDD 같은 저장 공간에서 데이터를 ..
· Spring
들어가기 SpringBoot와 Redis를 사용해서 이메일 인증하는 API를 구현하려고 한다. 차근차근 시작해보자 !! 💡 Google SMTP 본 포스팅에서는 Google SMTP를 사용할 것이다. SMTP(Simple Mail Transfer Protocol)란? : 전자 메일 전송을 위한 표준 프로토콜이다. 즉, 인터넷에서 이메일을 전송하기 위해 사용되는 프로토콜이다. Google SMTP는 구글에서 구글 계정만 있으면 무료로 메일을 발송할 수 있도록 제공해 주는 서버이다. 이메일 인증 코드를 전송해 주는 API를 위해 Google SMTP를 사용할 것이다. 먼저, SMTP를 사용할 구글 계정을 설정해주어야 한다. ✔️ Google SMTP 계정 설정 구글 계정에 로그인한 후, Google 계정 관..
· Server
들어가기 HTTP는 stateless와 connectionless 한 특성을 가지기 때문에, 상태와 접속 정보가 유지되지 않는다. 따라서, 서버에서 클라이언트를 식별(인증) 하기 위한 방법이 필요하다. 인증 방식에는 서버 기반의 인증 방식과 토큰 기반의 인증 방식이 존재한다. JWT를 알아보기 전에 먼저 인증 방식에 대해 알아보자 💡 서버 기반 인증 방식 vs 토큰 기반 인증 방식 ✔️ 서버 기반 인증 방식 : 세션(Session), 쿠키(Coockie) 서버 기반 인증 방식은 서버 측에서 클라이언트의 정보를 기억하기 위해 세션을 유지하고, 세션을 메모리나 디스크, 데이터베이스 등을 통해 관리하는 방법이다. 클라이언트로부터 요청을 받으면 상태 정보를 저장/유지해야 하기 때문에 stateful 한 구조이다..
· Spring
💡 Spring Security 란? Spring Security는 인증과 인가, 권한 등의 애플리케이션 보안을 담당하는 Spring 하위 보안 프레임워크이다. ✔️ 인증(Authentication)과 인가(Authorization) 인증(Authentication) : 접근하려는 사용자가 누구인지 확인하는 절차 인가(Authorization) : 인증된 사용자가 요청한 자원에 접근이 가능한지 결정하는 절차 쉽게 생각해보면, 웹 사이트에 접근하기 위해 로그인을 하는 것이 인증 절차이고, 로그인 한 사용자가 '내 정보 수정하기' 요청을 했을 때 접근이 가능한지 자원에 대한 권한을 확인하는 것이 인가 절차이다. Spring Security는 기본적으로 인증 절차를 거친 후에 인가 절차가 진행되며, 인가 절차..
· ETC
💡Agile 방법론 애자일(Agile) 방법론은 소프트웨어 개발 방법 중 하나이다. 신속한 반복 작업을 통해 소프트웨어를 개발하고 지속적으로 제공하는 방법으로, 고객 요구 사항의 변화에 대해 유연하고 빠르게 대응하는 민첩한(Agile) 개발 방법이다. ✔️ Agile 특징 프로세스나 툴보다 개인과 개인간의 상호작용이 우선이다. 포괄적인 문서보다 동작하는 소프트웨어가 우선이다. 계약 협상보다 고객과의 협업이 우선이다. 계획을 따르는 것보다 변화에 대응하는 것이 우선이다. Agile 방법론에는 스크럼(Scrum)과 칸반(Kanban)이 있다. 본 포스팅에서는 스크럼에 대해 자세히 알아보려고 한다. 💡 스크럼(Scrum)이란? 애자일(Agile) 소프트웨어 개발 방법론 중 하나로, 프로젝트를 진행할 때 유연성..
· JPA
들어가기 SQL에는 표준 ANSI SQL이 존재하고, DBMS Vendor(공급 업체)인 MS-SQL, Oracle, MySQL, PostgreSQL에서 제공하는 각각의 고유한 SQL이 존재한다. ANSI SQL은 모든 DBMS에서 공통적으로 사용 가능한 표준 SQL이지만, DBMS Vendor에서 제공하는 SQL은 해당 DBMS에서만 사용이 가능하다. ORM은 DB에 맞는 SQL문을 자동으로 생성해주기 때문에 해당 프로젝트에서 어떤 DBMS를 사용하는지 설정해주어야 한다. 이러한 설정이 Dialect이다. 💡 Dialect 이란? JPA의 가장 큰 특징이자 장점은 객체간 관계를 바탕으로 SQL 쿼리를 자동으로 생성해서 DB에 전달해주는 것이다. 하지만, DB의 종류는 다양하고 각각 DB마다 SQL 문..
· Database
💡 Flyway 란? Flyway : 데이터베이스 형상 관리를 위한 오픈 소스 데이터베이스 마이그레이션 툴이다. * 형상 관리(Software Configuration Management) - 소프트웨어의 변경 사항을 체계적으로 추적하고 통제하는 것 * 데이터베이스 마이그레이션 툴 - 데이터베이스의 변경 사항을 추적하고 업데이트나 롤백을 쉽게할 수 있도록 하는 도구 소스 코드의 이력을 Git으로 관리하듯, 데이터베이스 이력을 Flyway로 관리한다고 생각하면 이해하기 쉽다 ! ✔️ 데이터베이스 형상 관리의 장점 데이터베이스 스키마(Schema) 변경 이력이 남는다. 데이터베이스에서 문제가 발생했을 때, 데이터베이스를 수정한 변경 이력이 남아있으면 문제의 원인을 파악할 수 있어서 문제 해결에 도움이 된다...
· Spring
들어가기 Spock 프레임워크는 BDD를 위한 테스팅 프레임워크이다. Spock 프레임워크에 대해 알아보기 전에 먼저, BDD란 무엇인지 알아보도록 하자 ! 💡 BDD(Behavior-Driven Development) 란? BDD(Behavior-Driven Development) - 행동 주도 개발로, 사용자의 행위를 미리 예상하고 결과를 테스트하는 개발 방식이다. - TDD에서 파생된 개발 방법론이다. ✔️ BDD 개발 절차 BDD는 Given-When-Then 세 가지로 테스트를 진행하는 정형화된 형식이 존재한다. 1. Given : 주어진 환경 시나리오 상에서 주어진 환경을 정의한다. 테스트에 필요한 환경을 설정하는 작업이다. When, Then 보다 상위에 위치해야 한다. 2. When : 행..
코냥이
'분류 전체보기' 카테고리의 글 목록 (3 Page)