전체 글 372

추가 과제 2 : 데이터 흐름

웹 프로그래밍은 > URL을 기준으로 작동한다 - URL의 접근은 > 주소 입력 접근 링크를 통한 접근 (자동 변수 설정의 접근) 버튼을 통한 Post의 접근(redirect로 금방 사라짐) - 경로인 URL과 화면인 template을 Mapping > @RequestMapping("URL") - @RequestParam String content > web 화면에서 input을 받아, Method signal로 전달하는 것(작업 처리의 용도) - @PathVariable("id") Integer id > URL 경로에서 input을 받아, Method signal로 전달하는 것(작업 처리의 용도) - Model model > 서비스에서 DB 데이터 조회 후, template에 전달하는 것(띄우는 용도)..

2-16 : 공통 템플릿 fragement

단 하나의 맥락 : 중복 템플릿 P/I 블록으로 사용 Semiflow Bundle : 오류 메세지 공통 템플릿 작성 후 fragment로 바꾸어 준다 : question_form.html에 적용 : question_detail.html에 적용 자각 - 공통 부분인 의 class 앞에 - th:fragment="formErrorsFragement" 를 넣어준다 - 각기 템플릿에 로 적용한다 - 앞은 fragment가 담긴 html 템플릿이며, 뒤는 fragment 이름이다

2-15 : Create와 Form

단 하나의 맥락 : @GetMapping으로 질문 등록 버튼 및 형식 구현, Validation Form으로 양식 제한 Semiflow Bundle - 질문 등록 버튼을 만들고, 이어지는 question/create URL을 컨트롤러에 매핑한다 - question_form.html 템플릿을 작성하고, 컨트롤러에서 Post 방식을 처리할 수 있도록 메소드를 추가한다(오버로딩) - 메소드를 추가하는 과정에서, QuestionService에 create 메소드를 추가한다 - gradle에 validation을 설치하고 form class를 작성한다 - QuestionController에 Validation Session을 추가하고 - question_form.html이 오류 메세지를 출력할 수 있도록 추가 -..

2-14 : 표준 형식과 템플릿 상속

단 하나의 맥락 : 표준 Html 구조로 템플릿 형식 통일, block P/I로 변하는 부분만 작성 - Semiflow Bundle - 표준 html 구조 확인 - 표준 layout.html 작성 - 기존 템플릿에서 개별 적용되던 CSS를 제거하고, P/I가 될수 있도록 수정 - 자각 표준 html 구조를 - layout.html에 신규 작성한다 - html 양식을 넣고 - 헤드에는 메타 태그, 부트스트랩 CSS, 일반 CSS 등을 넣고 - 바디는 을 넣어, 이 부분에 기 템플릿을 삽입할 수 있도록 한다 기 template과 연동하기 위해 - question_list.html과 question_datail에서 - 최상단 CSS를 지운다 - 내부에 - 를 작성함으로써 P/I가 된다 - 안에는 기존 이 변경..

2-13 : BootStrap

단 하나의 맥락 : FE 부분을 P/I로 쉽게 처리 Semiflow Bundle - bootStrap 설치 - 필요 P/I 파일 static 폴더에 담기 - question_list.html 적용 - question_detail.html에 적용 자각 - 플러그인 설치를 위해 - 홈페이지에서 파일 형식의 P/I 번들인 폴더를 다운받음 - bootstrap-5.1.3-dist.zip/bootstrap-5.1.3-dist/css/bootstrap.min.css 를 카피해 static 폴더에 넣는다 - question_list.html에 적용하기 위해 - 최상단에 - 를 넣어 P/I를 인식할 수 있도록 한다 - 바깥을 로 감싼다 - 을 로 변경하여 CSS 처리 - 를 로 변경하여 CSS 처리 - 헤드단의 tab..

2-11 : Answer Create

단 하나의 맥락 : 각 질문 상세페이지 내 답변 등록 form을 설정하고, post된 답변을 표시한다 Semiflow Bundle - 등록 form(submit button) 만들기 - AnswerController를 만들고 Post URL 매핑 - AnswerService를 통해 답변 저장하기(컨트롤러에 연결) - 질문 상세페이지에 답변 표시하기 자각 - 질문 create form과 버튼은 - question_detail.html 질문 단 아래에 - 사이에 - - 을 넣어 form을 완성한다 - 답변등록 Post 요청을 처리하기 위해 - AnswerController를 신규 작성 - public String createAnswer() 메소드에 - @PostMapping("/create/{id}") 적용..

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..