목록전체 글 (66)
상똥이의 Back-End 공부방
[1. JPA(Java Persistence Api)란] 1. 간단한 개념 - 자바 : 객체지향 목적 - 관계형 데이터베이스 : 데이터를 정규화해서 잘 보관하는 것이 목적 - 즉, 자바와 관계형 데이터베이스의 패러다임이 불일치 - 이를 해결하기 위해 중간에서 둘을 매핑해주는 ORM(Object Relational Mapping)이 등장함 - JPA는 이 ORM 기술 표준의 명세 - 즉, JPA는 인터페이스 (구현해줄 뭔가가 필요한) - JPA 구현체 - Hibernate (가장 대표적) - EclipseLink - DataNucleus - OpenJpa 등등 2. JPA사용 시 장점 - 특정 데이터베이스에 종속되지 않음 - 각각 쿼리문이 다른 데이터베이스로 바꿔도 그 종류만 알려준다면 문제되지 않음 - ..
다른 프로젝트와 충돌하면서 security는 아직 쓰지도 않았는데 이 화면이 나온다면 메인 클래스(맨 처음 생성되어있는 클래스)의 @SpringBootApplication 옆에 (exclude = {SecurityAutoConfiguration.class}) 를 아래처럼 붙여주면 된다 그리고 프로그램을 재실행하면
[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. 도메인 추가] 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) : 이라는 영역으로 ..