JPA 의 Specification 인터페이스 사용(Specification 은 쿼리를 보다 정교하게 작성할 수 있도록 도와주는 JPA 도구) QuestionService 에 다음 코드 추가 QuestionRepository 에 다음 코드 추가 QuestionService 에서 getList 메소드 수정 QuestionController 에서도 getList 메소드의 입력 항목이 변경되었으므로 수정
SpringBoot/스프링부트 스터디
1. 회원가입 기능 구현회원 가입 기능을 구현하기 위해서는 회원 정보에 관한 데이터를 저장하고 관리하는 엔티티와 리포지터리, 서비스, 폼 등이 필요하다. 서비스에서 비밀번호는 보안을 위해 BCryptPasswordEncoder 클래스를 사용하여 저장했는데 객체를 직접 new 로 생성하는 방식보다는 PasswordEncoder 객체를 빈으로 등록해서 사용하는 것이 좋다고 한다.(만약 암호화 방식을 변경하면 BCryptPasswordEncoder 를 사용한 모든 프로그램에서 수정해야하기 때문에) 따라서 다음과 같이 SecurityConfig.java 파일에 PasswordEncoder 객체를 빈으로 등록하고 다시 서비스에서 new 로 객체를 생성했던 부분을 삭제하고 형광색부분을 추가해주었다. ..
1. 게시물에 번호 지정하기 ▼게시물 번호 공식 게시물 번호 = 전체 게시물 개수 - (현재 페이지 * 페이지당 게시물 개수) - 나열 인덱스 만약 게시물이 12개이고 한 페이지에 보여지는 게시물이 10개면1페이지에는 12, 11, 10, 9, 8, 7, 6, 5, 4, 3 번의 게시물이 보여야하고0페이지에는 2, 1 번의 게시물이 보여야 한다. 2. 답변 개수 표시하기 다음과 같이 question_list 에 코드를 추가하면 게시물 옆에 답변의 개수가 출력된다. 3. 스프링 시큐리티 설정하기 스프링 시큐리티란 회원가입과 로그인을 도와주는 프레임워크이다. 스프링 시큐리티를 사용하기 위해 다음과 같이 build.gradle 파일을 수정한다.형광색 부분의 코드를 삽입하고 refresh 한 다음 다시..
1. 공통 템플릿 만들기 오류 메시지를 출력하는 HTML 코드는 질문 등록과 답변 등록 페이지에서 모두 반복해서 사용하는데이 때 중복되는 코드를 하나의 공통 템플릿으로 사용해보려고 한다. ▼질문등록 페이지에서 수정 ▼답변등록 페이지에서 수정 2. 내비게이션 바 추가하기내비게이션 바는 화면 위쪽에 고정되어 있는 부트스트랩의 컴포넌트 중 하나이다내비게이션 바는 모든 페이지에서 공통적으로 보여야 하므로 다음과 같이 layout.html 템플릿에 내용을 추가하였다. 내용을 추가하고 다시 실행한 결과 아래 그림과 같이 내비게이션 바가 생성된 것을 알 수 있다. 하지만 브라우저의 가로 사이즈를 줄였을 때 아래 그림과 같이 햄버거 메뉴 버튼이 생성되고 로그인 버튼이 사라진 것을 알 수 있는데이 ..
▶ 먼저 CRUD 란?데이터 처리 기능인 Create Read Update Delete 를 묶어서 일컫는 말 ▶ 가장 기초적인 게시판을 만드는데 있어서 필요한 기능들질문 생성질문 검색질문 수정질문 삭제댓글 생성댓글 수정댓글 삭제... 여기서 create 의 역할을 지닌 질문 생성, 댓글 생성 기능을 구현해볼 것이다.과정은 다음과 같다.1. 질문엔티티 만들기 -Question.java2. 답변엔티티 만들기 -Answer.java3. h2 데이터베이스에서 질문, 답변 테이블 생성됐는지 확인하기4. 리포지터리 생성하기 -QuestionRepository.java -AnswerRepository.java5. JUnit 으로 리포지터리가 정상적으로 동작하는지 확인하기6. 질문 작성 기능 만들기 ..