전체 글(196)
-
L4 ▶ TCP 연결이라는 착각
참고 자료 : 널널한 개발자님의 외워서 끝내는 네트워크 핵심이론 - 기초 TCP 연결은 착각이다?TCP 연결이 착각이라는 말은 무슨 말일까. 만약 파일을 다운로드 중, LAN 케이블을 분리했다가 다시 연결하면 TCP 연결은 어떻게 될까?결론부터 말하면 연결은 잠시 유지된다. 연결이 유지되는 것이 아니라 잠시 유지되는 것이다. 즉, 이 말은 물리적인 연결이 제거되어도 논리적인 연결은 잠시 유지된다는 것이다. TCP 연결은 논리적인 개념이다.다른 예시로 무선 Wifi를 왔다갔다 다른 것으로 변경해도 보고있는 영상을 인터넷이 완전 끊기지 않은 이상 잠시동안 볼 수 있다.이는 물리적인 충격을 가해도 버퍼를 통해 잠시나마 데이터를 보관할 수 있기 때문이다. 어째든 잠시동안은 유지가 된다. 그런데 계속 유지하지는 ..
2024.06.02 -
L4 ▶ TCP Header / UDP Header
참고 자료 : 널널한 개발자님의 외워서 끝내는 네트워크 핵심이론 - 기초 TCP Header 형식 자세한 설명은 해당 블로그를 참고하자. TCP 헤더 설명 뿐만 아니라 등장 배경도 잘 설명되어있다.https://evan-moon.github.io/2019/11/10/header-of-tcp/#tcp%EC%9D%98-%ED%97%A4%EB%8D%94%EB%A5%BC-%EA%B9%8C%EB%B3%B4%EC%9E%90 TCP는 20bytes의 헤더를 사용하며 여러가지 옵션을 사용했을 최대 60bytes까지 사용할 수 있다.Source port : 출발지의 포트번호이다. 16bit의 크기를 가진다.Destination port : 목적지의 포트번호이다. 16bit의 크기를 가진다.Sequence Number :..
2024.06.02 -
L4 ▶ TCP 연결 / 종료 과정
참고 자료 : 널널한 개발자님의 외워서 끝내는 네트워크 핵심이론 - 기초 TCP 연결 과정(3-way handshaking)📝참고자료 : https://livenow14.tistory.com/57 연결 과정이라는 것은 정책을 교환한다는 의미이다.여기서 교환되는 정책이란 Sequence의 번호를 교환하는 것과 MSS(Maximum Segment Size)정보를 교환하는 것이다.Sequence 번호는 TCP연결이 순서번호로 구현된다는 의미이다. 그리고 순서번호는 전송하고자 하는 데이터의 바이트 수만큼 증가한다. 연결 요청단계(SYN_SENT) : 클라이언트 측 TCP는 서버TCP에게 SYN 세그먼트를 송신한다. 이 세그먼트에는 Payload가 들어있지 않다. 즉, 어플리케이션 계층의 데이터를 포함하지 않는..
2024.06.02 -
튜플
2019 카카오 개발자 겨울 인턴십 https://school.programmers.co.kr/learn/courses/30/lessons/64065 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr실행 결과 : 실패 문제를 제대로 분석하지 않으면 돌고 돌아 정말 힘들게 해결하거나 실패하는 문제인 거 같다. 순열을 이용해서 해결하려고 했다. 튜플이 될 수 있는 숫자를 저장해서 순열로 경우의 수를 구한다. 왜냐하면 튜플은 순서를 고려하기 때문이다. 그런데 이렇게 접근하니까 코드가 복잡해지고, 오류가 생겨도 어디서 발생했는지 찾기 힘들었다. 처음 설계한 과정은 다음..
2024.06.01 -
키패드 누르기
2020 카카오 인턴십https://school.programmers.co.kr/learn/courses/30/lessons/67256 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr실행 결과 : 실패두 점 사이의 거리를 유클리드 거리로 해결하려고 해서 오답이 나왔다. 맨허튼 거리로 구해야한다.왜냐하면 문제 조건에 상하좌우로만 움직인다고 했기 때문이다. 유클리드 거리는 대각선에 위치한 좌표도 직선의 거리로 생각하기 때문에 올바른 답이 나오지 않는다.유클리드 거리 : Math.sqrt(((y2 - y1) ** 2 + (x2 - x1) ** 2))맨허튼 거리 : ..
2024.06.01 -
수식 최대화
2020 카카오 인턴십https://school.programmers.co.kr/learn/courses/30/lessons/67257 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr실행 결과 : 실패문제를 이해하는 것은 어렵지 않다.그런데 구현에서 자꾸 정답이 나오지 않았다... 답답했다. 설계는 어렵지 않으니 생략하고 왜 정답이 나오지 않았는가 정리해보겠다.정답 코드는 다음과 같다.function format(expression) { const ret = []; let tmp = ''; [...expression].forEach((char)..
2024.06.01