라우터는 3 계층에서 동작하고 이름처럼 경로를 지정해주는 장비이다. 라우터에 들어오는 패킷의 목적지 IP 주소를 확인하고 자신이 가진 경로 정보를 이용해 패킷의 최적의 경로로 포워딩한다. 또한 원격지 네트워크와 연결할 때 필수 네트워크 장비이며 네트워크를 구성하는 핵심 장비이다. 라우터의 동작 방식과 역할 라우터는 다양한 경로 정보를 수집해 최적의 경로를 라우팅 테이블에 저장한 후 패킷이 라우터로 들어오면 도착지 IP 주소와 라우팅 테이블을 비교해 최선의 경로로 패킷을 내보낸다. 이 말은 패킷의 목적지 주소가 라우팅 테이블에 없다면 패킷을 버린다는 것이다. 패킷 포워딩 과정에서 기존 2 계층 헤더 정보를 제거한 후 새로운 2 계층 헤더를 만든다. 이제부터 라우터의 동작방식인 경로 지정, 브로드캐스트 컨트..
SPoF(Single Point of Failure)로 인한 장애를 피하기 위해 다양한 노력을 한다. SPoF란 하나의 시스템이나 구성 요소에서 고장이 발생했을 때 전체 시스템의 작동이 멈추는 요소를 말한다. 네트워크에서 이러한 문제를 해결하기 위해 이중화, 다중화된 네트워크를 디자인하고 구성한다. 네트워크를 스위치 하나로 구성하면 스위치 장애가 발생시 전체 네트워크에 영향을 주기 때문에 스위치 두 대로 디자인하는 경우가 있는데 이는 패킷이 네트워크를 따라 계속 전송되므로 네트워크 루프가 발생할 수 있다. 루프란? 루프는 말 그대로 네트워크에 연결된 모양이 고리처럼 되돌아오는 형태로 구성된 상황을 말한다. 네트워크 루프가 발생한다면 네트워크가 마비되고 통신이 안되는 상황이 오는데 원인 대부분이 브로드캐스..
VLAN이란? 물리적 배치와 상관없이 LAN을 논리적으로 분할, 구성하는 기술이다. 기업과 같이 여러 부서가 함께 근무하면서 각 부서별로 네트워크를 분할할 때는 네트워크를 여러 개 운영해야 한다. 분할하지 않는다면 과도한 브로드캐스트로 인한 단말들의 성능 저하의 문제가 발생할 수 있다. VLAN을 나누면 하나의 장비를 서로 다른 네트워크를 갖도록 논리적으로 분할한 것이므로 유니캐스트뿐만 아니라 브로드캐스트도 VLAN 간에 통신할 수 없다. VLAN 간의 통신을 하려면 3 계층 장비 라우터가 필요하다. VLAN을 사용하면 물리적 구성과 상관없이 네트워크를 분리할 수 있고 물리적으로 다른 층에 있는 단말이 하나의 VLAN을 사용해 동일한 네트워크로도 묶을 수 있다. VLAN의 종류와 특징 VLAN 할당 방식..
스위치는 2 계층 주소인 MAC 주소를 기반으로 동작한다. 네트워크 중간에서 패킷을 받아 필요한 곳에만 보내주는 네트워크 중재자 역할을 한다. 또한 아무 설정 없이 네트워크에 연결해도 MAC 주소를 기반으로 패킷을 전달하는 기본 동작을 수행할 수 있다. 기본 동작 외에도 한 대의 장비에서 논리적으로 네트워크를 분리할 수 있는 VLAN 기능과 네트워크 루프를 방지하는 스패닝 트리 프로토콜(STP)과 같은 기능을 기본적으로 가지고 있다. 패킷? 프레임? 각 계층에서 헤더와 데이터를 합친 부분을 PDU(Protocol Data Unit)이라고 한다. 각 계층마다 PDU를 부르는 이름이 달라서 1 계층은 비트 2 계층은 프레임 3 계층은 패킷 4 계층은 세그먼트 라고 부르며 애플리케이션에 해당하는 3개 계층(애..
2022.06.16 - [자료구조] - 트리(Tree) 개념 및 구현 트리(Tree) 개념 및 구현 트리는 말 그대로 나무와 유사한 자료구조를 말한다. 이는 사회나 컴퓨터공학에서 흔히 사용되고 있다. 예를 들어보자면 회사 조직도가 있다. 회사의 사장이 나무의 뿌리에 해당한다고 하면, 사 rooftoproom-whale.tistory.com 우리는 앞서 트리에 대한 기본적인 내용에 대해 알아봤다. LCRS 트리는 N개의 자식을 가지는 트리였는데 지금 알아볼 이진 트리는 자식을 최대 2개까지 가질 수 있는 트리이다. 그래서 이름도 이진(Binary) 이다. 자식이 많으면 좋은게 아닌가? 왜 2명으로 제한을 둘까? 라는 의문이 생기는데 이 이진트리를 통해 탐색과 수식 처리하는 알고리즘이 존재하기때문에 이진 트..
트리는 말 그대로 나무와 유사한 자료구조를 말한다. 이는 사회나 컴퓨터공학에서 흔히 사용되고 있다. 예를 들어보자면 회사 조직도가 있다. 회사의 사장이 나무의 뿌리에 해당한다고 하면, 사장 밑에 있는 각 부서의 부장들은 뿌리에서 뻗어 나온 가지라고 할 수 있다. 부장 밑에 있는 차장, 과장, 대리 등은 부장이라는 가지에서 뻗어 나온 잔 가지가 된다. 컴퓨터 공학에서도 활용도가 높은 자료구조인데 우선 운영체제의 파일 시스템이 트리 구조로 이루어져 있고, HTML이나 XML 문서를 다룰 때 사용하는 DOM(Document Object Model)도 트리 구조이다. 이뿐만 아니라 검색 엔진이나 데이터베이스도 트리 자료구조에 기반해서 구현된다. 트리의 구성 요소 트리는 그림과 같이 뿌리(Root), 가지(Bra..
기본적으로 thymeleaf, mustache 같은 템플릿은 최소 사용될 때 한 번만 파싱(코드 분석)된다. 그리고 파싱된 결과는 향 후 사용을 위해 캐시에 저장된다. 이는 요청때 마다 파싱을 안 하게 만드므로 성능이 향상될 수 있다. 허나 개발 시 해당 기능을 사용하게 된다면 불편하게 된다. 예를 들어 메인 페이지를 접속한 후에 해당 페이지를 수정했다고 하자, 이때 새로고침 하더라도 수정 전 페이지가 보이게 된다. 변경된 페이지를 보려면 애플리케이션을 다시 시작해야 하는 번거로움이 있다. 그래서 개발시에는 해당 기능을 끄고 진행하는 것이 좋다. 아래는 각 템플릿의 캐싱 속성이다. 템플릿 캐싱 속성 FreeMaker spring.freemaker.cache Groovy Templates spring.gr..
스프링부트에 devtools 를 이용해 개발도중 아예 devtools가 작동하지 않는단 걸 깨달아 해당 문제를 구글링해보았다. 원인은 인텔리제이가 classes에 자동적으로 저장해주지 않아서 발생했다고 한다 해결방법 1. 파일 -> 설정 -> 빌드, 실행, 배포 -> 컴파일러에서 프로젝트 자동 빌드(Build project automatically) 체크 2. 파일 -> 설정 -> 고급설정 -> 컴파일러 탭에서 개발된 애플리케이션이 현재 실행중인 경우에도 auto-make가 시작되도록 허용(Allow auto-make to start even if developed application is currently running) 체크 해당 해결방법을 통해 devtools가 정상적으로 작동하는 것을 확인할 수..