본문 바로가기

오늘 공부 스케줄 끄적끄적..

2024-09-14 갓생 살기 8일차

1. sql 공부 

sql join 문제 4개 풀이를 해보았다. 

 

2. 자바 공부

기초 개념 복습

static 은 프로그램이 시작될 때 데이터 메모리 영역에 잡힌다는 것에 대해서 공부

스태틱 메서드 내부에서는 인스턴스의 변수 활용 할 수 없음 

싱글톤 패턴 > 프로그램에서 인스턴스가 딱 한개만 생성 되어야 하는 경우 사용하는 패턴 

 

3. 자료구조 - 해시

key :value 매핑으로 저장과 읽는 속도가 빠름

 

4. 알고리즘 - 퀵 정렬

pivot 을 기준으로 pivot 보다 작은건 왼쪽에 ,  pivot 보다 큰건 오른쪽에 두고 병합 까지 해보는 것까지 작성해봄

맨 마지막에 addAll에 보면 오른쪽 배열과 왼쪽 배열의 각각의 사이즈가 1이 될 때까지 재귀 함수를 호출한다고 보면 됨.

import java.util.ArrayList;
import java.util.Arrays;

public class QuickSort {
    public ArrayList<Integer> sort(ArrayList<Integer> dataList) {
        if (dataList.size() <= 1) {
            return dataList;
        }
        int pivot = dataList.get(0);
        
        ArrayList<Integer> leftArr = new ArrayList<Integer>();
        ArrayList<Integer> rightArr = new ArrayList<Integer>();        
        
        for (int index = 1; index < dataList.size(); index++) {
            if (dataList.get(index) > pivot) {
                rightArr.add(dataList.get(index));
            } else {
                leftArr.add(dataList.get(index));
            }
        }
        
        ArrayList<Integer> mergedArr = new ArrayList<Integer>();
        mergedArr.addAll(this.sort(leftArr));
        mergedArr.addAll(Arrays.asList(pivot));
        mergedArr.addAll(this.sort(rightArr));
        
        return mergedArr;        
    }
}

 

6. 네트워크 -  TCP Congestion control 

처음에는 천천히 시작 (1 MMS - 세크먼트 하나 단위) 하고 점점 빨라짐 

패킷이 유실된 경우 속도 제어하는 방식 두가지가 있는데 

- 타임 아웃의 경우는 ACK(10)이라고 했을 때 10 이상은 응답을 못받고 있는 상황이기 때문에 심각한 상황임. 처음과 같은 속도로 다시시작 

- 3 ACK duplicate의 경우는 ACK(10)이라고 했을 때 다른건 다 받고 10만 못 받은 경우 이기 때문에, 타임아웃보단 덜 심각. 1/2 로 줄임

 

7. 프론트 cs 공부 

- rest API란 

HTTP URL 를 통해 자원 명시, HTTP 메서드를 통해 해당 자원에 대한 CRUD 작용. 

 

8. 이제 할일은 

자소서 작성.  => 어제 자소서 한 개 제출함!

포폴 수정