하나씩 차근차근
article thumbnail
예제 만들기 - 프로젝트 생성
Spring/Spring 핵심 원리 2023. 1. 14. 02:40

이번 포스트부터 인프런에서 김영한님의 스프링 핵심 원리 - 기본편을 들으면서 배운 내용을 정리해보려 합니다. 스프링을 공부하지 않고 스프링부트를 먼저 공부했기 때문에 스프링부트의 기본이 되는 스프링을 공부하며, 스프링부트가 왜 생겼는지를 알아보려고 합니다. 프로젝트 생성 프로젝트 개발환경은 다음과 같습니다. JAVA 11 Gradle (빌드도구) Packaging : jar Dependencies : 선택하지 않음 위와 같이 설정을 해서 프로젝트를 생성합니다. 프로젝트 생성이 완료되었으면 프로젝트를 실행시켜봅니다. 다음과 같이 콘솔창에 출력이 되면 완료됩니다. . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ ..

article thumbnail
게시판 만들기 - bootstrap 적용
Spring/Springboot 실습 2023. 1. 9. 17:18

이번 포스트에서는 앞에서 만든 question_list.html 과 question_detail.html 을 bootstrap 을 적용해 꾸며보겠습니다. 시작 bootstap 을 적용하기 위해서는 html 파일의 안에 다음과 같은 문구를 추가합니다. bootstrap 은 각 태그에 클래스 속성에 값을 줘서 css 설정을 할 수 있습니다. 1. question_list.html 제목 작성일시 2. quesiton_detail.html question_list.html question_list 의 테이블에 번호라는 열을 추가해서 각 질문마다 번호를 표시할 수 있도록 하였고, thymeleaf 의 유틸리티인 #temporals.format 을 사용해서 날짜 표시 형식을 지정했습니다. 번호 제목 작성일시 브라우..

article thumbnail
게시판 만들기 - 답변 등록 기능 추가
Spring/Springboot 실습 2023. 1. 9. 15:39

이번 포스트에서는 앞에서 만든 질문 상세페이지에서 답변을 등록할 수 있는 기능을 만들어보겠습니다. 답변 작성 폼 앞에서 만든 question_detail.html 안에 다음과 같이 답변을 작성하고 등록할 수 있는 폼을 만듭니다. 답변등록 버튼을 누르면 localhost:8080/answer/create/{id} 로 post 방식을 통해 textarea 에 입력된 내용을 content 라는 속성에 담아 전달합니다. springboot 를 실행시키고 접속을 해보면 다음과 같이 답변 등록 폼이 보입니다. AnswerController 작성 위에서 답변등록을 눌러 localhost:8080/answer/create/{id} 로 post 방식으로 데이터가 전달될때 처리를 할 수 있도록 AnswerControlle..

article thumbnail
Git - rebase 를 통한 로그관리
Git 2023. 1. 9. 15:04

이번 포스트에서는 rebase 를 사용해서 commit 로그를 정리해보겠습니다. 시작 먼저 다음과 같이 각각의 파일을 만들고 commit 합니다. git log 를 통해 commit 내역을 확인하면 다음과 같습니다. 로그인완료.txt 를 만드는 과정에서 여러 commit 들이 생긴것을 볼 수 있는데 이것을 깔끔하게 정리해보겠습니다. TEST@DESKTOP-6UMU4VH MINGW64 ~/Desktop/git_workspace/ex06 (master) $ git log commit 41d695d5c3df7c1c7930a485d530b390e3de7131 (HEAD -> master) Author: jeehwan Date: Mon Jan 9 14:52:27 2023 +0900 로그인완료 commit e8b4..

article thumbnail
게시판 만들기 - 질문 상세페이지 작성
Spring/Springboot 실습 2023. 1. 8. 06:39

이번 포스트에서는 localhost:8080/question/list 에 출력되는 질문을 클릭했을때 해당 질문의 내용, 댓글, 날짜 등을 상세하게 볼 수 있는 상세 페이지를 만들어보겠습니다. question_list 수정 먼저 question_list 페이지를 수정해서 질문의 제목을 클릭하면 페이지를 이동시키겠습니다. 제목 작성일시 thymeleaf 를 통해 th:href="@{주소}" 를 사용하면 html 의 하이퍼링크 기능을 사용할 수 있습니다. 우리는 각 질문의 id 값을 통해 해당 질문을 상세하게 볼 수 있는 페이지로 이동하겠습니다. 예를 들어 1번 질문은 "localhost:8080/question/detail/1" 을 입력해서 상세 페이지로 이동할 수 있습니다. Controller 작성 다음으..

article thumbnail
게시판 만들기 - service 작성
Spring/Springboot 실습 2023. 1. 8. 05:48

지금까지 우리는 데이터를 가져오기 위해 controller 에서 각 엔티티의 repository 를 통해 데이터베이스에 접근해서 데이터를 가져왔습니다. 시작 모듈화 만약 여러가지 작업을 통해 데이터를 가져와야 한다면 각 controller 에서 repository 를 여러번 사용하는것보다 service 라는 클래스를 만들어서 여러 repository 를 통한 작업들을 넣어두고 controller 에서는 service 만 가져오는것이 더 효율적입니다. 보안 controller 에서 repository 를 통해 바로 데이터베이스에 접근하는것은 보안상 안전하지 않습니다. 때문에 controller 와 repository 사이에 service 를 두고 데이터베이스 안전하게 접근하도록 합니다. 이번에는 앞에서 작..

article thumbnail
게시판 만들기 - 브라우저를 통한 데이터 출력
Spring/Springboot 실습 2023. 1. 8. 05:26

앞에서 Repository 를 통해 가져온 데이터를 Eclipse 콘솔창에 출력을 했습니다. 이번에는 데이터를 브라우저에 출력해보겠습니다. HTML 페이지 작성 데이터베이스에서 가져온 데이터를 보여주기 위해서는 html 페이지를 작성해야 합니다. 다음과 같이 templates 디렉토리에 question_list.html 파일을 생성합니다. 다음으로 앞에서 만든 QuestionController 를 수정해야합니다. model 을 통해 html 페이지에 데이터를 전달할 수 있는데 우리는 questionList 라는 변수에 데이터베이스에서 찾은 모든 데이터를 담아서 전송하겠습니다. package com.crud.controller; import java.util.List; import org.springfra..

article thumbnail
게시판 만들기 - Repository 작성
Spring/Springboot 실습 2023. 1. 6. 16:58

앞에서 만든 엔티티와 JPA 를 통해 데이터베이스에 테이블을 생성하였습니다. 데이터베이스에 저장된 데이터들을 처리하기 위해서는 JPA Repository 가 필요한데 Repository 는 데이터에 접근하는 메서드를 사용하기 위한 인터페이스로 Question 과 Answer Repository 를 작성해보겠습니다. 시작 먼저 위와 같이 repository 를 저장할 repository 패키지를 하나 만들어줍니다. 모든 repository 는 이 패키지 안에서 관리를 하겠습니다. QuestionRepository Repository 를 만들기 위해서는 다음 과정으로 진행합니다. JpaRepository 인터페이스 상속 제네릭 타입 지정 여기서 QuestionRepository 는 Question 엔티티에 ..