[ 웹서비스 게시판 만들어보자 ]
- : 도메인 생성 : -> 코드로 객체를 만들기 board / post / comment 만들면됨
- 계층별로 나눈다 -> 객체가 각 폴더별로 나누어져서 폴더가 api 계층/ 서비스계층 / 데이터엑세스 계층을의미함 )
- 처음에 스프링 부트 주소창에 start.spring.io 에서 dependencies 로 thymeleaf 추가한다음 . 인텔리제이에서 resources/ templates에서 index.html 입력한뒤에 거기에 html 코드 작동하게 작성한다음 우리가 스프링프로젝트 시작하고 localhost:8080/index로 접속하면 우리가 작성한 html이 뜨는것을 SSR ( 서버사이드렌더링) 이라고함 , .
- view 를 통해 화면에 뜨게한다 ← 예를 들어서 HomeController 에서 아래와 같은 코드가 있다면 주소창에서 localhost:8080/home을 입력하면
우리가 Homecontroller 에서 GET 매핑으로 home 이 되어있고, 해당 함수에서 home이라는 스트링을 반환한다면 home.html을 우리 인텔리제이 프로젝트 경로인 resources / template/ 하위에서 home.html을 찾아서 보여주는것을 view를 통해 화면에 뜨게한다 라고함
- 각 도메인별 CRUD 구현
- Lombok 을 통한 어노테이션 코드 작성
게터나 세터 를 코드로 직접 getValue() setValue() 하는게아니라 @getter @setter 하고 클래그 위에 어노테이션달아서 자동생성해주는것
- 인텔리제이 폴더에 dto 추가
- aop (aspect orientation programing ) Aspect-Oriented Programming"의 약자로, 한국어로는 "관점 지향 프로그래밍" 로그를 달때 어디서든 import만하면 log. 클래스기능이 작동하도록 해주는것,
- 스프링부트 사이트 start.spring.io 에서디펜던시추가로 spring data jpa 추가한다음 comment와 post에 createAt 부분에
- 스프링 부트 시작 페이지에서 프로젝트 생성
- https://start.spring.io/ 로 이동
- Project 선택 Gradle-Groovy // 스프링 공식도 그레들기반이다. 예전플젝들만 maven이다.
- java 스프링이라서 java
- 3.2.1 을 선택한다 ( SNAPSHOT 제외 하고 가장 최신 버전으로 선택하면된다 )
- Project Metadata
- 프로젝트 경로명인데. 게시판프로젝트이므로 .
- com.boards 이런식으로 해도 될듯 원하는걸로해준다 example로 해도 상관없다 그냥 이름임
- package 는 jar로 해준다.
- java 버전은 일단 17로 해준다 .
- add dependencies 버튼을 클릭해서 필요한 의존성을 추가해준다.
(9) Lombok
: getter , setter 등 프로그래머가 귀찮게 반복해야하는 단순 작업을 쉽게 해주는 의존성
(10) Spring web
: 웹관련된 기본 프레임 워크
(11) Thymeleaf
: 서버기반 화면 ( html ) 을 클라이언트로 내려주기 위한 의존성
: SSR (Server Side Rendering)
(12) Spring Data JPA
: entity 와 repository 등 디비를 코드에서 제어하기 위한 의존성
- [13] 의 GENERATE 버튼을 클릭 후 다운로드 된 압축파일을 푼다.
- 압축 푼 폴더에서 build.gradle 을 클릭해서 intelliJ 로 오픈한다.
- 메인 화면 (화이트라벨 ) 서버 띄워보기
- 내가 만든 엔티티들이 디비와 연동되어야 함으로, 우선 디비관련 설정을 해준다.
- 내 프로젝트와 연결할 디비 생성
mysql -u root -p CREATE USER 아이디@'%' IDENTIFIED BY '비밀번호'; GRANT ALL PRIVILEGES ON 데이터베이스이름.* TO 아이디@'%'; FLUSH PRIVILEGES; |
- 인텔리제이에서 아래 위치의 파일 에서 위에서 만든 데이터베이스명과 계정명 을 입력해준다.
- home 이나 index 화면 추가 후 띄워보기
- HomeController.java 코드
package com.mypage.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class HomeController { @GetMapping("/home") // 루트 URL에 대한 매핑 public String home() { return "home"; // 반환되는 문자열은 뷰 이름을 나타냅니다 (여기서는 "home") } } |
- helloworld 가 뜨는 html 파일을 아무거나 입력 후 넣자.
- 위에 getMapping(“/home”) 에서 겟요청이오면 return “index” 를 하고있으므로, 반환된스트링값은 스프링부트 뷰가 가지고가서
index.html 을 화면에 SSR 기반으로 띄워준다. 그러므로 우리는 아래 경로에 index.html 파일이 있어야한다.
- 경로 : resources / templates / index.html
- index.html 코드
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>Hello World ~ ! </title> </head> <body> Hello World ~ ! </body> </html> |
- board 관련 폴더 구조 생성
( 안의 코드는 일단 무시, package 로 생성해주면됨 )
- controller
- domain
- dto
- repository
- service
- 계정 생성
- 데이터베이스 생성
- 만든 데이터베이스로 jpa 설정
- 게시판 생성


추천인 코드 : o6i4B3y95 : 앨리스트랙 참여 링크
#엘리스트랙 #엘리스트랙후기 #온라인코딩부트캠프 #온라인코딩학원 #백엔드학원 #개발자국비지원 #개발자부트캠프 #국비지원부트캠프 #DOCKER #백엔드 #자바스프링 #스프링강의 #백엔드인강 #RESTAPI #스프링개발자
'Elice --Cloud--Track > 8~9 주차 ( 개인프로젝트 )' 카테고리의 다른 글
9 주차 블로그 챌린지 - 1차 팀플 후기 (0) | 2024.01.21 |
---|---|
8주차 블로그 챌린지 - SpringFramework(5) - MVC (0) | 2024.01.08 |