일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- execute
- dfs
- SQL프로그래밍
- BOJ
- querydsl
- 즉시로딩
- 백트래킹
- 연관관계
- 이진탐색
- JPQL
- fetch
- 비관적락
- shared lock
- 스프링 폼
- eager
- 다대일
- 낙관적락
- PS
- CHECK OPTION
- 지연로딩
- exclusive lock
- 연결리스트
- 유니크제약조건
- 일대다
- 데코레이터
- 다대다
- FetchType
- 동적sql
- 스토어드 프로시저
- 힙
- Today
- Total
목록전체 글 (555)
흰 스타렉스에서 내가 내리지
1. Collections.reverse(list); 2. List list = new ArrayList(); // 리스트에 원소들 추가 List reversedList = new ArrayList(); ListIterator iterator = list.listIterator(list.size()); while (iterator.hasPrevious()) { reversedList.add(iterator.previous()); } 3. List list = new ArrayList(); // 리스트에 원소들 추가 list.sort(Collections.reverseOrder()); 성능 측면에서 1번이 효율적이다. 기존 List 를 변경하는 방식이라 메모리 사용 측면에서 효율적이다.

각각의 리전은 이중화 되어있는 100G급의 AWS 자체 네트워크로 연결되어 리전 간에 고속의 네트워크 환경을 제공한다. 각 AWS 리전은 지리적 영역 내에서 최소 3개의 독립적인 가용영역으로 구성된다. 그리고 하나의 가용영역은 하나 이상의 개별 데이터센터로 구성된다. 즉, 데이터센터가 모여서 하나의 가용영역으로 이루어지고, 가용영역이 모여 하나의 리전으로 구성된다. 현재 서울 리전은 4개의 가용영역으로 이루어져 있다. 가용영역이란 다른 가용영역과 완전히 격리된 하나 이상의 데이터센터를 의미한다. 한 가용영역에는 충분한 물리적 거리를 두어 특정 가용영역에서 발생한 재난 상황이 다른 가용영역에까지 영향을 미치지 않도록 설계되었다. 또한 각 가용영역들은 독립된 전력 및 낸각 인프라를 구축하고 있다. 각 가용영..

동일한 지리적 영역 내에 위치한 데이터 센터를 '리전'이라고 한다. 예를 들어 서울 리전은 서울 지역에 위치한 데이터 센터의 모음이다. AWS에서는 이런 리전에 있는 물리적 서버를 가상화하여 여러 개로 나누어 서비스하고 있다. 하이퍼바이저라고 하는 다수의 운영체제를 동시에 실행하기 위한 논리적 플랫폼을 통해, 물리적 호스트를 여러 개의 게스트로 나누게 되고, 우리는 이것을 EC2 인스턴스라고 말한다. 리눅스, 윈도우즈, 맥과 같은 OS 지원 물리적 호스트 전체를 그대로 이용하는 베어메탈 서비스와 디스크, 네트워킹 서비스를 이용할 수 있다. 우리의 워크로드에 맞는 다양한 인스턴스를 제공하고 있다. 다양한 구매 옵션으로 비용 절감에 도움을 주고 있다. 우리는 EC2를 사용하기 위해서 기존 물리 서버처럼 필요..
ff

@Api(tags = "Second") @RestController @RequestMapping("/second") @RequiredArgsConstructor public class PlayerController { private final AmazonDynamoDBClient amazonDynamoDBClient; private final PlayerRepository playerRepository; @PostMapping("/player") public String registerPlayer(@RequestBody Player player){ System.out.println(player.getId()+ player.getName()); Player newPlayer = new Player(play..
String, StringBuffer, StringBuilder 차이점 첫번째 차이점은 String은 불변하다는 특징을 가지고 있어서 수정을 하지못하고 새로운 String 인스턴스가 생성되고 전에 있던 String은 GC에 의해 사라지게 된다. 그래서 좋은 성능을 기대하기는 힘들다. (String 불변, StringBuffer, StringBuilder 가변) StringBuffer는 동기화 키워드를 지원하여 멀티쓰레드 환경에서 안전하다는 점(thread-safe) 입니다. 참고로 String도 불변성을 가지기때문에 마찬가지로 멀티쓰레드 환경에서의 안정성(thread-safe)을 가지고 있습니다. 반대로 StringBuilder는 동기화를 지원하지 않기때문에 멀티쓰레드 환경에서 사용하는 것은 적합하지 않..

# Redis - Remote Dictionary Server → 외부에 있는 딕셔너리라는 자료 구조를 사용하는 서버 - Database, Cache, Message broker - In-memory Data Structure Store - Supports rich data structure # Cache - 나중의 요청에 대한 결과를 미리 저장했다가 빠르게 사용하는 것 # Redis의 탄생 데이터 베이스는 HDD, SSD에 저장. 메인 메모리에 저장해서 좀 더 빠르고 쉽게 데이터에 접근하면 어떨까 해서 탄생한 In-memory Database Redis. 더 자주 접근하고 덜 자주 바뀌는 데이터를 저장하자. # Race Condition 해결 - Redis는 기본적으로 Single Threaded - ..

@Builder.Default 어노테이션은 Lombok에서 제공하는 기능으로, 빌더 패턴을 사용할 때 기본 값을 설정하는 용도로 사용된다. 해당 어노테이션을 사용할 때 "requires an initializing expression (' = something ')" 오류가 발생한다면 초기화 표현식이 누락된 것이다. @Builder.Default를 사용하여 필드에 기본 값을 설정하려면 해당 필드를 초기화해야 한다. 에러가 나는 코드 : 에러 해결 :

List에서 중복을 제거하는 방법을 구글에 검색해보면, 다양한 방법을 소개해주지만 무엇이 더 효율적인지 알려주는 글은 찾지 못했다. 더 검색해보면 찾을 수 있겠지만, 그 전에 그냥 내가 직접 실험해보고 싶어졌다. List에서 중복을 제거하는 방법으로는 두가지가 있겠다. 1. Set을 이용하기 2. Stream을 이용하기 결론 : Stream이 대체적으로 더 빠르다. 테스트 코드 ////////////////////////////////////////////////////////// long startTime = System.currentTimeMillis(); Set sets = new HashSet(); for (Category category : member.getCategories()) { List..