일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Spring Data JPA
- 코드업
- 자료구조
- 백트래킹
- Apache Kafka
- aws
- Kafka
- Spring
- 스프링부트
- 쿠버네티스
- 클라우드
- Docker
- Elasticsearch
- 프로그래밍문제
- 카프카
- 백준
- 월미도
- 머신러닝
- DFS
- 클라우드 컴퓨팅
- springboot
- Spring Boot
- 로드밸런서
- 알고리즘
- 오일러프로젝트
- VPC
- 스프링 부트
- gcp
- 스프링
- JPA
- Today
- Total
GW LABS
2.1 문서 색인과 조회 ElasticSearch API 구조 ${url}/${인덱스이름}/${타입이름}/${ID} 색인 요청 과정 인덱스 생성 타입 생성 스키마 생성 문서 ID 검사 신규 색인 기존 문서 업데이트 문서생성 curl --location --request POST 'http://localhost:9200/user/_doc/1?pretty' \ --header 'Content-Type: application/json' \ --data-raw '{ "username" : "gwkim" }' # 응답 { "_index": "user", "_id": "1", "_version": 4, "result": "updated", "_shards": { "total": 2, "successful": 1, ..
1.1 ElasticSearch란 루씬 기반의 오픈 소스 검색 엔진 JSON 기반의 문서를 저장/검색/분석 준실시간 검색 엔진 문서를 메모리에 저장 refresh_interval 시간에 따라 Shard에 문서를 저장 클러스터 구성 프라이머리/레플리카 샤드 메시 형태기 떄문에 어떤 노드에서든 색인/검색 처리가능 스키마리스 Rest API Docker로 ElasticSearch 구성하기 version: '2.2' services: my-es: image: docker.elastic.co/elasticsearch/elasticsearch:8.3.3 container_name: my-es environment: - node.name=my-es-node - cluster.name=my-es-cluster - di..
13.1 보안 용어 이해 인증: 사용자가 누구인지 확인하는 단계 인가: 사용자가 애플리케이션 내부의 리소스에 접근할 권한이 있는지 확인하는 단계 접근주체: 애플리케이션의 기능을 사용하는 주체 13.3 스프링 시큐리티의 동작 구조 스프링 시큐리티는 서블릿 필터 기반으로 동작 DelegatingFilterProxy 서블릿 컨테이너의 생명주기와 스프링 애플리케이션 컨텍스트 사이에서 다리 역할을 수행하는 필터 구현체 표준 서블릿 필터를 구현하고 있고 필터체인 프록시를 내부에 가지고 있음 필터체인 프록시 스프링 시큐리티에서 제공하는 필터 보안 필터체인을 통해 많은 보안 필터들을 사용할 수 있음 ex) CorsFilter, CsrfFilter, UsernamePasswordAuthenticationFilter 예전..
12.1 RestTemplate 최신 스프링 부트 버전에서는 Deprecated 되었다. WebClient를 사용해서 서버 간 통신을 구현해야 한다. 12.3 WebClient Spring WebFlux에서 HTTP 요청을 수행하는 클라이언트 논블로킹 I/O 지원 리액티브 스트림의 백 프레셔를 지원 적은 하드웨어 리소스로 동시성을 지원 함수형 API 지원 동기, 비동기 상호작용 지원 스트리밍 지원 12.4 WebClient 사용하기 WebClient를 생성하는 방법 create() 메서드 builder() 메서드 Spring Cloud OpenFeign Netflix에서 개발된 Http client binder 인터페이스와 어노테이션 선언만으로 HTTP 요청을 구현할 수 있음 sping-cloud-sta..
10.1 일반적인 애플리케이션 유효성 검사의 문제점 계층별로 진행하는 유효성 검사는 관리하기 어려움 컨트롤러에서 한번? 서비스에서 한번? 중복 가능성이 있으며 어떤 검증 로직이 맞는 것인가… Bean Validation: DTO 같은 도메인 모델에서 어노테이션으로 검증을 수행 10.3 스프링 부트에서의 유효성 검사 spring-boot-starter-validation 스프링 부트의 유효성 검사 일반적으로 DTO 객체를 대상으로 유효성 검사를 수행하는 것이 일반적 유효성 검사하려는 DTO 객체를 받는 함수 인자 앞에 Valid 어노테이션을 명시하면 수행가능 유효성 검사에 실패하면 400 Error가 발생! 문자열 검증 Null NotNull NotEmpty NotBlank 최댓값/최솟값 검증 BigDec..
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: 테스트는 그 자체만으로..