목록프로젝트/게시판 만들기 (17)
상똥이의 Back-End 공부방
[0. 준비] 1. 게시판 페이지 서비스 만들기 - 루트패키지.repository 경로에 service.패키지를 만들어준다 - 그 안에 ArticleService.class를 만들어준다 - test경로의 같은 위치에 test를 만들어준다 (shift+ctrl+t) 2. ArticleService에 어노테이션 붙이기 - @Service - @RequiredArgsConstructor : 필수 필드에 대한 생성자를 자동으로 만들어주는 롬복 애노테이션 3. ArticleServiceTest에 어노테이션 붙이기 - Spring boot의 슬라이스 테스트 기능은 사용하지 않는다 시간이 오래 걸리기 때문 - 그 대신 @ExtendWith(MockitoExtensions.class) 사용 - @ExtendWith(M..
[1. 로그인 페이지 만들기] 1. 의존성 주입 (1) Spring Initializr에 들어가서 아래 의존성을 모두 더한다 - Spring Web, Spring Sequrity, Thymeleaf - 주의할점! : 타임리프를 꼭 같이 넣어줘야 아래처럼 나온다 implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5:' 2. 화면 확인 - localhost:8080/articles 화면으로 이동하면 아래처럼 나온다 - 하지만 이 상태에서는 다른 페이지는 조회할 수 없다 [2. 로그인 기능 보완하기] 1. 루트패키..
[1. 인덱스 기반 연결로 코드 간결히 하기] 1. resource.templetes.에 index.html, footer.html, header.html 생성 2. 타임리프 문법으로 코드 단순화 - index.html 안의 header와 footer에 각각 경로 설정해서 연결 - th:replace"~(header :: header1)" (1) index.html footer 여기서 연결했어요 A (4) 결과 (localhost:8080/articles) [2. 타임리프 기능을 활용해 코드 단순화하기] 1. decoupled 기능을 사용할 것 -build.gradle에 의존성 붙이기 annotationProcessor 'org.springframework.boot:spring-boot-configura..
[0. 준비] 1. ThymeLeaf - 자바용 템플릿 서버 엔진 (1) build gradle에 아래 추가 implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' (2) 생성할 html파일 lang 안에 아래 문구 삽입 xmlns:th="http://www.thymeleaf.org" 2. 시멘틱 구조 - 시멘틱 구조를 참고하여 페이지를 작성하도록 한다. 3. html lang 을 ko로 바꿔준다 4. 제작하는 페이지를 보려면 localhost:8080/articles 로 들어간다 [1. 게시판 페이지 만들기] 1. header 삽입부 유형 제목 본문 id 닉네임 해시태그 검색어 검색 footer 삽입부 (8) : 이라는 영역으로 ..
[0. 준비단계] 1. 프론트엔드 서버사이드 기술 - 타임리프 템플릿 엔진 - spring initializr에서 타임리프 의존성 추가 2. 컨트롤러 생성 (0) 루트패키지에서 controller 패키지 생성 (1) ArticleComtroller.class 생성 - @Controller : 스테레오 타입 애노테이션 / 뷰를 주로 담을 거라 - @RequestMapping : 매핑 디자인 가능 / 경로 설정(/articles)으로 아래의 핸들러 메소드들의 경로 감소 - command-shift-t : 새 테스트 생성 [1. 클래스 생성] 1. 컨트롤러 클래스 생성 - root 페이지 아래에 controller.package 생성 - 생성한 패키지 안에 ArticleController.class 생성 2...
목차 1. query DSL을 사용해 필터 검색 기능 구현 [0. 현재 상황] - 단순 데이터 서빙만 가능한 상황 - 필터 검색 불가능 - 즉, 구체적 검색 불가능하므로 이번에 구현할 것 [1. Query DSL 연결] 1. dependencies 내부 의존성 주입 (1) 필수 요소 implementation "com.querydsl:querydsl-jpa" //필수 implementation "com.querydsl:querydsl-core" //필수 annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}" //버전을 자동으로 인식해줌 (2) Query DSL에..
[1. API환경 테스트] 1. 환경 준비 (1) test/java/프젝 경로에 controller.package생성 후, 안에 DataRestTest.class 생성 (2) 클래스 전체에 @SpringBootTest, @AutoConfigureMockMvc 삽입 - 웹과의 상호작용을 위해 MVC를 사용해야하지만, @WebMvcTest를 사용하면 slice test를 하기 때문에 컨트롤러 외의 빈은 로드하지 않고 최소한의 내용만 가져오기 때문에 AutoConfiguration만 가져온다. (3) @DisplayName("Data Rest 테스트") (3) 생성자 방식으로 아래와 같이 작성 private final Mvc mvc; public DataRestTest(@Autowired MockMvc mvc..
목차 1. API를 탐색할 수 있도록 환경을 구성한다 2. API를 조회 위주로 탐색한다. [1. API 환경 준비] 1. spring data rest라는 기능을 이용하면 빠르게 Restful한 API를 만들 수 있다. - 이를 위해 Spring Initializr 에 가서 RestRepository, HAL Explorer 의존성을 복사해 build gradle에 주입한다. //build gradle-dependencies에 추가 implementation 'org.springframework.boot:spring-boot-starter-data-rest' implementation 'org.springframework.data:spring-data-rest-hal-explorer' - Article..
목차 1. 연결을 위한 환경설정 2. 데이터 웹 연결 [1. 연결을 위한 환경설정] 1. application yaml 파일 수정 (1) spring.datasource에서 url, username, password, driver-class-name을 잠시 주석처리한다. (2) spring.jdbc.url를 jdbc:j2:mem:testdb 로 추가한다 (3) username를 sa로 추가한다 (4) driver-class-name을 org.h2.Driver 로 추가한다 (5) spring.h2.console.enabled를 true 상태인지 확인한다. [2. 데이터 웹 연결] 1. 웹으로 이동할 주소 조회 (1) 서비스 전체를 실행시킨다. (2) 콘솔 실행이 완료되면 .콘솔창에서 ctrl+f 를 눌러 ..