Spring/서적: 스프링부트3 백엔드개발자되기 5

스프링부트3 백엔드개발자되기 / 5장 데이터베이스 조작이 편해지는 ORM

데이터베이스 DBMS(Database managements system) 데이터베이스 관리 및 운영 MySQL, 오라클 관계형 DBMS(RDBMS) 테이블 형태로 이루어진 데이터 저장소 각 행은 고유의 키(아이디)를 가지고 있고 값들이 들어간다. ORM(object-relational mapping) 자바의 객체와 데이터베이스를 연결하는 프로그래밍 기법 SQL을 직접 작성하지 않고 데이터베이스에 접근 JPA(Java Persistence API) 자바에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스 사용시 ORM 프레임워크 사용(hibernate, 내부적으로는 JDBC API 사용) 데이터베이스- JDBC- 하이버네이트- JPA- 스프링데이터JPA- 애플리케이션 엔티티(Entity) 데이터베이..

스프링부트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 실제 코드 작성 공간 프로젝트 실행에 필요한 소스 코드, 리소스 파일 존재 java resources templates HTML 같은 뷰 파일 생성 static JS, CSS, 이미지와 같은 정적 파일 생성 application.yml 스프링 부트 설정 파일 서버가 실행되면 자동으로 로딩 데이터베이스의 설정 정보,..

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

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

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

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