Spring Web MVC - HTTP 요청 RequestMapping
·
Spring
Spring Boot의 @RequestMapping은 Spring MVC에서 HTTP 요청을 특정 컨트롤러 메서드에 매핑하기 위해 사용됩니다. 웹 애플리케이션 개발에서 URL 경로와 해당 경로를 처리할 메서드를 연결하는 중요한 어노테이션입니다.1. @RequestMapping의 기본 개념역할: HTTP 요청(예: GET, POST, PUT, DELETE 등)을 특정 컨트롤러 클래스나 메서드에 매핑합니다.적용 위치:클래스 레벨: 기본 URL 경로 설정.메서드 레벨: 세부 경로 및 HTTP 메서드 설정.2. 주요 속성 (Attributes)속성설명예시value 또는 path요청 URL 경로를 지정. 단일 경로나 배열 형태로 가능.@RequestMapping("/users")methodHTTP 메서드 지정 (..
SpringBoot 웹 애플리케이션의 MVC 패턴
·
Spring
MVC의 철학적 기반역할 분리의 중요성각 구성 요소가 자신의 책임만 다하면 다른 요소가 변경되더라도 최소한의 영향을 받습니다.애플리케이션의 복잡성을 줄이고, 디버깅과 유지보수를 용이하게 합니다.MVC의 핵심은 "하나의 요소는 하나의 역할만 수행해야 한다"는 원칙에서 출발합니다. 이는 소프트웨어 개발의 관심사 분리(Separation of Concerns) 원칙과 직결됩니다.사용자와 시스템의 상호작용 모델링MVC는 이러한 상호작용을 단계적으로 나누어 체계적으로 정리합니다.사용자는 단순히 데이터를 요청하거나 입력하지만, 시스템 내부에서는 이를 처리하고 응답하기 위해 다양한 로직이 수행됩니다.1. Model (모델)개념:모델은 애플리케이션의 데이터와 그 데이터를 처리하는 비즈니스 로직을 담당합니다.데이터베이스..
답글이 있는 게시판 만들기
·
Spring
1. 설계 개요1-1. 주요 필드 정의필드명설명seq글번호(순서). 게시판의 모든 글(댓글, 답글 포함)에 대해 고유한 번호. 자동 증가 (AUTO_INCREMENT).grp글그룹. 하나의 글과 그에 속한 모든 답글이 동일한 grp 값을 가짐.grps그룹 내 순서. 같은 그룹(grp) 내에서의 정렬 순서를 나타냄.grpl그룹 내 깊이. 댓글은 0, 답글은 1 이상으로 계층적 깊이를 나타냄.2. 테이블 구조2-1. 테이블 생성rep_board1 테이블은 댓글과 답글을 포함한 계층적 데이터를 관리합니다.CREATE TABLE rep_board1 ( seq INT AUTO_INCREMENT PRIMARY KEY, -- 고유 글번호 grp INT NOT NULL, ..
JSP로 페이징 구현하기
·
Spring
1. 변수 설명페이지 관련 변수변수명설명cpage현재 페이지 번호 (기본값: 1).recordPerPage한 페이지에 표시할 데이터 수 (예: 10개).blockPerPage한 화면에 표시할 페이지 블록 수 (예: 5개).totalRecord전체 데이터 개수.totalPage전체 페이지 수 (총 데이터 수를 페이지당 데이터 수로 나눈 값).skip현재 페이지에서 건너뛸 데이터 수 ((cpage - 1) * recordPerPage).2. 계산식 분석전체 페이지 계산전체 데이터를 기준으로 필요한 페이지 수를 계산합니다. (totalRecord - 1)로 계산하면 전체 데이터가 recordPerPage로 나누어떨어질 때도 올바른 페이지 수를 얻을 수 있습니다.totalPage = ((totalRecord -..
Spring Security JWT 5 : DB 연결 및 Entity 작성
·
Spring/Spring Security - JWT
데이터베이스 종류와 ORM회원 정보를 저장하기 위한 데이터베이스는 MariaDB 엔진의 데이터베이스를 사용한다. 접근은 Spring Data JPA를 사용한다.데이터베이스 의존성 주석 해제목차 2번에서 진행했던 build.gradle의 Spring Data JPA 및 MariaDB Driver 의존성 주석을 해제한다.변수 설정DB 연결 설정 : application.properties# MariaDB settingspring.datasource.driver-class-name=org.mariadb.jdbc.Driverspring.datasource.url=jdbc:mariadb://localhost:3306/jwtspring.datasource.username=rootspring.datasource.pa..
Spring Security JWT 4 : POSTMAN 설치
·
Spring/Spring Security - JWT
API 서버와 요청 클라이언트API 서버는 웹 서버와 달리 서버측으로 요청을 보낼 수 있는 페이지가 존재하지 않고 엔드 포인트만 존재하기 때문에 요청을 보낼  API 클라이언트가 필요하다.POSTMAN공식 홈페이지 주소https://www.postman.com/downloads/ Download Postman | Get Started for FreeTry Postman for free! Join 35 million developers who rely on Postman, the collaboration platform for API development. Create better APIs—faster.www.postman.comPOSTMAN 호출
Spring Security JWT 3 : SecurityConfig 클래스
·
Spring/Spring Security - JWT
SecurityConfig 클래스 설명스프링 시큐리티의 인가 및 설정을 담당하는 클래스이다. Security Config 구현은 스프링 시큐리티의 세부 버전별로 많이 상이하다. (지금은 스프링 시큐리티 6.2.1 버전으로 구현) 스프링 시큐리티 시리즈 : 버전별 Security Config 구현 방법https://www.youtube.com/watch?v=NdRVhOccuOsSecurity Config 클래스 기본 요소 작성시큐리티 JWT 구현을 위한 Config 클래스의 일부분 작성.먼저 기본적인 설정만 진행하고 프로젝트를 진행하면서 커스텀 필터 요소들을 추가 구현 예정. SecurityConfigpackage com.example.springjwt.config;import org.springframe..
Spring Security JWT 2 : 프로젝트 생성 및 의존성 추가
·
Spring/Spring Security - JWT
의존성필수 의존성LombokSpring WebSpring SecurityS1pring Data JPAMySQL Driver데이터베이스 의존성 주석 처리임시로 주석 처리 진행 (스프링 부트에서 데이터베이스 의존성을 추가한 뒤 연결을 진행하지 않을 경우 런타임 에러 발생)JWT 필수 의존성JWT 토큰을 생성하고 관리하기 위해 JWT 의존성을 필수적으로 설정해야 한다.설정은 build.gradle을 통해 진행하며 이때 버전을 선택하여 적용. JWT 0.12.3 버전 : build.gradledependencies { implementation 'io.jsonwebtoken:jjwt-api:0.12.3' implementation 'io.jsonwebtoken:jjwt-impl:0.12.3' i..
Spring Security JWT 1 : 목표 및 동작 원리
·
Spring/Spring Security - JWT
실습 목표스프링 시큐리티 6 프레임워크를 활용하여 JWT 기반의 인증/인가를 구현하고 회원 정보 저장(영속성)MariaDB 데이터베이스를 활용한다.서버는 API 서버 형태로 구축한다. (웹 페이지를 응답하는 것이 아닌 API 클라이언트 요청을 통해 데이터 응답만 확인함)구현인증 : 로그인인가 : JWT를 통한 경로별 접근 권한회원가입JWT 인증 방식 시큐리티 동작 원리회원 가입 : 내부 회원 가입 로직은 세션 방식과 JWT 방식의 차이가 없다.로그인 (인증) : 로그인 요청을 받은 후 세션 방식은 서버 세션이 유저 정보를 저장하지만 JWT 방식은 토큰을 생성하여 응답한다.경로 접근 (인가) : JWT Filter를 통해 요청의 헤더에서 JWT를 찾아 검증을 하고 일시적 요청에 대한 Session을 생성한..
MVC 패턴이란?
·
Spring
MVC 패턴(Model-View-Controller)은 소프트웨어 아키텍처 패턴 중 하나로, 애플리케이션을 모델(Model), 뷰(View), 컨트롤러(Controller) 세 가지 역할로 나눠서 구성하는 방식입니다. 이 패턴은 코드의 재사용성, 유지보수성, 확장성을 높이는 데 유용하며, 특히 웹 애플리케이션 개발에서 널리 사용됩니다.MVC 패턴의 구성 요소와 역할1. Model (모델)애플리케이션의 핵심 데이터와 비즈니스 로직을 담당합니다.데이터베이스와 상호작용하여 데이터를 가져오거나 저장합니다.상태를 저장하고 관리하며, 변경 사항을 알릴 수 있습니다.역할:데이터를 정의하고 관리 (예: 객체, 데이터베이스 레코드).비즈니스 로직 실행.뷰나 컨트롤러가 요청한 데이터를 제공합니다.2. View (뷰)사용자..