목록전체 글 (66)
상똥이의 Back-End 공부방
[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. 터미널을 열어준다 2. 터미널에서 mysql을 실행시킨다. (1) mysql이 있는 경로로 이동 cd /usr/local/mysql/bin (2) 아래 입력 후 mysql비밀번호 입력 ./mysql -uroot -p 3. 권한을 부여받고자 하는 사용자에게 권한을 부여하기 위해 다른 사용자를 만든다. (1) mysql 사용자를 새로 등록한다 (temp) (2) 이때 포인트는 '%'이다. 어떤 클라이언트에서든 접근가능하다는 의미이기 때문이다. create user 'temp'@'%' identified by 'qwert'; 4. 권한을 부여받고자 하는 사용자에게 해당 데이터베이스에 대하여 권한을 부여한다 grant all privileges on board.* to 'sangddong'@'localho..
[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 를 눌러 ..
[0. 추출하는 이유와 방식] 1. 추출하는 이유 - Article.class, Article.Comment에는 공통적으로 들어가는 필드들이 있다. - Id, createdAt, creatredBy, modifiedAt, modifiedBy 등 - PK인 Id를 제외한 메타데이터 종류의 공통적인 필드들을 클래스 내에서 제거하면 코드를 간단히 할 수 있다. 2. 추출 방식 (1) @MappedSuperClass : 상속(extends)기반 구현 (2) @embedded [1. MappedSuperClass 기반 구현] (1) 경로 /main/java/프젝/domain에 AuditingFields.class 추가한다 (2) 클래스에 @MappedSuperclass 어노테이션을 삽입한다 (3) Article...
목차 1. select 테스트 2. insert 테스트 3. update 테스트 4. delete 테스트 [1. select 테스트 케이스 작성] 1. 존재하는 게시글, 댓글의 개수를 확인한다 (select) - 테스트 함수의 이름은 givenTestData_whenSelecting_thenWorksFine() //아무 이름이나 상관없다 (1) @DisplayName 어노테이션 삽입 : 괄호 안에 "select test"로 이름 붙여주기 (2) @Test 어노테이션 삽입 (3) articleRepository를 통해 Articleclass의 엔터티 형식을 갖추는 게시글 개수(row, cardination)를 findAll() 메서드로 List articles에 저장한다. (4) articleComment..