일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 재정의
- 생성자 주입
- docker
- 테스트 코드
- hashcode
- jwt
- KEVISS
- select_type
- stream
- cache
- redis
- 조합
- Spring
- static
- jpa
- 인덱스
- DI
- SQL
- java
- equals
- Test
- lambda
- VUE
- 바이너리 카운팅
- MSA
- DDL
- StringBuilder
- AOP
- 열 속성
- 필드 주입
- Today
- Total
목록Spring (15)
백엔드 개발자 블로그
OSIV에 대해서 알아보자OSIV란?Open Session In View = Controller나 뷰 영역에도 영속성 컨텍스트를 유지한다 영속성 컨텍스트의 범위는 어떻게 되나?영속성 컨텍스트는 엔티티 매니저와 연관이 깊다. 엔티티 매니저가 생성되는 시점에 생성되고 엔티티 매니저가 종료되는 시점에 소멸한다.트랜잭션 매니저를 별도로 구현하지 않고 @Transactional 애노테이션을 사용한다면 애노테이션이 붙어있는 메소드 영역 내에서 영속성 컨텍스트가 생성되고 소멸되는 것으로 이해할 수 있다.@Transactionalpublic Person get(int id) { return personRepository.findById(id);} 영속성 컨텍스트의 범위를 확장해야 하는 이유는?몇년 전까지만..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/1xqHO/btsHmS0IrrK/KLkE77RjAdnIkXPK9HkJW0/img.jpg)
DB 트래픽을 왜 분산시키는 이유데이터베이스의 더 많은 가용성을 확보하기 위함이다더 많은 I/O 작업을 수행하기 위함이다.I/O작업이 많으면 메모리가 가득 찰수도 있고, 커넥션 풀이 부족할 수도 있고, 물리적인 디스크 용량이 가득찰 수 있다DB I/O 가용성 확보 방법1. DB 서버 스펙을 향상실제로 많은 비용이 발생할 수 있다 2. 샤딩으로 데이터를 분산처리샤딩으로 데이터를 분산처리하고 사용하는 과정은 그리 간단하지는 않다 3. 서비스에 따라 데이터베이스를 독립적으로 분리MSA만 가능한 방법이다. 4. CQRS 패턴을 적용해서 Query용 데이터베이스와 Command용 데이터베이스를 분리Command 용으로는 성능을 최대한 올리는 있는 NoSQL을 사용한다.Query용으로는 연관관계를 좀 더 효율적으로..
https://opengraph.githubassets.com/c90eb78f30bf36acd86efd3a6d4093807ca77c6f8aa26f27630af6e2e17f3f76/redisson/redissonredisson 이란??redisson은 자바 언어로 구현된 레디스 분산락 클라이언트이다레디스 분산락은 서로 다른 프로세스가 서로 베타적인 방식으로 공유 리소스와 함께 작동해야 하는 많은 환경에서 매우 유용한 기본 기능이다자바 언어 이외에 ruby, python, php 등 다양한 클라이언트 라이브러리가 존재한다https://redis.io/docs/manual/patterns/distributed-locks/분산락을 구현하는 로직구현 자체는 간단하다획득하고자 하는 이름의 락을 정의하고 유효 시간까..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cohLUs/btsHl3NuxJY/KfqKVoIS0mm0wTDkyjzwn0/img.jpg)
RestTemplate을 별다른 설정하지 않고 사용하다 보면 다양한 이슈가 발생하기에 주의사항을 정리해보고자 한다RestTemplate이란?RestTemplate은 스프링 프레임워크에서 제공하는 HTTP 클라이언트 라이브러리이다. 주로 HTTP 프로토콜 기반으로 데이터를 전송하는 웹 서비스를 통신하기 위해 사용된다주의사항Timeout 설정이 필요하다만약 RestTemplate을 통해서 타 서비스를 호출한다. 그런데 해당 서비스는 실행시간이 10초가 걸린다고 하자그럼 RestTemplate은 타서비스의 response를 받을 때까지 커넥션을 유지하게 된다여기까지는 크게 이슈는 없다고 볼수 있다그런데 만약 동시에 10000개의 요청이 들어온다면 어떻게 될까?애플리케이션의 가용할 수 있는 모든 쓰레드는 Res..