분류 전체보기 28

스프링부트(SpringBoot) 게시판 만들기 (9) - SQL 쿼리 로그 콘솔 출력

로그백(Logback) 적용하기  애플리케이션에 로그백(Logback)을 적용하여 SQL 쿼리가 실행되었을 때 콘솔에 쿼리 로그가 찍히도록 하는 것이 목표이다.   logback-spring.xml 추가하기 UTF-8 %d %5p [%c] %m%n UTF-8 %d %5p %m%n  코드를 보면 loge level를 DEBUG, INFO로 설정 되어 있는 것을 볼 수 있다.여기서 로그 레벨은 시스템의 이벤트나 오류를 기록할 때 그 중요도나 심각도를 나타내는 등급이다. 일반적으..

카테고리 없음 2024.07.06

스프링부트(SpringBoot) 게시판 만들기 (8) - Alert 메시지 처리하기

컨트롤러에서 Alert 메시지 처리하기  여태 구현한 CRUD 기능은 동기 방식이다. 동기 방식이란 사용자가 어떤 요청을 하면 그 요청으로 들어온 데이터를 서버(컨트롤러)에서 처리하여 다시 사용자에게 응답을 해주는 개념이다.  비동기/동기 차이는 제대로 이해해서 다음에 각잡고 정리해보자!  이번 글에서 구현할 Alert 메시지 기능은 동기 방식인 CRUD 기능과 같이 서버에서 데이터를 처리한 후, 페이지를 리다이렉트 하는 시점에 사용자에게 상황에 맞는 메시지를 전달할 것이다.  1) 메시지 처리용 DTO 클래스 생성package com.study.common.dto;import lombok.AllArgsConstructor;import lombok.Getter;import org.springframewo..

스프링부트(SpringBoot) 게시판 만들기 (7) - 게시글 삭제 기능 구현

게시글 삭제 기능 구현하기 PostController에 게시글 삭제하는 메서드 추가// 기존 게시글 삭제@PostMapping("/post/delete.do")public String deletePost(final Long id) { postService.deletePost(id); return "redirect:/post/list.do"} 게시글 번호(id)를 파라미터로 전달받아 postMapper에 정의한 delete쿼리가 실행되어 게시글이 삭제된다. 단, 물리적으로 아예 삭제를 시키는 것이 아니라 삭제 여부 값을 1로 바꾸어 화면에서 제외 시키는 것. 삭제 버튼에 onclick 이벤트 선언 (view.html)  선언한 이벤트 자바스크립트 함수 생성 (view.html)  confi..

스프링부트(SpringBoot) 게시판 만들기 (6) - 게시글 상세 정보 조회/ 수정 기능 구현

상세 글 조회 페이지 구현 PostController에 상세 페이지 조회 메서드 추가하기// 게시글 상세 페이지@GetMapping("/post/view.do")public String openPostView(@RequestParam final Long id, Model model) { PostResponse post = postService.findPostById(id); model.addAttribute("post", post); return "post/view";} 여기서 id는 PostMapper의 findById 쿼리의 WHERE 조건으로 사용되는 게시글 번호(PK)이다.id를 파라미터값으로 전달받아 해당 id를 통해 postService의 findPostById메서드로 상세 정..

스프링부트(SpringBoot) 게시판 만들기 (5) - 게시글 목록 조회 기능 구현

글 목록 페이지 구현 PostController에 목록 페이지 조회 메서드 추가// 게시글 목록 페이지@GetMapping("/post/list.do")public String openPostList(Model model) { List posts = postService.findAllPost(); model.addAttribute("posts", posts); return "post/list";} PostService의 findAllPost( )의 실행 결과를 "posts"라는 객체에 담는다. 그 다음 Model 인터페이스의 addAttribute( )를 이용해 "posts"라는 이름의 리스트 데이터를 화면으로 전달한다. 이후 리턴문에 선언된 경로의 html 파일을 찾아 화면에 출력한다...

스프링부트(SpringBoot) 게시판 만들기 (4) - 게시글 등록 기능 구현

게시글 서비스 클래스 만들기package com.study.domain.post;import lombok.RequiredArgsConstructor;import org.springframework.stereotype.Service;import org.springframework.transaction.annotation.Transactional;import java.util.List;@Service@RequiredArgsConstructorpublic class PostService { private final PostMapper postMapper; /** * 게시글 저장 * @param params - 게시글 정보 * @return Generated PK */ ..

스프링부트(SpringBoot) 게시판 만들기 (2) - DB 연결

Gradle 기반 스프링부트 프로젝트에 MySQL 연동하기 참고하던 블로그는 MariaDB를 사용하였지만 나는 기존에 MySQL을 사용했었고굳이 MySQL에서 파생된 MariaDB를 새로 깔아서 할 이유가 없다고 생각하여MySQL을 선택하였다.  연결하기 위해서는 데이터 소스 설정을 해주어 빈을 구성한다.소스 설정은 application.properties 파일에 DB 정보를 선언하는 방식을 사용하였다.# Spring DataSource (MySQL)spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.url=jdbc:mysql://localhost:3306/board?useSSL=false&characterEncodi..

[IntelliJ / Github] IntelliJ + Github 연동하기

* 깃허브에 레파지토리 생성한 상태* [VCS] - [Create Git Repository] 클릭 하여 Local 프로젝트 경로 설정해둔 상태에서 진행한다. 1. 상단에 [Git] - [Manage Remotes...] 클릭하기 2. + 버튼을 누르고 URL 입력칸에 새로 만든 레파지토리의 주소를 붙여넣는다. 로컬과 원격 저장소 연결 끝!   변경 내역 커밋&푸시하려는데 깃허브에는 브랜치 이름이 main이고 인텔리제이 로컬브랜치는 master로 다르길래 브랜치 업데이트 시켜 불러들였다. 그러면 오른쪽처럼 깃허브에 생성되어진 브랜치들이 뜰 것이다. 해당 브랜치로 체크아웃하면 로컬에도 생성이 됨! 엇... 체크아웃 버튼이 안떠서 일단은 로컬 master에서 원격 main 으로 push 했더니 거절당했다....

스프링부트(SpringBoot) 게시판 만들기 (1) - Intellij 개발환경 설정

프로젝트 기본 설정 Gradle :  Gradle과 Maven은 모두 자바 프로젝트를 빌드하고 관리하기 위한 도구이다. Maven은 XML 기반으로 작성되어 비교적 이해하기 쉽고 다양한 예제와 문서가 풍부하다. 그러나 라이브러리를 추가할 때, 각 라이브러리마다 최소 네 줄의 XML 코드를 작성해야 한다. 반면에 Gradle은 이러한 점을 보완하여, 라이브러리 추가 시 단 한 줄의 코드만 필요로 한다. 이를 통해 Gradle은 더 간결하고 효율적인 빌드 스크립트를 제공한다. 빌드 속도 또한 Gradle이 훨씬 빠르다는 점에서 선택하였다. Spring Boot :Spring과 SpringBoot 모두 자바 애플리케이션 개발을 위한 도구이다. Spring은 다양한 설정 방식(XML, 자바 설정, 애너테이션)을..