일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- DB
- DiscriminatorColumn
- Flush
- MappedSuperclass
- 정렬
- JPA
- 지연로딩
- DiscriminatorValue
- 페치조인
- Embeddable
- commit
- relational DB
- ROLLBACK
- 플러시
- 즉시로딩
- Amortized Analysis
- n+1문제
- Algorithm
- fetch join
- 영속성 컨텍스트
- relational database
- 순수jpa
- Spring Data JPA
- 고아객체
- 분할상환분석
- 값타입
- 엔티티 매핑
- Spring
- 관계형 데이터베이스
- 영속성전이
- Today
- Total
목록Computer Science (8)
Jun's note

프로젝트 리팩토링 단계 중, 로드밸런싱 기술에 대해 알게되어 이를 정리해볼려고 한다! 1. 로드밸런싱이란? 한마디로 서버 부하를 분산하는 것이다. 한 대의 서버로 부하가 집중되지 않도록, 트래픽을 여러 서버로 분산하는 것이다. 로드밸런싱하는 방법은 웹서버를 통한 로드밸런싱, AWS 서비스를 통한 로드밸런싱 이렇게 2가지 방식으로 구현할 수 있다. 1 - 1) 웹서버를 통한 로드밸런싱 - Nginx를 예로 들 수 있다. Nginx는 웹서버로, 하는 일은 크게 2가지가 있다. 첫번째는 클라이언트로부터 요청받은 정적파일(html,js,이미지파일 등)을 처리한다. 이를 통해 WAS의 부담을 줄여줘 좀더 안정적인 서버를 구축할 수 있다. WAS는 동적인 데이터를 처리하기 때문에 웹서버보다 잘 죽는다고 한다. 만약..

1. resource (리소스, 자원) 리소스는 정적파일과 동적컨텐츠와 같은 웹에 콘텐츠를 제공하는 모든 것들을 말합니다. 웹 리소스는 웹서버에서 관리, 제공합니다. 정적파일은 텍스트 파일, HTML 파일, 마이크로소프트 워드 파일, 어도비 아크로뱃 파일, JPEG 이미지 파일, AVI 동영상 파일 등을 말합니다. 동적파일은 주식 거래, 부동산 데이터베이스 검색 등이 있습니다. 2. URI (Uniform Resource Identifier) '인터넷 자원을 나타내는 고유 식별자'이다. 쉽게 말하면, Identifier가 의미하는 것은 인터넷에 있는 자료의 ID라고 볼 수 있다. 때문에 다른 자료와 같은 이름을 가지고 있으면 안되기 때문에 URI는 유일하다. Uniform: 리소스 식별하는 통일된 방식 ..
1. TCP (1) 특징 연결지향: 받는사람이 컴퓨터가 켜져있는지(연결할 수 있는 상태인지 확인) (ex. 연결할 수 있는 상태일때 보내자) (먼저 연결한 다음에 메시지를 보낸다) 데이터 전달 보증: 내가 메시지를 보냈는데, 받는사람이 못받음-> 패킷이 누락된것을 알 수 있음 순서보장: 내가보낸 메시지 순서대로 받을수있도록 보장(만약 중간에 순서가 바뀌면 서로 서버가 알아서 다시 보내도록함) 신뢰할 수 있는 프로토콜 (2) TCP 3 way handshake 3번 ACK 서로 보냄 (1번, 너 연결 되어있니?. 2번 나 연결되어있다. 3번 둘다 알겠다) 요즘 최적화돼서 3번 ACK보낼때 데이터도 같이 전송함 (최적화) (3) TCP 장단점 장점: TCP는 신뢰할 수 있는 프로토콜 단점: 데이터 전달 보증..
1. 기수정렬 개념

1. 합병정렬 정의 분할 정복 알고리즘의 하나로, 더 이상 쪼개지지 않을때까지 작은 크기로 분할하여, 작은 배열끼리 비교하는 과정을 수행해 하나의 배열로 합치는 정렬이다. 과정 1. 원래 배열을 두 개의 작은 배열로 분할하여 더 이상 쪼개지지 않을 때까지 재귀적으로 수행한다. 2. 가장 작은 크기의 배열부터 시작하여, 두 개의 배열을 서로 비교하면서 오름차순(또는 내림차순)으로 정렬해 합친다. 합병정렬 예제 2. 합병정렬 특징 - 장점 안정적인 정렬 방법 (입력한 값이 무엇이든 간에 정렬되는 시간은 O(nlog2n)으로 동일하다) - 단점 배열 크기가 큰 경우에는 이동횟수가 많아 시간적 측면에서 크게 낭비된다. 3. 시간 복잡도 - Best Case O(nlog2n) - Worst Case O(nlog2..
1. 퀵정렬 정의 임의로 pivot 잡은 후 pivot보다 작은 그룹을 왼쪽. 큰 그룹을 오른쪽으로 분할하여 해결한다. (분할 정복 방법) 분할 정복 방법 (divide-and-conquer) 큰 문제를 작은 문제 단위로 쪼개면서 해결한다. 문제를 2개의 문제로 분리하는데, 원소개수가 1개가 될 때까지 분리한다. 그 다음 작은 문제에서부터 결과를 모아 원래 문제를 해결한다. 멀리 있는 값들끼리 교환이 일어나므로 불안정한 정렬이다. 퀵정렬은 분할, 정복, 결합 단계로 이뤄진다. 분할(Divide): 피벗을 중심으로 피벗보다 작은 원소는 왼쪽, 큰 원소는 오른쪽으로 분할한다. 정복(Conquer): 부분 배열을 정렬한다. 결합(Combine): 정렬된 부분 배열들을 하나의 배열로 합친다. 2. 퀵정렬 특징 ..

1. 삽입정렬 정의 자신보다 앞의 원소가 큰지 작은지 비교하여 자신의 위치를 찾아서 삽입하는 정렬 알고리즘이다. 왼쪽에는 이미 정렬된 부분, 오른쪽에는 정렬해야하는 부분으로 나눈 후 정렬한다. 두 번째 원소부터 시작하여 왼쪽에 있는 이미 정렬된 부분이랑 비교하여 삽입할 위치를 지정한 후, 삽입할 위치 뒤에 있는 원소들을 뒤로 옮겨 해당 위치에 원소를 삽입하는 알고리즘이다. (사진 출처: https://rninche01.tistory.com/entry/%EC%A0%95%EB%A0%AC-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-01-%EC%82%BD%EC%9E%85-%EC%A0%95%EB%A0%AC) 2. 삽입정렬 특징 정렬하고자 하는 개수 크기가 작을수록 좋은 알고리즘 이미 정렬되..

이 분석은 “최악”의 경우에 대한 것이다. Amortized Analysis 정의 “최악의 경우에 대해 최악의 경우가 발생하도록 연속된 연산을 수행하고, 그때 한 번의 연산에 대한 평균수행시간을 분석하는 것” 이것이 왜 필요한가? 예를 들어, 비용을 1만큼 쓰는 연산이 있는데 이 연산은 가끔 n번 발생한다고 하면, Asymptotic analysis(점근적 분석)을 사용하면 이 연산은 O(n)이 된다. 하지만 가끔 일어나는 경우 때문에 O(n)이라고 하기에는 아깝다. 이를 보완하기 위해 나온 분석이 “Amortized Analysis”이다 다시 말하면 Amortized Analysis는 최악의 경우에 연속으로 발생하는 연산의 “평균비용”을 의미한다. (Array Doubling) n크기의 배열이 꽉 차 ..