목록전체 글 (62)
상똥이의 Back-End 공부방
[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. 도메인 추가] 0. ERD 업데이트 1. 검색 시 필터링 인덱스 - @Table어노테인션 - @Indexes, @Index(columnList = "") - userId, email, createdAt, createdBy - JPA 사용 -> @Entity 코드 (접은 글) 더보기 package com.fastcampus.projectboard.domain; import lombok.Getter; import lombok.Setter; import lombok.ToString; import javax.persistence.*; import java.util.Objects; @Getter @ToString @Table(indexes = { @Index(columnList = "userId"), @I..
[1. 전체적인 서비스 구조] 1. Client가 Controller에게 요청한다. (1) 이때 DTO라는 형식의 객체를 사용한다. (2) 예시로, 회원가입이라는 요청을 할 때 이름, 아이디, 비밀번호, 전화번호, 이메일 등의 객체 정보가 DTO에 담겨 Controller로 이동한다. (3) Controller는 받은 객체에 따라 어떤 요청인지 확인한다. 2. Controller가 Client의 요청에 맞게 Service인터페이스로 DTO를 보내준다. 3. Service는 비즈니스 로직의 전반적인 내용을 처리하는 영역이다. (1) DTO로 받아온 내용 외에 필요한 것들을 더 채우는 역할을 한다. (2) 예시로, 회원가입할 때 받은 정보 외에 가입일, 등급 등의 정보를 Servuce에서 처리한다. (3) ..
[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. 터미널을 열어준다 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..