전체 글

개발 관련 정보 정리중
CS/네트워크

라우터(L3 스위치 : 3계층 장비)란?

라우터는 3 계층에서 동작하고 이름처럼 경로를 지정해주는 장비이다. 라우터에 들어오는 패킷의 목적지 IP 주소를 확인하고 자신이 가진 경로 정보를 이용해 패킷의 최적의 경로로 포워딩한다. 또한 원격지 네트워크와 연결할 때 필수 네트워크 장비이며 네트워크를 구성하는 핵심 장비이다. 라우터의 동작 방식과 역할 라우터는 다양한 경로 정보를 수집해 최적의 경로를 라우팅 테이블에 저장한 후 패킷이 라우터로 들어오면 도착지 IP 주소와 라우팅 테이블을 비교해 최선의 경로로 패킷을 내보낸다. 이 말은 패킷의 목적지 주소가 라우팅 테이블에 없다면 패킷을 버린다는 것이다. 패킷 포워딩 과정에서 기존 2 계층 헤더 정보를 제거한 후 새로운 2 계층 헤더를 만든다. 이제부터 라우터의 동작방식인 경로 지정, 브로드캐스트 컨트..

CS/네트워크

STP(Spanning Tree Protocol)

SPoF(Single Point of Failure)로 인한 장애를 피하기 위해 다양한 노력을 한다. SPoF란 하나의 시스템이나 구성 요소에서 고장이 발생했을 때 전체 시스템의 작동이 멈추는 요소를 말한다. 네트워크에서 이러한 문제를 해결하기 위해 이중화, 다중화된 네트워크를 디자인하고 구성한다. 네트워크를 스위치 하나로 구성하면 스위치 장애가 발생시 전체 네트워크에 영향을 주기 때문에 스위치 두 대로 디자인하는 경우가 있는데 이는 패킷이 네트워크를 따라 계속 전송되므로 네트워크 루프가 발생할 수 있다. 루프란? 루프는 말 그대로 네트워크에 연결된 모양이 고리처럼 되돌아오는 형태로 구성된 상황을 말한다. 네트워크 루프가 발생한다면 네트워크가 마비되고 통신이 안되는 상황이 오는데 원인 대부분이 브로드캐스..

CS/네트워크

VLAN(Virtual Local Area Network)

VLAN이란? 물리적 배치와 상관없이 LAN을 논리적으로 분할, 구성하는 기술이다. 기업과 같이 여러 부서가 함께 근무하면서 각 부서별로 네트워크를 분할할 때는 네트워크를 여러 개 운영해야 한다. 분할하지 않는다면 과도한 브로드캐스트로 인한 단말들의 성능 저하의 문제가 발생할 수 있다. VLAN을 나누면 하나의 장비를 서로 다른 네트워크를 갖도록 논리적으로 분할한 것이므로 유니캐스트뿐만 아니라 브로드캐스트도 VLAN 간에 통신할 수 없다. VLAN 간의 통신을 하려면 3 계층 장비 라우터가 필요하다. VLAN을 사용하면 물리적 구성과 상관없이 네트워크를 분리할 수 있고 물리적으로 다른 층에 있는 단말이 하나의 VLAN을 사용해 동일한 네트워크로도 묶을 수 있다. VLAN의 종류와 특징 VLAN 할당 방식..

CS/네트워크

스위치(switch)란?

스위치는 2 계층 주소인 MAC 주소를 기반으로 동작한다. 네트워크 중간에서 패킷을 받아 필요한 곳에만 보내주는 네트워크 중재자 역할을 한다. 또한 아무 설정 없이 네트워크에 연결해도 MAC 주소를 기반으로 패킷을 전달하는 기본 동작을 수행할 수 있다. 기본 동작 외에도 한 대의 장비에서 논리적으로 네트워크를 분리할 수 있는 VLAN 기능과 네트워크 루프를 방지하는 스패닝 트리 프로토콜(STP)과 같은 기능을 기본적으로 가지고 있다. 패킷? 프레임? 각 계층에서 헤더와 데이터를 합친 부분을 PDU(Protocol Data Unit)이라고 한다. 각 계층마다 PDU를 부르는 이름이 달라서 1 계층은 비트 2 계층은 프레임 3 계층은 패킷 4 계층은 세그먼트 라고 부르며 애플리케이션에 해당하는 3개 계층(애..

CS/자료구조

이진 트리(Binary Tree) 개념 및 구현

2022.06.16 - [자료구조] - 트리(Tree) 개념 및 구현 트리(Tree) 개념 및 구현 트리는 말 그대로 나무와 유사한 자료구조를 말한다. 이는 사회나 컴퓨터공학에서 흔히 사용되고 있다. 예를 들어보자면 회사 조직도가 있다. 회사의 사장이 나무의 뿌리에 해당한다고 하면, 사 rooftoproom-whale.tistory.com 우리는 앞서 트리에 대한 기본적인 내용에 대해 알아봤다. LCRS 트리는 N개의 자식을 가지는 트리였는데 지금 알아볼 이진 트리는 자식을 최대 2개까지 가질 수 있는 트리이다. 그래서 이름도 이진(Binary) 이다. 자식이 많으면 좋은게 아닌가? 왜 2명으로 제한을 둘까? 라는 의문이 생기는데 이 이진트리를 통해 탐색과 수식 처리하는 알고리즘이 존재하기때문에 이진 트..

CS/자료구조

트리(Tree) 개념 및 구현

트리는 말 그대로 나무와 유사한 자료구조를 말한다. 이는 사회나 컴퓨터공학에서 흔히 사용되고 있다. 예를 들어보자면 회사 조직도가 있다. 회사의 사장이 나무의 뿌리에 해당한다고 하면, 사장 밑에 있는 각 부서의 부장들은 뿌리에서 뻗어 나온 가지라고 할 수 있다. 부장 밑에 있는 차장, 과장, 대리 등은 부장이라는 가지에서 뻗어 나온 잔 가지가 된다. 컴퓨터 공학에서도 활용도가 높은 자료구조인데 우선 운영체제의 파일 시스템이 트리 구조로 이루어져 있고, HTML이나 XML 문서를 다룰 때 사용하는 DOM(Document Object Model)도 트리 구조이다. 이뿐만 아니라 검색 엔진이나 데이터베이스도 트리 자료구조에 기반해서 구현된다. 트리의 구성 요소 트리는 그림과 같이 뿌리(Root), 가지(Bra..

프로그래밍/Spring

템플릿 캐싱에 대해

기본적으로 thymeleaf, mustache 같은 템플릿은 최소 사용될 때 한 번만 파싱(코드 분석)된다. 그리고 파싱된 결과는 향 후 사용을 위해 캐시에 저장된다. 이는 요청때 마다 파싱을 안 하게 만드므로 성능이 향상될 수 있다. 허나 개발 시 해당 기능을 사용하게 된다면 불편하게 된다. 예를 들어 메인 페이지를 접속한 후에 해당 페이지를 수정했다고 하자, 이때 새로고침 하더라도 수정 전 페이지가 보이게 된다. 변경된 페이지를 보려면 애플리케이션을 다시 시작해야 하는 번거로움이 있다. 그래서 개발시에는 해당 기능을 끄고 진행하는 것이 좋다. 아래는 각 템플릿의 캐싱 속성이다. 템플릿 캐싱 속성 FreeMaker spring.freemaker.cache Groovy Templates spring.gr..

프로그래밍/오류보고

[Spring]Intellij에서 스프링 devtools이 작동하지 않는다면

스프링부트에 devtools 를 이용해 개발도중 아예 devtools가 작동하지 않는단 걸 깨달아 해당 문제를 구글링해보았다. 원인은 인텔리제이가 classes에 자동적으로 저장해주지 않아서 발생했다고 한다 해결방법 1. 파일 -> 설정 -> 빌드, 실행, 배포 -> 컴파일러에서 프로젝트 자동 빌드(Build project automatically) 체크 2. 파일 -> 설정 -> 고급설정 -> 컴파일러 탭에서 개발된 애플리케이션이 현재 실행중인 경우에도 auto-make가 시작되도록 허용(Allow auto-make to start even if developed application is currently running) 체크 해당 해결방법을 통해 devtools가 정상적으로 작동하는 것을 확인할 수..

옥탑방고래
고래의 코딩일지