일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 배열
- @Query
- 비링크
- springDataJpa
- 낙관락
- 스네이크 케이스
- 파스칼 케이스
- 공유락
- 테스트 코드
- Java
- 스터디
- @Version
- jvm
- Array
- OOP
- DTO
- 자바
- Controller 테스트
- 디자인 패턴
- 마이크로서비스 아키텍처
- 비즈니스 로직
- Service 테스트
- do...while
- 원시 자료형
- 스프링 부트
- 트랜잭션 락
- Repository 테스트
- 자료구조
- 배타락
- Entity
- Today
- Total
목록스프링 부트 (7)
menuhwang

DB (MySql) 사용 및 Entity, Repository 작성 서비스를 제공하기 위해서는 데이터를 DB에 저장 (영속화) 해야만 한다. 유저 정보를 저장하여 로그인할 수 있게 한다거나, 게시물 등록, 도메인에 따라 제품, 강의 영상 등록 등등... Spring Boot에서 DB 연결을 위한 Dependency추가, 설정 방법을 알아보자. 그리고 Entity를 설계하고 Repository, Service를 작성하여 DB에 저장하고 불러오는 방법을 알아보자. SpringBoot 설정 DB에는 많은 종류가 있다. MySql, MariaDB, MongoDB, Oracle 등등... 이 글에서는 MySql를 사용할 것이다. 다른 DB를 사용하는 경우 DB에 맞춰 Dependency 추가 및 Driver 설정..

Spring Data JPA ORM JPA 영속성 컨텍스트 ORM ORM (Object Relational Mapping) : 객체 관계 매핑 자바 클래스와 데이터베이스의 테이블은 다르다. ORM은 이 사이의 차이와 제약사항을 해결하는 역할이다. 자바 객체를 DB 테이블, 레코드로 사용할 수 있게 하고, 자바 객체에서 DB 읽기, 쓰기가 가능하게 한다. 장점 데이터베이스 쿼리를 객체지향적으로 조작할 수 있다. 직접 쿼리문을 작성하지 않아도 되고, 코드 가독성도 높아진다. 데이터베이스에 대한 종속성이 줄어든다. DB 교체 시 어떤 DB을 사용하는지 설정만 변경해준다면 알아서 동작한다. 단점 서비스 구현에 한계가 있다. 데이터량이 많은 경우 데이터 조회나 처리 시 속도 저하 등의 성능 문제가 발생할 수 있다..

Swagger API 제작 후 사용방법을 모르면 올바른 접근, 사용이 불가능하다. 그래서 API 사용방법 즉, API 명세서를 작성해주어야 한다. 아래는 배틀그라운드의 API Document이다. Swagger는 이런 명세서를 간단하게 작성해준다. 적용 Dependency 추가 먼저 Swagger를 사용하기 위해 Dependency를 추가해준다. 이 글에서는 Swagger2 3.0.0 버전과 Swagger-ui 3.0.0 버전을 사용한다. * 많이 사용되는 2.9.2 버전과는 설정에 있어서 조금 차이가 있다. Gradle implementation 'io.springfox:springfox-boot-starter:3.0.0' Maven io.springfox springfox-boot-starter 3...

Controller Controller 는 클라이언트의 요청을 비즈니스 로직과 연결시켜주는 다리 역할을 한다. 앞서 작성한 스프링 부트 동작 방식 중 핸들러에 해당한다. @Controller & @RestController @Controller 와 @RestController의 차이점을 알아보자. 먼저, @RestController 어노테이션 코드를 보면 @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Controller @ResponseBody public @interface RestController { // (...) @AliasFor(annotation = Controller.class) String value(..

스프링 MVC 모델 레이어드 아키텍처 컴포넌트를 비슷한 관심사에 따라 레이어로 묶어 구성한 구조. 일반적으로 3계층 또는 4계층으로 구성. 레이어드 아키텍처 특징 가장 가까운 하위 레이어의 의존성을 주입. 다른 레이어의 역할을 침범하지 않음. 다른 레이어의 의존성을 낮춰 단위 테스트에 용이. 계층 프레젠테이션 계층 유저 인터페이스 계층이라고도 함. 클라이언트이 요청을 해석하고 응답. UI나 API를 제공. 비즈니스 로직을 포함하고 있지 않음. 비즈니스 계층으로 요청을 위임, 전달해주고 받은 결과를 응답. 비즈니스 계층 서비스 계층이라고도 함. 기능을 정의하고 세부 작업을 수행. 도메인 객체를 통해 업무를 위임. DDD (Domain-Driven Design) 개발 시 비즈니스 로직에 도메인이 포함되기도 ..

스프링 부트 동작 방식 용어 Servlet [서블릿] : 클라이언트의 요청을 처리하고 결과를 반환하는 자바 웹 프로그래밍 기술 Servlet Container [서블릿 컨테이너] : 서블릿 인스턴스를 생성, 관리. 스프링 부트의 경우 톰캣이 WAS의 역할과 스블릿 컨테이너의 역할을 수행한다. Dispatcher Servlet [디스패처 서블릿] : 스프링 내부의 서블릿 동작 방식 더보기 1. Servlet Container가 스프링 Dispatcher Servlet에 클라이언트 요청을 전달. (Servlet Container 와 Dispatcher Servlet 사이에 여러 filter 들이 존재.) 2. 핸들러 매핑이 요청 URI에 매핑된 핸들러(≒Controller)를 탐색. 3. 핸들러 리턴. 4...

스프링 프레임워크란? IoC (Inversion of Control) : 제어 역전 주객전도 일반적으로 객체를 사용하기 위해 사용자가 직접 객체를 선언하고 해당 객체의 의존성을 생성한 후 객체에 제공함. IoC를 적용한 환경에서는 사용할 객체를 직접 생성하지 않고 객체의 생명주기 관리를 외부에 위임함. IoC를 통해 DI (Dependency Injection) : 의존성 주입, AOP (Aspect-Oriented Programming) : 관점 지향 프로그래밍이 가능해지고 개발자는 비즈니스 로직에 집중할 수 있음. 외부란, 스프링 컨테이너 또는 IoC 컨테이너. DI (Dependency Injection) : 의존성 주입 DI는 IoC의 방법 중 하나로, 객체를 직접 생성하지 않고 외부 컨테이너가 ..