본문 바로가기

전체 글

(67)
[Spring]Spring 시작해보기(12) - 질문 등록 버튼 및 폼 생성 질문들의 List는 출력하지만, 질문을 등록할 수 있는 방법은 DB에서 직접 적어 넣을 수 있는 방법밖에는 없다. 하지만, 을 사용해 질문을 직접 web application에서 만들 수 있다. 1. 질문 등록하기 버튼 생성 question_list.html 파일 가장 아래 button을 넣을 곳에 아래 코드를 넣어준다. 질문 등록하기 bootstrap을 사용한 버튼이 생성되고, question/create로 Link되었다. 2. URL Mapping 우리는 question/create란 URL로 이동할 수 없다. 왜냐하면 Controller에서 Mapping을 해주지 않았기 때문이다. Mapping을 위해 QuestionController에 아래 코드를 적어주자. @GetMapping("/create"..
[Spring]Spring 시작해보기(11) - Template 상속 현재 우리는 표준 HTML 구조가 아닌데, 계속해서 HTML 파일을 만들 경우 굉장히 귀찮다. 또 중복되는 것들이 굉장히 많아진다. 예를들어 위 같은 코드를 계속 적어줘야 하는데 여간 귀찮은게 아니다. 그러면 HTML의 이 부분을 상속시켜주면 표준 HTML 구조가 완성된다. body 내부에 라는 코드가 있는데, layout.html 을 상속한 템플릿에서 개별적으로 구현하는 곳이다. 2. 각 html파일 수정 // question_list.html 번호 제목 작성일시 // question_detail.html 처음보는 부분이 존재하는데, 태그가 있다. layout:decorate 부분은 thymeleaf의 속성인데 템플릿의 상속될 템플릿을 설정한다. 속성값 “~{layout}”은 layout.html을 의..
[Spring]Spring 시작해보기(10) - BootStrap, Font 적용 bootstrap은 웹 디자인을 하기 힘든 BackEnd 개발자에게 간편하게 FrontEnd 작업을 할 수 있도록 만들어둔 오픈소스 프로젝트이다. 이 BootStrap을 사용하여 question_list.html과 question_detail.html 파일을 꾸며보자 1. CSS 설치 후 static directory에 넣어주기. CSS 설치 사이트 를 통해 CSS와 JS파일이 합쳐져 있는 zip파일을 설치한다. 설치 후 압축을 풀면 여러개의 파일이 나오는데, “bootstrap.min.css”파일을 복사하여 static directory에 넣어준다. 2. BootStrap 적용 설치한 부트스트랩을 적용해보자. style.css를 link해준 것 처럼 bootstrap.css 파일도 연결시켜준다. // ..
URL Prefix @RequestMapping("/question/list") @RequestMapping(value = "/question/detail/{id}") 위와 같이 /question이 중복되는 경우가 있다. 굳이 중복되게 적을 필요가 있을까? 이 때 URL Prefix가 필요하다. class에 @RequestMapping을 해주고, 각 메서드마다 추가적인 @RequestMapping을 해주면 된다. @RequestMapping("/question") @RequiredArgsConstructor @Controller public class QuestionController { private final QuestionService questionService; @RequestMapping("/list") publ..
[Spring]Spring 시작해보기(9) - 답글 달기 form 생성 및 출력 detail 페이지까지 생성했는데, 댓글을 달 수 있는 곳도 있어야 하지 않을까? 그러기 위해 Answer을 등록할 수 있는 form을 생성해 출력시키도록 해보자. 1. 답변 등록 Form 생성 question_detail.html을 수정하여 form을 생성할 수 있도록 하자. 태그안에는 태그를 넣어 답변을 넣어줄 수 있도록 하고, 태그에는 전송할 수 있는 submit을 넣는다. 여기서 form에는 현재 question_id를 가져와 해당 id에 대한 answer을 생성할 수 있도록 한다. 태그 안에서는 action을 동작할 URL을 사용한다.(여기서 question_id를 가져온다.) 결과는 textarea로 잘 나온다. 2. 답변 생성 컨트롤러 생성 및 URL 매핑 처리 textarea처럼 많은 내용..
[Spring]Spring 시작해보기(8) - 상세 페이지 만들기 질문에 대한 제목, 내용을 볼 수 있는 상세페이지를 만들어보자. 해당 질문의 id값을 사용해 출력시킬 건데, URL에 맨 마지막에 id값을 넣어 출력시킬 것이다. 1. question_list.html 파일 수정 Question의 subject를 클릭하면 question_id를 전송하고, detail페이지로 이동할 수 있는 Link를 태그를 통해 넣어주었다. 제목 작성일시 여기서 th:href속성을 사용하는데 URL주소를 나타낼 때에는 꼭 @{ } 사이에 입력해야 한다. 또한, /question/detail/ 과 ${question.id}의 값이 조합되어 사용되어야 하는데 이 때 좌우에 | 문자를 추가해주어야 한다. 2. detail controller 생성 QuestionController 내 deta..
[Spring]Spring 시작해보기(7) - Service class 생성 Service 만들기를 시작해보자. 1. QuestionService class 생성 service는 controller와 마찬가지로 @Service 어노테이션을 사용할 수 있다. 그 후 Repository 객체를 사용하여 Repository class 내의 메서드를 사용한다. @RequiredArgsConstructor @Service public class QuestionService { private final QuestionRepository questionRepository; public List getList() { return this.questionRepository.findAll(); } } 이는 전에 사용했던 모든 Question의 List를 가져오는 findAll 메서드를 사용해 반환..
[Git]Git Interactive tutorial4 4단계를 풀어볼 차례이다! 1. 로컬에 쌓인 커밋들 cherry-pick이나 rebase -i를 사용하여 자유롭게 이동할 수 있도록 하자. 우리의 목표이다. 목적을 달성하기 위해서는 HEAD를 main으로 checkout 한 후 c4를 main에서 cherry-pick 하면 해결되지 않을까 했다. (1) git checkout main : HEAD를 main으로 옮긴다. (2) git cherry-pick bugFix : bugFix를 복사해 main아래로 붙여넣는다. 2. 커밋들 갖고 놀기 git commit --amend : 커밋 내용을 정정 rebase -i를 사용하여 자유롭게 이동시켜보자!! 왼쪽은 현재 상황이고 오른쪽은 목표이다. rebase -i를 사용하여 자유롭게 갖고 노는 시간을 가져봐야 ..