[TIL] 24.09.30 MON

GDORI·2024년 9월 30일
0

TIL

목록 보기
57/79
post-thumbnail

오늘 푼 알고리즘 코드카타

기능개발

풀이

작업물들의 진행도가 적혀있는 progresses 리스트와 각 작업물들이 하루에 어느정도 개발할 수 있는지 적혀있는 speeds 리스트가 있다.
우리는 진행 일수에 따라서 각 배포마다 몇 개의 기능이 배포되는지를 알고자 한다.
위 문제는 각 작업물마다 며칠이 지나야 배포가 가능한지를 구한 후 이걸 가지고 배포일 기준으로 몇개씩 처리되는지 체크할 것이다.

js 코드

function solution(progresses, speeds) {
    const answer = [];
    // 각 작업물마다 얼마나 걸리는지 구한다.
    const completeDays = progresses.map((progress,idx) => Math.ceil((100-progress)/speeds[idx]));
    const length = completeDays.length;
    // 첫 번 째 비교할 일수를 첫 작업물의 완수일로 지정한다.
    let day = completeDays[0];
    
    let num = 0;
    // 전체 작업물을 돌면서 날짜를 비교한다.
    for(let i=0; i<length; i++){
          // 해당 작업물이 완수일보다 작거나 같으면 배포가 가능하다는 뜻으로 num을 증가
          if(completeDays[i] <= day){
              num++;
          // 아니라면 지금까지 배포할 수 있는 건수(num)를 answer 배열에 넣고 현재 작업물의 완수일을 day에 대입
          }else{
              answer.push(num);
              num = 1;
              day = completeDays[i];
          }
    }
    // 마지막으로 나올때 answer에 num을 push 하지 않고 나오기 때문에 최종으로 푸쉬해줌.
    answer.push(num);
    
    return answer;
}

IP 개념, IP주소 체계, 서브넷 마스크

IP 개념

IP는 Internet Protocol, 즉 인터넷에서 데이터를 전달하기 위한 규칙이다. IP는 데이터 패킷을 전송하는 과정에서 목적지 주소를 포함해 통신할 수 있도록 하는 역할을 한다.

IP 주소 체계

IP 주소는 네트워크 상의 각 장치를 식별하는 고유 번호이다. IPv4와 IPv6로 나뉘며 차이는 다음과 같다.

  • IPv4
    32비트 주소체계로 4개의 숫자로 표현되며 각 숫자는 0~255의 값을 가진다. 43억개의 주소를 표현할 수 있다.
  • IPv6
    128비트 주소체계로 IPv4의 주소 부족을 해결하기 위하여 개발되었다.

서브넷 마스크

서브넷 마스크는 IP주소의 네트워크 부분과 호스트 부분을 구분하는데 사용된다. 서브넷 마스크 255.255.255.0은 IP 주소의 첫 3바이트를 네트워크 주소로 마지막 1바이트를 호스트 주소로 구분한다. 이를 통해 하나의 네트워크를 여러 개의 서브네트워크로 나눌 수 있고 효율적 할당이 가능하다.

그러면 IP주소를 할당하는 방법에는 어떤 것이 있나?

IP주소는 고정 IP

브라우저에 네이버 주소를 입력했을 때 네트워크 상에서 발생하는 과정

  1. DNS 요청
    사용자가 도메인을 입력하면 브라우저는 DNS서버에 도메인 이름에 해당하는 IP주소를 요청하고 DNS 서버는 도메인에 대한 IP 주소를 반환한다.
  2. TCP 연결
    반환받은 IP주소로 TCP 연결을 시도한다.
  3. HTTP 요청
    TCP 연결이 완료되면, 브라우저는 네이버 서버에 HTTP요청을 보내고, 요청에는 웹페이지나 데이터에 대한 정보이다.
  4. 서버 응답
    요청을 처리 후 웹페이지와 데이터를 포함한 HTTP 응답을 브라우저로 전송한다.
  5. 렌더링
    브라우저는 받은 데이터를 해석하여 요소를 처리하고 화면에 출력한다.
  6. TCP 연결 해제
    페이지 로드가 완료되면 TCP 연결을 해제한다.

라우터와 라우팅

라우터

라우터는 여러 네트워크 간 데이터를 전달하는 네트워크 장치로 서로 다른 네트워크 간의 통신을 중계하며, IP패킷을 적절한 경로로 전달하여 목적지까지 전송하는 역할을 한다.

라우팅

라우팅은 데이터를 최적의 경로로 전달하는 과정이며 크게 2가지로 나뉜다.

  • 정적라우팅
    관리자가 수동으로 경로를 설정하는 방식으로 네트워크가 환경이 작고, 자주 변하지 않는 환경에서 사용된다. 설정이 간단하지만 변화에 유연하지 않다는 점이 있다.

  • 동적라우팅
    라우터가 자동으로 경로를 선택하고 관리하는 방식으로 라우팅 프로토콜을 통해 다른 라우터와 정보를 교환하고 변화하는 네트워크 환경에 따라 경로를 자동 수정한다.

profile
하루 최소 1시간이라도 공부하자..

0개의 댓글