전체 글

꾸준하게 열심히..
🔥 Computer Science/📡 네트워크

4. 네트워크 계층에서는 어떤 일을 할까? (TCP/IP 3 Layer)

Goal IP를 이해한다 라우터를 이해한다 IP 주소를 이해한다 서브넷을 이해한다 라우팅을 이해한다 역할 이전 시간에 배운 OSI 2계층 데이터 링크 계층에서는 이더넷을 통해 데이터를 전송했습니다. 하지만 같은 네트워크에 속한 컴퓨터에게만 보낼 수 있고 다른 네트워크에 있는 컴퓨터로는 보낼 수 없습니다. 왜 그럴까요? 내부 네트워크에서는 MAC 주소만으로도 찾아갈 수 있지만, 다른 네트워크에 있는 컴퓨터는 찾아갈 수 없습니다. 외부 네트워크로 찾아가기 위해서는 라우터라는 장비가 필요합니다. 라우터란? 라우터를 통해 네트워크를 분리 할 수 있습니다. (스위치나 허브는 분리가 안되고 같은 네트워크로 잡힙니다) 또한 라우터는 다른 네트워크로 데이터를 전송하기 위해 필요한 장비입니다. 데이터의 목적지가 정해지면..

🌻 JAVA/알고리즘, 자료구조

ArrayList 내부구현 간단하게 살펴보기 (feat. Array)

개요 ArrayList를 자주 사용하는 편인데 ArrayList는 왜 Array와 다르게 초기 사이즈를 정해주지 않아도 되고, 무한정으로 원소가 추가되는 것 입니다. 이 부분이 리스트를 사용하면서도 늘 의문이였습니다. 오늘은 ArrayList를 간단하게 해부해볼 것 입니다. 원소 추가하는 부분을 중점적으로 살펴보겠습니다. ArrayList 내부적으로는 어떻게 되어있을까? public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, java.io.Serializable { private static final long serialVersionUID = 8683452581122892189L; /** * Default..

🔥 Computer Science/📡 네트워크

3. 데이터링크 계층에서는 어떤 일을 할까? (TCP/IP 2 Layer)

이더넷이란? 윈도우를 사용해보셨다면, 인터넷 연결 확인을 위해 한번쯤은 봤을 법한 화면입니다. 위에서 말하는 이더넷이란 무엇일까요? 일단 데이터 링크 계층의 중요한 역할은 네트워크 장비간에 신뢰를 주고 받는 규칙을 정하는 역할을 합니다. 랜에서 데이터를 정상적으로 받기위해 필요한 계층인데요. 데이터를 주고 받기위해 정해진 규칙들 중 현재는 이더넷이라는 방식을 채택해서 사용중입니다. 그럼 우리는 이제 이더넷이 데이터를 주고 받기 위한 규칙이라고 이해할 수 있겠네요! 왜 이런 규칙들이 만들어졌을까요? 아래와 같은 상황을 살펴봅시다! 위와 같이 동시에 데이터를 송신한다면 어떻게 될까요? 네! 바로 데이터 간 충돌이 일어나게 됩니다. 이러한 현상을 이더넷은 어떻게 해결했을까요? CSMA/CD 반송파 감지 다중 ..

🔥 Computer Science/📡 네트워크

2. 물리 계층에서는 어떤 일을 할까? (TCP/IP 1 Layer)

전기신호 종류 아날로그 신호(전화, 라디오 등) 디지털 신호 (둘의 차이점은 다음을 참조) 물리 계층에서는 데이터를 전기신호로 변환하는 기능을 합니다. 디지털 신호는 0과 1을 정확하게 표현할 수 있습니다. 전송하려는 데이터를 비트열로 변환하여 랜카드로 전달하면 0,1 전기 신호로 변환해서 전송하게 됩니다. 물리계층에 해당되는 네트워크 장비는 어떤게 있을까요? 바로 리피터와 허브가 물리계층에 해당됩니다. 리피터 (신호 증폭) 리피터는 말 그대로 일그러지고 약해진 신호를 복원시켜서 증폭하는 기능을 합니다. 허브 (더미허브 또는 리피터 허브) 허브 = 더미 허브 = 리피터 허브 라고도 부르며, 여러 개 PC와 통신할 수 있도록 해주는 장치입니다. 허브는 리피터의 기능을 포함하고 있기 때문에 리피터 허브라고 ..

💐 Spring/개념 및 이해

Spring 존재하지 않는 API 응답 커스터마이징 (feat. 내부 동작도 살펴보기)

Intro 기본적으로 Spring MVC는 존재하지 않는 API 요청 시 응답을 다음과 같이 주고 있습니다. { "timestamp":"2023-09-21T11:30:05.517+00:00", "status":404, "error":"Not Found", "path":"/api/404" } 위 응답은 Spring MVC가 기본적으로 제공해주는 오류 응답 입니다. 보통 실무에서는 프레임워크에서 기본적으로 제공해주는 응답값을 사용하기 보단 공통 응답 포맷을 맞춰서 사용할 것 입니다. 어떻게 하면 Not Found에 대한 응답을 커스텀할 수 있는지와 내부적으로 어떻게 동작하고 있는지도 함께 에러 로그와 코드를 통해 살펴보겠습니다. 에러 응답이 생성되기까지의 여정 그렇다면 어떻게 스프링MVC에서는 에러 메세지를..

🔥 Computer Science/📡 네트워크

1. 네트워크를 들어가기 앞서 (OSI 7 Layer, TCP/IP 5 Layer, 캡슐화란?)

들어가기 전.. 컴퓨터는 0과 1밖에 표현할 수 없다는 사실은 누구나 알고 있을 것 입니다. 그렇다면 우리가 웹 페이지에 접속했을 때, 그 많은 데이터는 어떻게 주고 받고 우리가 볼 수 있는 것 일까요? 웹이 동작하는 원리 어떻게 인터넷을 통해 우리가 웹페이지를 볼 수 있는지에 대해서 알아보겠습니다. 어떻게 HTTP로 사진을 받는거지? 고용량의 사진을 보내려면 엄청나게 오래 걸릴 것 입니다. 용량이 큰 파일을 한번에 보내는게 과연 효율적일까요? 데이터를 전송하면 회선을 사용하는데 그 회선은 여러 곳에서 나눠쓰게 됩니다. 그래서 한 회선을 오랫동안 점유하고 있으면 다른 곳에서 그 회선을 사용하기까지 기다림으로써 네트워크 지연이 발생하게 됩니다. 그렇기 때문에 회선을 빨리 사용하고 빠르게 반납하는게 중요합니..

iseunghan
iseunghan