일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바 ORM 표준 JPA 프로그래밍 7장
- 백준
- Kotlin
- kotlin in action 정리
- 20055 컨베이어 벨트 위의 로봇
- 컨베이어 벨트 위의 로봇 Python
- 기능개발 python
- Python
- 13460 구슬탈출 2
- 스프링 핵심 원리 이해
- KotlinInAction
- 20055
- 고급매핑
- 코틸린인액션
- 싱글톤 컨테이너
- 7장 고급매핑
- 스프링 컨테이너와 스프링 빈
- 백준 20055 컨베이어 벨트 위의 로봇
- spring
- 코틀린
- Kotlin in action 6장
- Kotlin In Action
- 백준 13460 Python
- Kotlin in action 5장
- 스프링 핵심 원리 - 기본편
- 객체 지향 설계와 스프링
- 스프링 핵심 원리
- Kotlin in action 10장
- 코틀린인액션
- Kotlin in action 3장
- Today
- Total
기록하는 습관
Redis ##1. 특징 메모리 기반의 key-value 구조의 데이터 관리 시스템 모든 데이터를 메모리에 저장하고 조회하기때문에 빠른 Read, Write 속도를 보장하는 NoSql 영속성을 지원하는 In-memory 데이터 저장소 읽기 성능 증대를 위한 서버 복제 지원 쓰기 성능 증대를 위한 클라이언트 측 sharding 지원 성능은 서버에 따라 다르나 초당 2만 ~ 10만회 수행 ##2. 기능 In-Memory 캐싱 Pub/Sub 메세지 큐 세션 스토어 ##3. 장점 리스트, 배열과 같은 데이터를 처리하는데 유용 리스트형 데이터 입력과 삭제가 MySql에 비해 10배정도 빠름. 메모리를 활용하면서 영속적인 데이터 보존(Persistence) 스냅샷 기능을 제공해 메모리 내용을 *.rdb 파일로 저장..
기본적으로 JPA에서 update를 하려면 다음과 같이 진행하는 것이 일반적이다. @Modifying @Query("UPDATE Post p SET p.title = :title WHERE p.id = :id") int updateTitle(String title, Long id); 예제 step 저장 - Post 객체 save() 수정 - post.updateTitle("변경진행") 조회 - findById(post.getId()) 위와 같은 코드를 짰을 때, 발생하는 문제점은 다음과 같다. updateTitle 함수 실행 후, 객체를 확인하면 값이 변경되어 있지 않다. findById()를 호출시, select 쿼리는 수행되지 않는다. → 이유: findById()는 DB를 확인하기 전에 우선적으로 ..
연관관계의 대칭성 일대다 ↔ 다대일 일대일 ↔ 일대일 다대다 ↔ 다대다 다대일(N:1) - @ManyToOne ex) 게시판(Board)과 게시글(Post)의 관계 요구 사항 하나의 게시판(1)에는 여러 게시글(N)을 작성할 수 있다. 하나의 게시글은 하나의 게시판에만 작성할 수 있다. 게시글과 게시판은 다대일 관계를 갖는다. 데이터베이스를 기준으로 다중성(게시글N : 게시판1)을 결정. 즉, 외래 키를 게시글(N)이 관리하는 일반적인 형태이다. 참고) 데이터베이스는 무조건 다(N)쪽이 외래 키를 갖는다. 단방향 Post(N) 객체에 Board(1) 객체 선언 후, @ManyToOne 어노테이션 추가. Board 객체에서는 참조하지 않음. 1 2 3 4 5 6 7 8 9 10 @Entity public ..
연관 관계 정의 규칙 방향 : 단방향, 양방향 (객체 참조) 연관 관계의 주인 : 양방향일 때, 연관 관계에서 관리 주체 다중성 : 다대일(N:1), 일대다(1:N), 일대일(1:1), 다대다(N:M) 단방향, 양방향 데이터베이스: 외래 키 하나로 양 쪽 테이블 조인이 가능 객체: 참조용 필드가 있는 객체만 다른 객체를 참조하는 것이 가능 그렇기 때문에 두 객체 사이에 하나의 객체만 참조용 필드를 갖고 참조하면 단방향 관계, 두 객체 모두가 각각 참조용 필드를 갖고 참조하면 양방향 관계라고 한다. 엄밀하게는 양방향 관계는 없고 두 객체가 단방향 참조를 각각 가져서 양방향 관계처럼 사용하고 말하는 것. 단방향, 양방향 선택? 비즈니스 로직에서 두 객체가 참조가 필요한지 여부를 고민하기. GroupCondi..
##1. Newman 이란? Newman은 포스트맨을 cmd/터미널에서 실행시킬 수 있는 러너. 포스트맨에 만들어 놓은 컬렉션과 환경 변수를 지정해서 실행하고 테스트할 수 있다. 일반적으로 서버는 윈도우보다는 Unix 계열 OS를 많이 사용하기 때문에 newman을 설치해서 배치성이나 api 자동화 테스트하는 데 사용을 많이 한다. Newman 을 사용하면 좋은 점 수동적이고 반복적으로 GUI를 조작해야하는 방식에서 벗어날 수 있다. Terminal상에서 실행하였을 시 바로 Feedback을 확인할 수 있다. 각종 CI/CD에 적용할 수 있다. ##2. 3가지 적용 방법 1) URL Postman의 Web버전에서 Collection단위로 share하는 기능이 있다. 해당 기능을 이용하여 Public한 U..
분산 된 데이터 검색의 과제 문제: 느슨하게 결한 된 여러 독립 서비스에서 데이터를 검색하려고 함. 해결법 1. 모든 정보가 포함 된 단일 데이터베이스가 있다면 검색이 쉬울 것. a. 문제점: 단일 데이터베이스에는 팀이 독립적으로 작업할 수 있는 유연성이 제한, 대규모 성능이 제한됨. 2. 데이터 자체 색인을 작성하는 사용자 지정 집계 서비스를 사용하는 것. 데이터 인덱싱 GraphQL을 사용하여 데이터를 인덱싱 하려면? - GraphQL 쿼리를 업데이트 하여 관련 데이터를 검색한 다음 데이터베이스에 해당 쿼리를 한 번씩 호출해 결과를 ES에 색인화 할 수 있음 ES에는 데이터를 인덱싱 할 때 많은 사용자 정의 옵션이 있지만 대부분 기본 설정이 좋은 결과를 제공함. GraphQL 쿼리를 사용해 스키마를 ..
ES with English 분석 분석 문장: “It's my PReTty.hat_Yellow! $20.12 15.5% on sale. i ate pizza” ** Tokenizer로 분류 1. Standard 공백으로 텀을 구분하면서 일부 특수문자 제거 Filter Result 분석 속도 - It’s my, PReTty.hat_Yellow, 20.12, 15.5, on, sale, i, ate, pizza 4ms lowercase It's, my, pretty.hat_yellow, 20.12, 15.5, on, sale, i, ate, pizza 4ms Stemmer It’, my, PReTty.hat_Yellow, 20.12, 15.5, on, sale, i, at, pizza 특징: It’s -> ..
Logstash - 실시간 파이프라인 기능을 가진 데이터 수집 엔진 오픈소스. - 서로 다른 소스의 데이터를 동적으로 통합하고 원하는 대상으로 데이터를 정규화 할 수 있는 능력이 있음. 공식 문서: www.elastic.co/guide/en/logstash/7.6/introduction.html 특징 1. 강력한 Elastic / Kibana와의 시너지와 함께 수평적으로 데이터 프로세스 파이프라인이 스케일업 할 수 있음 2. 다른 input, filter, output 플러그인들을 mix, match 할 수 있다. 3. 200 개가 넘는 플러그인 사용이 가능함 4. 플러그인을 새로 생성하고 기여할 수 있음. Logstash Pipeline Logstash Execution Model Pipeline 3가..