728x90 분류 전체보기58 [Spring boot]Spring Security와 JWT를 활용한 로그인 인증 시스템 구현 1. 인증 시스템 아키텍처 개요인증 시스템은 상태 비저장(Stateless) 아키텍처를 기반으로 한다.서버는 사용자의 세션을 유지하지 않으며, 모든 요청은 암호화된 토큰(JWT)을 통해 인증된다.이는 서버의 확장성을 높이고 클라이언트-서버 간의 의존성을 낮출 수 있다.주요 기술 스택:Spring Boot 3: 애플리케이션의 기반 프레임워크이다.Spring Security: 인증(Authentication)과 인가(Authorization)를 담당하는 핵심 보안 프레임워크이다.JWT (JSON Web Token): 인증 정보를 안전하게 전송하기 위한 토큰 기술이다. io.jsonwebtoken 라이브러리를 사용한다.JPA (Java Persistence API): 데이터베이스와 상호작용하며 User 및 R.. 2025. 8. 15. [Spring boot] 회원가입 기능구현 4(Service, Controller, Security 설정) Service 패키지이제는 Service 패키지를 구현할 차례이다.Service패키지는 아래와 같이 구성하였다.서비스 계층은 비즈니스 로직을 캡슐화하고, 트랜잭션 경계를 관리하며, 컨트롤러와 데이터 접근 계층(Repository) 사이에서 책임을 분리하는 역할을 한다.회원가입 기능에서는 UserService 인터페이스와 UserServiceImpl 클래스만 사용한다.UserServicepackage ssu.cromi.teamit.service;import ssu.cromi.teamit.DTO.auth.SignupRequest;import ssu.cromi.teamit.domain.User;public interface UserService { /** * 회원가입 처리 */ Use.. 2025. 7. 23. [Spring boot] 회원가입 기능구현 3(Repository, DTO) Repository 패키지데이터베이스와 직접 상호작용하는 계층으로, 애플리케이션의 비즈니스 로직(Service)에서 저장·조회·수정·삭제(CRUD) 작업을 추상화하는 부분이다.리퍼지터리는 interface이고 JpaRepository을 상속받는다.UserRepository여기서 사용하는 리포지터리는 UserRepository뿐이므로, 아래처럼 작성해주었다.package ssu.cromi.teamit.repository;import org.springframework.data.jpa.repository.JpaRepository;import ssu.cromi.teamit.domain.User;import java.util.Optional;public interface UserRepository extends.. 2025. 7. 23. [Spring boot] 회원가입 기능구현 2(Domain) 이제 본격적인 회원가입 기능 구현에 들어가보려고 한다.*application.properties와 build.gradle에 의존성 설정같은것은 생략했다.Domain패키지Domain 패키지에서는 DB 테이블과 1:1로 매핑되는 JPA 엔티티로 구성한다.User DB에는 User, Stack, Position, Organization으로 구성되어 있기 때문에 아래와 같이 코드를 작성하였다.User.java 소스코드package ssu.cromi.teamit.domain;import jakarta.persistence.*;import lombok.*;import java.time.LocalDateTime;import java.util.HashSet;import java.util.Set;//유저테이블 도메인@B.. 2025. 7. 15. [Spring boot] 회원가입 기능구현 1 (설계, 계층, ERD, SQL 스키마) 이번 Tema-IT 프로젝트에서 백엔드로서 가장 먼저 구상 및 구현한 기능은 회원가입 기능이다.예전에 진행한 플러터를 사용했던 앱 프로젝트와는 다르게, DB 구축부터 연결, 회원가입 로직을 대부분 구현했다는 것이 차이점이다. 회원가입 흐름원래 초기 기획했었던 회원가입 및 로그인 흐름은 아래와 같다.회원가입 정보를 받고 DB에서 중복 검사를 한 다음 이메일 인증을 거쳐서 통과하면 회원가입 성공 표시를 띄우는 방식이었다.그러나 현재 프로젝트에서 이메일 인증 기능은 삭제되었다.왜냐하면 우리 프로젝트에서는 uid(User ID)가 일종의 이메일과 같은 역할을 한다.uid는 고유값을 갖고 있고 내부 알림함도 존재하기 때문에 이메일을 사용해서 굳이 외부로 연락을 취할 이유가 없다는 것이 주된 이유였다.그래서 현재 .. 2025. 7. 15. IT 프로젝트 기획 시작 이번에 미디어 경영 학부에서 주체하는 IT 프로젝트 공모전에 참가하는 기회를 얻게 되었다.단순 프로젝트만 진행하고 끝내는 것이 아닌 배포까지 하여 프로덕트를 만들기까지의 과정이 목표인 공모전이기에 좀 더 의미가 있다고 생각한다. 이번 프로젝트는 백엔드에 대해 배워보고자 하는 동기로 시작하였다.팀원은 프론트엔드 2명, 백엔드 2명으로 구성하였고, 모두 처음 맡는 부분이라 어려움도 많겠지만 얻어가는 것 역시 많을 것이라고 생각한다. 그래서 뭐 만들건데?프로젝트의 주제는 프로젝트를 위한 팀 모집 & 매칭 플랫폼이다.이 프로젝트의 초기 아이디어는 나의 경험에서 나왔다. 처음 프로젝트라는 것을 해볼 때부터 느꼈던 것은, 프로젝트를 같이 할 사람을 찾기가 힘들다는 것이다.내가 처음 할 때는 아는 사람을 통해 물어보.. 2025. 6. 20. 이전 1 2 3 4 5 ··· 10 다음 728x90 반응형