본문 바로가기

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

2024-09-21 갓생 살기 10일차

요즘 자소서랑 포트폴리오에 집중하느라 CS 공부를 하지 못했다 ㅜㅜ

 

1. 자바 

개념 복습 

상속 extends 는 하나만 가능. 

상속을 하고 인스턴스를 생성하면 

부모 생성자가 먼저 호출되고 자식이 이후로 호출됨

실제로 힙 메모리를 보면 부모 멤버변수 먼저 잡혀있고 그 다음에 자식이 잡혀있음 

업 캐스팅의 경우는 

Customer customer = new VipCustomer();

이렇게 코드를 작성했을 때 

customer 는 VipCustomer에 접근 하지 않고 Customer에 접근함. 

업캐스팅이 되었기 때문. 

overiding은 상속받은 자식 클래스가 부모 메서드에 대해 다시 작성하고자 할 때 사용가능 

단 매개변수와 반환타입 같아야함

 

2. 자료구조 - 이진 트리 

이진 트리의 구조와

이진 트리에 값을 넣는 방법에 대해서 배워봄

Root 가 있고 왼쪽에는 Parent보다 작을 때, 오른 쪽에는 Parent보다 클 때 

 

3. 알고리즘 - 순차 탐색, 이진탐색

순차는 말그대로 순차적으로 탐색하는거. for문 돌면서 탐색하는거라서 코드는 생략 하겠음 

이진 탐색은 list의 가운데 인덱스를 찍고 거기에 들어있는 값이 찾고자 하는 값보다 작으면 0~가운데 인덱스 dataList를 통해 탐색하고 크면 가운데 ~ 끝 에 있는 dataList를 통해 같은 작업 반복. 또 찾고자 하는 값인 경우는 return 

 

import java.util.ArrayList;

public class BinarySearch {
    public boolean searchFunc(ArrayList<Integer> dataList, Integer searchItem) {
        if (dataList.size() == 1 && searchItem == dataList.get(0)) {
            return true;
        } 
        if (dataList.size() == 1 && searchItem != dataList.get(0)) {
            return false;
        }
        if (dataList.size() == 0) {
            return false;
        }
        
        int medium = dataList.size() / 2; 
        
        if (searchItem == dataList.get(medium)) {
            return true;
        } else {
            if (searchItem < dataList.get(medium)) {
                return this.searchFunc(new ArrayList<Integer>(dataList.subList(0, medium)), searchItem);
            } else {
                 return this.searchFunc(new ArrayList<Integer>(dataList.subList(medium, dataList.size())), searchItem);
            }
        }
    }
}

 

4. 네트워크 강의 - IP 에 대해 배움

IP 4 와 

2의 32승 의 IP 주소를 갖는다 

그런데 값이 너무 크니깐 사람들이 읽기 좋게 8bit로 끊고 10진수를 바꾸어 표시한다. 

IP에는 네트워크 아이디와 호스트 값을 갖고 있다. 그리고 같은 네트워크에 해당하는 호스트는 같은 네트워크 ID를 갖고있다. 

어디까지가 네트워크 아이디인지 알려면 Subnet mask가 필요함. 그래서 subnet maskf랑 ip주소는 항상 같이 다닌다. 

라우터는 destination Ip 를 포워딩 테이블과 매칭 시키기 위해 longest prefix match forwarding을 사용한다. 

즉, 매칭 되는 prefix 를 가진 주소 중에 가장 긴걸 선택 한다. 

 

Subnet이란 라우터를 거치지 않고 접근이 가능한 host의 집합. 같은 prefix를 가진 device의 집합이다. 

 

IP 6 IP 4로는 공간이 부족하여 생긴 IP 6

NAT 에 대해 배움 IP6를 쓰지 않고 주소 부족 문제를 해결하기 위한 방법

IP 주소 를 예를들어 10.0.0.1을 사용한다고 하자. 네트워크가 같은 Host 끼리는 그 주소를 사용해도 되지만 외부에서도 그 주소를 재사용할 수 있기 때문에 외부를 거쳐 나갈 때에는 IP 주소를 다른 값으로 바꾸어준다. 하지만 문제점은 packet내의 header와 data 정보를 바꾸는 것이라서 계층 violation이 일어난다는 문제점이 있다.

 

5. 자바 스크립트 

특징 => 싱글 스레드, 비동기처리

싱글 스레드라서 한번에 하나의 작업처리 

비동기 처리 => 특정 로직의 실행이 끝날때까지 기다리지 않음. 다른 코드 먼저 실행.

 

 

6. 할일 => 자소서, 포트폴리오 수정

 

참고

 

https://github.com/Esoolgnah/Frontend-Interview-Questions?tab=readme-ov-file