Back-end/Spring Boot 28

스프링부트3 백엔드개발자되기 / 4장 스프링 부트 3와 테스트

테스트 코드test 디렉토리에서 작업테스트 코드 패턴given-when-then 패턴given테스트 실행 준비new 생성자when테스트 진행final Long id = service.save(생성변수명)then테스트 결과 검증클래스 = service.findById(id).get()assertThat(클래스.get변수()).isEqualsTo(변수)테스크 도구JUnit자바 프로그래밍 언어용 단위 테스트 프레임워크작은 단위로 검증하며 단위는 메서드가 된다.@Test 어노테이션으로 메소드를 호출할 때마다 새 인스턴스를 생성, 독립 테스트 가능Spring Test & Spring Boot Test스프링 부트 애플리케이션을 위한 통합 테스트 지원Mockito테스트에 사용할 가짜 객체인 목 객체를 쉽게 만들고, ..

스프링부트3 백엔드개발자되기 / 3장 스프링 부트 3 구조 이해하기

스프링 부트 3 구조프레젠테이션 계층Controller 구현HTTP 요청을 받고 이 요청을 비즈니스 계층으로 전송하는 역할비즈니스 계층Service 구현모든 비즈니스 로직(서비스 만들기 위한 로직) 처리퍼시스턴스 계층Repository 구현모든 데이터베이스 관련 로직 처리데이터베이스에 접근하는 DAO 객체 사용할 수도 있다.데이터베이스스프링 부트 프로젝트 디렉터리main실제 코드 작성 공간프로젝트 실행에 필요한 소스 코드, 리소스 파일 존재javaresourcestemplatesHTML 같은 뷰 파일 생성staticJS, CSS, 이미지와 같은 정적 파일 생성application.yml스프링 부트 설정 파일서버가 실행되면 자동으로 로딩데이터베이스의 설정 정보, 로깅 설정 정보 등 존재, 직접 설정 정의t..

스프링부트3 백엔드개발자되기 / 2장 스프링 부트 3 시작하기

스프링 부트스프링 코어, 스프링 MVC의 모든 기능을 자동으로 로드하여 개발 환경 구성자체적으로 WAS를 갖고있다. (톰캣 등)WAS: 웹 어플리케이션을 실행하기 위한 장치IoC(Inversion of Control)제어의 역전다른 객체를 직접 생성하는 것이 아니라 외부에서 관리하는 객체를 가져와 사용하는 것스프링에서 객체들을 관리하기 위해 사용예로 new로 객체 생성이 아닌, private A a; 처럼 받아오는 것DI(Dependency Injection)의존성 주입IoC을 구현하기 위해 사용하는 방법이며, 스프링 컨테이너에서 객체를 주입받아 사용예로 @Autowired 어노테이션은 스프링 컨테이너에 있는 빈(스프링 컨테이너에서 관리하는 객체)을 주입하는 역할이며 private A a; 코드 바로 위..

스프링부트3 백엔드개발자되기 / 1장 자바 백엔드 개발자가 알아두면 좋은 지식

클라이언트서버로 요청하는 프로그램을 모두 일컬어 말한다.예를 들어 웹 브라우저가 대표적인 클라이언트서버클라이언트의 요청을 받아 처리하는 주체데이터베이스데이터 저장소MySQL, 오라클 등 데이터베이스 관리 시스템이 있다.RDB(Relational Database)관계형 데이터베이스행과 열로 이루어진 테이블로 관리하며 primary key를 사용해 각 행을 식별한다.각 테이블 간의 관계를 지을 수 있다.SQL(Structured Query Language)쿼리, 데이터 검색을 하는 언어NoSQLNot Only SQL의미로 많이 사용데이터베이스의 성능을 높이기 위하여 등장했다.다이나모디비, 카우치베이스, 몽고디비 등 존재라이브러리애플리케이션 개발에 필요한 기능인 클래스, 함수 등을 모아놓은 코드의 모음프레임워..

[Spring DB] Annotation

@Entity 클래스 위에 선언, 해당 클래스가 엔티티라는 것을 알려준다. 해당 클래스에서 정의된 필드들로 데이터베이스에 테이블을 만들어 준다. @Entity(name = “테이블이름”) 처럼 name 입력 시 이름 지정 가능 @Builder 해당 클래스에 해당하는 엔티티를 만들 때 빌더 패턴을 이용해서 만들 수 있도록 지정해주는 어노테이션 @AllArgsConstructor 선언된 모든 필드를 파라미터로 갖는 생성자 자동 생성 @NoArgsConstructor 파라미터 없는 생성자 자동 생성 @Getter 각 필드값을 조회할 수 있는 getter 메소드 자동 생성 ex) getName() @Setter setter() 메소드를 만들어 주지만, Entity 클래스에서는 setter 메소드를 만들지 않도록..

[Spring Boot] Thymeleaf

Thymeleaf 이란? 템플릿 엔진의 일종이며 html 태그에 속성을 추가하여 페이지에 동적으로 값을 추가하거나 처리 템플릿 엔진 템플릿 양식과 데이터가 합쳐져 html 문서를 출력하는 소프트웨어 서버에서 DB나 API 등을 통해 가져온 데이터를 템플릿에 넣어서 클라이언트에 전달 고정인 부분은 템플릿, 동적으로 생성되는 부분을 타임리프로 템플릿 특정 위치에 끼워넣는 것 html 페이지 개발자 도구로 열어도 th: 속성은 표시되지 않는다. -> input 태그: th:value의 값이 존재하면 해당 값 세팅, 존재하지 않으면 value=의 값 세팅 Thymeleaf 사용 ThymeleafViewResolver 등록해야 사용 가능 Gradle build.gradle implementation 'org.sp..

[Spring DB] JpaRepository

JPA(Java Persistence API) 자바 어플리케이션에서 관계형 DB를 사용하는 방식을 정의한 인터페이스 JPA는 인터페이스이기 때문에 Hibernate 등이 JPA를 구현한다. Spring에서는 Spring Data JPA 모듈을 이용한다. CRUD SQL을 처리해주지만 수정 메소드를 제공하지 않는다. Spring Data JPA Spring Data JPA 사용하기 의존성 추가하기 spring-boot-starter-data-jpa: 스프링 부트 pring Data JPA 추상화 라이브러리 h2: 인메모리 관계형 데이터베이스, 재시작할 때마다 데이터 유지되지 않고 초기화 build.gradle dependencies { **implementation 'org.springframework.b..

[Spring DB] BaseEntity

BaseEntity 모든 엔티티에서 공통으로 있는 객체가 있으면 BaseEntity를 정의해서 활용할 수 있다. @Getter @MappedSuperclass @NoArgsConstructor(access = AccessLevel.PROTECTED) public class BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) // Primary key 생성해주는 어노테이션, @Id 선언 후 사용 private Long id; public BaseEntity(Long id) { super(); this.id = id; } public boolean isNew() { return this.id == null; } public void se..

728x90