CS/Spring(38)
-
[게시판 프로젝트] 페이지네이션(Pagination) 구현
페이지네이션 기능을 제공하며,주로 페이지 네비게이션 바에 표시될 페이지 번호들을 계산하는 역할을 수행하는Spring 서비스 클래스인 PaginationService를 구현하고,Pagination기능이 적용되어야할 ArticleController클래스의 코드와 뷰도 수정해 봅시다!PaginationService 클래스 선언부@Service public class PaginationService {@Service: 이 어노테이션은 이 클래스가 서비스 계층의 역할을 수행하며, Spring의 빈(Bean)으로 등록된다는 것을 나타냅니다. 서비스 클래스는 주로 비즈니스 로직을 처리하는 곳입니다.public class PaginationService: PaginationService라는 이름의 공개(public) ..
2024.08.26 -
[게시판 프로젝트] ArticleRequest와 ArticleResponse를 사용하는 상황의 차이 이해하기, DTO를 따로 만들어 사용하는 이유
요청 응답 DTO를 사용하는 상황의 차이를 이해하고,왜 요청/응답을 DTO로 만들어서 사용하는지그 이점과 예시를 알아보자 1. ArticleRequest: 클라이언트에서 서버로 데이터를 전송할 때 사용사용 목적ArticleRequest는 주로 클라이언트(사용자)로부터 입력된 데이터를 서버로 전달받을 때 사용됩니다.예를 들어, 사용자가 게시글 작성 폼에 내용을 입력하고 제출할 때, 그 데이터는 ArticleRequest 객체로 매핑됩니다.즉, 사용자 입력 데이터를 서버가 받을 수 있도록 하기 위한 객체입니다.사용 예시게시글 작성: 사용자가 작성한 게시글의 제목, 내용 등을 서버로 전송할 때 ArticleRequest가 사용됩니다.게시글 수정: 기존 게시글을 수정하는 폼에서도 수정된 데이터를 받아올 때 사용..
2024.08.26 -
[게시판 프로젝트] ArticleController 코드 뜯어 보기를 통해서, 서비스계층과 레포지토리 DTO간 호출/응답 관계 이해하기
ArticleController의 코드를 뜯어보며,controller와 service, repository, DTO간어떻게 호출하고 응답하는지 관계를 알아보자ArticleController클래스 선언부@RequiredArgsConstructor: final로 선언된 모든 필드를 매개변수로 갖는 생성자를 자동으로 생성해줍니다. 따라서 ArticleService와 PaginationService가 생성자 주입을 통해 주입됩니다.@Controller: 이 클래스가 Spring MVC의 컨트롤러로 동작함을 나타냅니다. 웹 요청을 처리하고, 뷰(View)에 데이터를 전달하는 역할을 합니다.@RequestMapping("/articles"): 이 컨트롤러 내의 모든 메소드들은 /articles로 시작하는 URL에..
2024.08.26 -
[Spring/MVC] Controller, Repository, DTO, Domain, Config의 역할
Spring 프레임워크에서 애플리케이션의 구조를 형성하는`Controller`, `Repository`, `DTO`, `Domain`, 그리고 `Config`의 역할에 대해 알아봅시다 Spring MVC의 구조와 예제 시나리오예제 시나리오만약 `User`라는 엔티티를 관리하는 간단한 애플리케이션을 만든다고 가정해보겠습니다.사용자 정보를 조회하거나 생성하는 기능이 필요할 때, 각 요소는 다음과 같이 동작합니다.1. 사용자가 `/api/users/1`로 GET 요청을 하면, `UserController`가 요청을 처리합니다.2. 'UserController`는 `UserService`를 호출하여 사용자 정보를 가져오게 하고, 이때 `UserService`는`UserRepository`를 사용하여 데이터베이..
2024.08.26 -
[게시판 프로젝트] 뷰 구현(3) - Boostrap 프레임워크 라이브러리 사용해서 CSS 적용하기
Bootstrap 프레임워크 라이브러리를 사용해서뷰에 디자인(CSS)을 입혀보자(현재, 스프링 시큐리디가 자동생성해준 login & logout 페이지 이외는 디자인이 없는 상태) bootstrap 사이트 - DocsCreate a new index.html file in your project root- 기존 index.html 문서에 중복되는 부분을 제거하고 추가해준다. Hello, world! Include Bootstrap’s CSS and JS[주의] javascript 태그는 태그의 가장 마지막에 배치해야한다.마크업 문서가 순서대로 읽혀지면서, interpreting이 되기 때문에, 마지막에 배치해서 순서문제에서 자유로울 수 있다.만약 javascript를 상단에 배치하게 ..
2024.08.17 -
[게시판 프로젝트] 뷰 구현(2) - Spring Security를 사용하여 로그인 페이지 구현
Spring Security를 사용하여,loginController & logoutController를 따로 만들지 않고도 AutoConfig로 로그인과 로그아웃 페이지를 만들어 보자그리고 개발 중인 만큼 "임시"로 루트페이지에 Spring Security Login페이지가 바로 나오는 문제를SecurityConfig 클래스를 생성하여모든 요청에 대한 인증을 여는 방법으로 해결해보자! build-grade 추가implementation 'org.springframework.boot:spring-boot-starter-security'implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'implementation 'org.thymel..
2024.08.17