본문 바로가기

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

2024-09-11 갓생 살기 6일차

1. 프로젝트 오류 수정

도감 이동 기능을 구현하는데, api가 2번 요청되는 문제가 있어서 살펴봤더니..

div 전체를 누를때랑 저장 버튼을 누를 때랑 둘 다 onClick 이벤트를 걸어놨었던 것이었다. 

저장 버튼의 onClick 이벤트는 빼고 div 전체에만 onClick 이벤트를 걸어두는걸로 바꾸니, 말끔하게 해결 되었다. 

 

2. sql 

오늘은 rank, dense rank, join 에 관련한 문제를 풀어보았다

 

3. 자바

기초 개념 복습

생성된 인스턴스는 Heap메모리에 할당되고 각각의 인스턴스는 다른 메모리 주소를 가짐 => 그것의 참조값을 갖고있는 참조변수는 stack메모리에 할당 됨. 힙에 생성된 인스턴스는 Garbage Collector가 주기적으로 사용하지 않는 메모리를 수거 

 

참조 자료형 - new를 이용해서 생성( String은 예외)

 

4. 양방향 링크드리스트 

값을 특정 값 앞에 넣는 방법에 대해서 살펴보았다 

링크드 리스트가 비었을 때, 특정값이 header일 때, 특정값이 header가 아닐 때

이 세가지 분기로 쪼개어 코드를 작성하는 시간을 가졌다. 

 

5. 알고리즘 - 병합정렬

병합정렬은 큰 것을 쪼개어 문제를 해결하고 다시 합치는 정렬인데

일단 큰것을 반으로 쪼개고, 또 반으로 쪼개고, 쪼갤 수 없을 때 까지 쪼갠다음에 (재귀 함수가 필요할 것 같음) 

다시 하나씩 병합을 하여 푸는 방식이다. 

오늘은 쪼개는 방법을 코드로 작성해 보았다. 

public class Split {
    public void splitFunc(ArrayList<Integer> dataList) {
        if (dataList.size() <= 1) {
            return ;
        }
        int medium = dataList.size() / 2;
        
        ArrayList<Integer> leftArr = new ArrayList<Integer>();
        ArrayList<Integer> rightArr = new ArrayList<Integer>();
        
        leftArr = new ArrayList<Integer>(dataList.subList(0, medium)); 
        rightArr = new ArrayList<Integer>(dataList.subList(medium, dataList.size()));
        
        System.out.println(leftArr);
        System.out.println(rightArr);        
    }
}

 


6. 네트워크

TCP 

세그먼트 구조에 대해서 배웠다 

보내는 사람 Port , 받는 사람 Port

Port 번호는 0 ~ 2^16까지 

시퀀스 넘버, ACK 넘버

Receive window( 리시브 버퍼에 얼마나 공간이 있는지, f리시브 상황에 따라서 조절을 하기 때문에)

에러 디텍션 역할을 하는 checksum 

data

 

그래서 TCK 는 센더와 리시버에 버퍼가 가각 존재한다. 

Cumulative Ack ACK(43)의 의미는 => 42번까지 센더로부터 잘 받았으니, 43번을 기다리겠다는 의미 

각각의 시나리오에 대해서 배워봤다.

 

7. 마지막으로 

오늘 남은일 

- 자소서 쓰기 

- DP 문제 한개 풀기 

- 포트폴리오 수정