일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 인천여행
- 카프카
- DFS
- 프로그래밍문제
- 쿠버네티스
- Spring
- VPC
- aws
- 스프링 부트
- 스프링부트
- Kafka
- 클라우드 컴퓨팅
- 스프링
- 자료구조
- Spring Data JPA
- 백준
- JPA
- Spring Boot
- 월미도
- Docker
- 알고리즘
- 로드밸런서
- gcp
- Apache Kafka
- 코드업
- Elasticsearch
- 백트래킹
- 클라우드
- 오일러프로젝트
- springboot
- Today
- Total
목록Book-Review/Programing (25)
GW LABS
JPA를 통한 전체적인 작업 FLOW 엔티티 설계/작성 테스트 코드 작성 (아마도 서비스 레이어) 기능 확인 쿼리 확인 기능완성 9.1 연관관계 매핑 종류와 방향 One to One One to Many Many To One Many To Many 비즈니스 로직의 관점에서는 엔티티간 관계를 단방향으로 설정하고, 필요시 양방향으로 뚫는다 연관관계 주인: 외래키를 갖고 있는 테이블 (상대 엔티티는 읽기 작업만 수행가능) 9.3 일대일 매핑 OneToOne: 일대일 연관관계 매핑 Joincolumn: 외래키 이름 설정 name: 매핑할 외래키의 이름을 설정 referencedColumnName: 외래키가 참조할 상대 테이블의 컬럼명 지정 foreignKey: 외래키를 생성하면서 지정할 제약조건 설정(uniqu..
8.2 JPQL 엔티티 객체를 대상으로 수행하는 쿼리 언어 ex) SELECT p FROM Product p WHERE p.number = ?1; 8.3 쿼리 메서드 살펴보기 쿼리 메서드의 생성 주제(Subject)와 서술어(Predicate)로 쿼리를 생성 ‘By’를 통해 서술어의 시작을 나타낸다. ex) List findByLastnameAndEmail(String lastName, String email); 쿼리 메서드의 주제 키워드 find..By read..By get..By query..By search..By stream..By exists..By: 특정 데이터의 존재여부 count..By: 쿼리 결과로 나온 레코드의 개수 delete..By, remove..By: 삭제 쿼리를 수행 Firs..
7.1 테스트 코드를 작성하는 이유 개발 과정에서 문제를 미리 발견할 수 있다. 리팩토링의 리스크가 줄어든다. 애플리케이션을 가동해서 직접 테스트하는 것보다 빠르게 테스트를 수행할 수 있다. 하나의 명세 문서로 활용할 수 있다. 불필요한 로직이 추가되는 것을 방지한다. 7.3 테스트 코드를 작성하는 방법 Given-When-Then Given: 테스트를 수행하기 전 테스트에 필요한 환경설정 When: 테스트의 목적을 명시 Then: 테스트의 결과를 검증 F.I.R.S.T Fast: 테스트는 빠르게 수행되어야 한다. Isolated: 하나의 테스트 코드는 하나의 대상에 대해서만 수행되어야 한다. Repeatable: 어떤 환경에서도 반복 가능해야 한다. Self-Validating: 테스트는 그 자체만으로..
6.2 ORM 객체 관계 매핑: 객체와 RBD 테이블을 자동으로 매핑 장점 ORM을 사용하면서 쿼리를 객체지향적으로 조작할 수 있다. 재사용 및 유지보수가 편리하다. 데이터베이스에 대한 종속성이 줄어든다. 단점 ORM만으로 온전한 서비스를 구현하기에는 한계가 있다. 애플리케이션 객체 관점과 데이터베이스 관계 관점의 불일치가 발생한다. 세분성: ORM의 자동 설계 바업에 따라 데이터베이스에 있는 테이블의 수와 애플리케이션의 엔티티 클래스의 수가 다른 경우가 발생한다. 식별성: RDBMS는 기본키로 동일성을 정의하지만 자바는 두 객체의 값이 같아도 다르다고 판단할 수 있다. 연관성: 객체지향 언어는 객체를 참조함으로서 연관성을 나타내지만 RDBMS에서는 외래키를 삽입함으로써 연관성을 표현한다. 또한 객체지향..
5.2 GET API 리소스 조회 RequestMapping GetMapping PostMapping PutMapping DeleteMapping PathVariable RequestParam @Tag(name = "GetController") @RestController @RequiredArgsConstructor @RequestMapping("/five/v1/") public class GetController { private final FiveService fiveService; @Operation(summary = "pathVariableExample") @GetMapping("/person/{name}") public ResponseEntity pathVariableExample(@Parame..
2.2 스프링 부트의 동작 방식 서블릿: 클라이언트의 요청을 처리하고 결과를 반환하는 자바 웹 프로그래밍 기술 서블릿 컨테이너: 서블릿 인스턴스를 생성하고 관리 서블릿 객체를 생성, 초기화, 호출, 종료하는 생명주기 관리 서블릿 객체는 싱글톤 패턴으로 관리 멀티 스레딩을 지원 스프링에서는 DispatcherServlet이 서블릿의 역할 수행 요청 FLOW DispatcherServlet으로 요청(HttpServletRequest)가 들어옴 DispatcherServlet이 핸들러 매핑을 통해 URI에 매핑된 핸들러(Controller)를 탐색 핸들러 어댑터로 컨트롤러 호출 핸들러 어댑터에 컨트롤러 응답이 돌아오면 ModelAndView 응답을 가공해 반환 뷰 형식으로 리턴하는 컨트롤러를 사용할 때에는 뷰..
1.1 스프링 프레임워크 오픈소스 경량급 애플리케이션 프레임워크 핵심가치: “애플리케이션 개발에 필요한 기반을 제공해서 개발자가 비즈니스 로직 구현에만 집중할 수 있게끔 하는 것” 1.1.1 제어 역전(IoC) 사용할 객체를 직접 제어하지 않고 객체의 생명주기를 외부(스프링 컨테이너)에 위임 클린코드 11장 시스템에서는 이를 시스템 제작(객체 생성과 의존성 연결)과 시스템 사용(런타임 로직)을 분리하라는 원칙으로 설명하고 있다. 이렇게해서 얻는 이점은 개발자가 관심사를 분리시킬 수 있으므로 비즈니스 로직에 더 집중할 수 있다는 점이다. 1.1.2 의존성 주입(DI) 사용할 객체를 직접 생성하지 않고 외부 컨테이너가 생성한 객체를 주입받아 사용하는 방식 생성자를 통한 의존성 주입 필드 객체 선언을 통한 의..
스프링 부트 스프링은 J2EE를 대체하고자 출시되었다. DI 개념을 통해 가벼운 개발 모델을 제공하며, XML 구성 파일을 사용한다. 그러나 복잡한 XML 구성 파일을 사용하는게 부담이 되어 스프링 부트가 출시되었다. 스프링 부트는 스프링 프레임워크와 서드파티 제품으로 구성된 핵심 모듈의 설정 방식을 개선해 상용 스프링 애플리케이션을 빠르게 개발 하기 위한 프레임워크다. 설정보다 관례 패턴을 이용하여 필요한 경우에만 구성을 작성하도록 되어있다. 또한 fat JAR 파일로 알려진 독립형 JAR 파일 기반의 런타임 모델도 지원한다. 스프링 웹플럭스 프로젝트 리액터를 기본 구현으로 논블로킹 HTTP 클라이언트와 서비스의 개발을 지원하는 스프링의 리액티브 애플리케이션이다. 애노테이션 기반 명령형 방식과 함수 지..