포트폴리오/SPRINGBOOT 옛날 72

2-10 : 질문 리스트 > 질문 상세

단 하나의 맥락 : 템플릿 간의 이동 Semiflow Bundle : question_list.html에 상세 링크 추가하기 : QuestionController에 question/detail URL Post매핑 : question_detail.html 및 임시 dummydata작성 : 서비스에서 Question 값 조회해서 : Controller 에서 model에 값을 담아 template으로 넘기기 : template에서 받아서 사용 : prefix 자각 질문 리스트 > 질문 상세 로 넘어가기 위해 > question_list.html에서 - 단순 텍스트 출력인 를 - 사이 로 링크를 입힌다 - 404 처리, 질문 상세 URL 매핑을 위해 > QuestionController에서 - question_..

2-09 : Service

단 하나의 맥락 : 모듈화, 보안, DTO 객체의 전환 을 서비스로 사용 Semiflow Bundle : QuestionService 작성 : QuestionController에서 서비스를 통해 리포지터리 이용하기 자각 QuestionService를 신규 작성 - class 위에 @Service 어노테이션으로 스프링부트가 서비스로 인식하도록 한다 - @Service 는 "import org.springframework.stereotype.Service;" P/I로 사용 가능하다 - private final QuestionRepository questionRepository; 객체가 필요하다 - public List getList() 메소드가 필요 - A1 : return this.questionRepos..

2-08 : redirecting to ROOT URL

단 하나의 맥락 : 메인페이지 - Semiflow Bundle - @RequestMapping("/") 어노테이션으로 루트 URL을 매핑한다 - public String root() 메소드에 return "redirect:/question/list"; 로 리다이렉팅한다 - package com.mysite.sbb; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class MainController { @Requ..

2-07 : template

단 하나의 맥락 - thymeleaf P/I 로 자바 데이터를 조회하여, 상세페이지 template을 웹사이트에 띄우기 - Semiflow Bundle - question/list URL을 QuestionController에 매핑 - 타임리프 템플릿 엔진 설치 - question_list.html을 QuestionController에 매핑 - 데이터 템플릿에 전달 - 전달받은 데이터 웹에 사용 - 자각 - implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' - implementation 'nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect' 사용 - @RequiredArgsConstructor..

2-05 : repository

단 하나의 맥락 : entity로 만든 박스(테이블)에 자료를 CRUD 하고, 서비스가 만들어지기 전 test로 기능을 시험해본다 Semiflow Bundle - 리포지터리 생성과 테스트 - Save - Read - Update - Delete - 답변 Save - 답변 Read - A에 연결된 Q, Q에 연결된 A 자각 (Repository 개념) - 리포지터리는 interface 형식으로, JpaRepository를 상속한다 - import org.springframework.data.jpa.repository.JpaRepository; 를 플러그인으로 사용한다 - 또한 제네릭스 타입의 상속으로, 를 cursor로 사용한다 - (Test 개념) - Service 연결 전 Repository의 기능 작..

2-04 : Entity

단 하나의 맥락 : 필요한 자료가 담길 박스(테이블) 만들기 Semiflow Bundle : 필요한 데이터(속성) 구상 : 질문 / 답변 entity 작성 : entity간의 참조 : 정상 생성되었나 h2-console에서의 체크 자각 : Entity에 사용되는 어노테이션 플러그인들은 import javax.persistence.에 있다 : 시간은 별도로 import java.time.LocalDateTime; 을 사용한다 : 접근제어자는 'private'를 사용한다 : 자동 객체 생성을 위해 import lombok.Setter/Getter 를 사용한다 : A > Q 참조는 @ManyToOne(역시 persistence 플러그인) 하나로 충분 : Q > A 참조는 "import java.util.Lis..

2-03 : ORM / JPA / H2-DB / JPA 셋팅

단 하나의 맥락 : 개발 환경에서의 간이 DB 처리 Semiflow Bundle : ORM 개념 : JPA 개념 : H2 DB 설치 : JPA 환경설정 상세 내용 - 질문이나 답변을 생성하면 데이터가 필요하고, 그 데이터를 처리하기 위해 DB가 필요 - 해당 DB를 다루기 위해서 SQL query가 필요한데, ORM(object relational mapping) 을 사용해 자바로 간단히 DB를 다룰 수 있음 - 데이터를 관리하는 데 사용되는 ORM class = Entity - ORM을 사용하면 DB 종류에 상관 없이 일관된 코드를 유지 가능하여, 유지 보수의 편리 - 내부에서 안전한 SQL 쿼리를 자동 생성하므로, (개발자가 달라도) 통일된 query 작성 및 오류 발생률 낮춤 insert into ..

2-02 : Controller

단 하나의 맥락 : 컨트롤러로 원하는 URL에 내용을 출력 가능 Semiflow Bundle : Not found 404 : Controller 내 메소드의 리턴값 상세 내용 package com.mysite.sbb; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class MainController { @RequestMapping("/sbb") public void index() { System.out.println("index"); } } Internal Server Error 505 package com.mysi..

2-01 : Structure

단 하나의 맥락 : 공간 분별하고, 필요에 맞게끔 파일 작성 및 실행 - semiflow bundle : src/main/java : SbbApplication.java - 상세 내용 메인 디렉토리 폴더 및 파일 기능 src/main/java 메인 자바 파일 Controller, Service, Repository, Entitiy Form SbbApplication.java 스프링부트 시작을 담당하는 파일 @SpringbootApplication 적용됨 src/main/resources (HTML, CSS, Javascript, 환경 파일) template html 형태로 자바 객체와 연동 static .css / .js / .jpg 등 application.properties 프로젝트 환경 DB 등의 ..

1-05 : Devtools, Lombok

단 하나의 맥락 : gradle 내 dependencies에 플러그인을 추가함으로써, 개발 편의 기능 추가 : 업데이트 시 서버 자동 재시작, 롬복 @로 자동 DI semiflow bundle : devtools 설치 : lombok 설치 : lombok 생성자 등 사용하여 잘 설치되었나 확인 devtools설치 위치 : build.gradle dependencies에 설치 코드 추가 developmentOnly 'org.springframework.boot:spring-boot-devtools' build.gradle 새로고침 옵션 > Gradle > Refresh Gradle Project lombok 설치 위치 : build.gradle https://projectlombok.org/download..