[OSI 7계층] 데이터 링크 계층
·
Camp/Standard
데이터 링크 계층은 물리 계층 바로 다음, 2번째에 위치한 계층이다.데이터 링크라는 말만 보면 데이터를 연결해 주는 기능을 하는 것처럼 보인다.그런데 뭘 정확히 연결한다는 것일까? 데이터 링크의 개념데이터 링크란, 네트워크 통신에서 하나의 데이터가 다른 장치로 전달되기 위해 세워진 연결을 뜻한다.네트워크 장비 간 데이터 전송의 신뢰성을 보장하고, 물리 계층과 네트워크 계층 사이의 연결을 관리하는 것이데이터 링크 계층의 역할이다. 연결이라는 말이 나왔다...!여러 시스템 간의 안정적이고 신뢰할 수 있는 데이터 링크를 보장해야 하니,단순히 데이터를 연결해 주는 기능을 한다고 생각해도 큰 줄기만 보자면 문제가 없을 것이다.  데이터 링크의 주요 요소프레이밍 (Framing)네트워크 계층에서 전달받은 데이터 그..
[OSI 7계층] 물리 계층
·
Camp/Standard
물리 계층(Layer 1)은 OSI 7 계층 중 가장 하위 단계의 계층이다.이름에서 알 수 있듯이 네트워크에서 실제 데이터의 전송이 이루어지는 부분이다.디지털 신호를 물리 매체를 통해 전송할 수 있는 형태로 변환하고,이를 통해 전송하는 모든 과정을 전담하는 계층이라고 할 수 있다.  물리 계층의 개념비트 전송물리 계층의 가장 기본적인 역할은 데이터를 비트 단위로 변환해 전송하는 것이다.데이터 링크 계층에서 받은 프레임을 물리 계층에서 비트 스트림으로 변환하고,각 매체에 맞는 형식으로 변환해 전송한다.수신 측에서는 이 변환 과정의 역순으로 동작해 데이터를 받게 된다. 전송 매체최하위 계층이라서 사용자와 거리가 꽤 멀고 낯설다고 느낄 수도 있다.하지만 물리 계층에 해당하는 전송 매체는 주변에서 쉽게 찾을 수..
OSI 7계층이란?
·
Camp/Standard
OSI 7 계층이란 무엇인가?개방형 시스템 상호 연결(OSI) 모델은 네트워크 통신을 7개의 계층으로 나눈 개념 모델이다.다양한 하드웨어와 소프트웨어가 장벽을 넘어 통신할 수 있게 하기 위해이를 지원하기 위한 표준이라고 볼 수 있다. 우리가 말이 통하지 않는 외국인과 대화를 시도할 때 기본적으로 영어를 사용하는 것과 같다.서로 문화나 언어가 달라도 영어라는 공용어가 있기에 통신할 수 있게 된다.  왜 중요한가?요즈음의 네트워크는 OSI 모델에 1:1 대응하지 못하는 경우가 많다.그럼에도 중요한 이유는 표준화와 시스템에 대한 이해에 매우 효과적이기 때문이다. OSI 모델은 국제적인 표준이다. 1:1 대응할 수 없다고 하더라도 아예 매치되지 않는 것은 아니다.그리고 계층을 나눠서 시스템을 들여다보면 각 부분..
서버와 클라이언트는 무엇인가?
·
Camp/Standard
먼저 각 단어의 의미부터 생각해 보자.밥집으로 비유하면 좋을 것 같다. 홀을 도는 사람은 서빙을 한다.손님을 주문을 한다.홀은 손님에게 주문을 하지 않는다.손님은 홀에게 밥을 만들어 주지 않는다. 이렇게 서버와 클라이언트의 기본적인 구조는 정의가 된 것이다.서버는 클라이언트의 주문을 받고 만들어서 주기만 한다.클라이언트는 서버에게 주문을 하고 받기만 한다.  1. 서버와 클라이언트서버서버란 네트워크 상에서 다른 컴퓨터(클라이언트)에게 서비스를 제공하는 컴퓨터 또는,그 컴퓨터에서 동작하는 프로그램을 말한다.클라이언트의 요청을 받으면 그에 맞는 응답을 제공하는 역할을 하게 된다. 주문을 받으면 주방에서 조리가 이루어진다.클라이언트의 주문이 들어오면 주방에서 뭔갈 만들어서 클라이언트에게 넘여주게 되니 주방은 ..
[TIL #6] 햄버거 만들기
·
Camp/T.I.L.
패턴 매칭을 할 수 있느냐를 물어보는 문제다.빵야채패티의 3개의 재료가 있고, 무조건 [1, 2, 3, 1]의 조합만 인정한다.재료의 목록을 담은 배열이 주어질 때 얼마나 효율적으로 패턴 검사를 할 수 있는지 물어보는 문제. 패턴 매칭 문제에 익숙하지 않은 모두가 이렇게 생각할 것이다.일단 배열 전체를 돌며 검사하자!나도 마땅한 방법이 생각나지 않아서 그렇게 했다. // 1 : 빵// 2 : 야채// 3 : 패티function solution(ing) { let answer = 0; const pattern = [1, 2, 3, 1]; const ingLen = ing.length; for (let i = 0; i 이건 100점짜리 정답이 아닌 줄 알면서도,다른 방법이..
[TIL #5] 소수 만들기
·
Camp/T.I.L.
숫자를 담은 배열이 주어지고,그 배열에서 3개를 뽑아 소수를 몇 개나 만들 수 있는지 확인하는 문제다. 소수는 약수가 자기 자신과 1 뿐인 수를 말한다.번거로운 계산 과정 없이 바로 판단할 수 있는 건 다음과 같다.1 이하인 수2, 3, 5, 7, ....하지만 숫자가 매우 크다면?한눈에 판단하기 매우 어려울 것이다.이를 판별하기 위한 여러 가지 방법이 있다. 1. 소수1. 에라토스테네스의 체소수 판별을 위한 가장 심플한 방법으로 에라토스테네스의 체가 있다. 에라토스테네스의 체 - 위키백과, 우리 모두의 백과사전위키백과, 우리 모두의 백과사전. 에라토스테네스의 체 수학에서 에라토스테네스의 체는 소수를 찾는 빠르고 쉬운 방법이다. 고대 그리스 수학자 에라토스테네스가 발견하였다. 2부터 소수를ko.wikip..
[TIL #4] 비동기
·
Camp/T.I.L.
1. 정의일반적으로 코드는 순차적으로 실행되며, 완료가 되어야 다음으로 넘어간다.차례대로 하나하나씩 실행하는 것을 동기라고 이해할 수 있다. 그렇다면 비동기는?비동기란 말 그대로 동기가 아니라는 의미.어떤 작업의 완료를 기다리지 않고 다음 작업으로 진행하는 것을 말한다.따라서 여러 작업을 병렬로 수행시킬 수도 있다.병렬로 처리한다는 부분에서 슈퍼스칼라 아키텍처와 유사한 점이 있다. 다음의 이미지를 참고할 수 있겠다.  2. PromiseJS에서의 비동기 처리를 위해 ``Promise``는 꼭 알아야 하는 개념이다.``Promise``는 JS에서 비동기 작업을 처리하기 위한 객체로,비동기 작업의 성공(``resolved``) 또는 실패(``rejected``)를 처리할 수 있는 방법을 제공한다.``Prom..
[TIL #3] this, call(), apply(), bind()
·
Camp/T.I.L.
어쩌면 C를 처음 배울 때 포인터에서 느끼는 벽 이상의 무언가를 느끼게 해주는 존재.``this``는 포인터는 아니지만 어떤 함수의 컨텍스트를 참조한다는 점에서 유사하기도 하다. 1. this``this``는 다음과 같은 특징을 가진다.실행 컨텍스트 - ``this``는 함수가 호출될 때 그 함수의 실행 컨텍스트에 따라 값이 결정된다.이 실행 컨텍스트는 함수가 어떻게 호출되었느냐에 따라 달라진다.예를 들어, 객체의 메서드로 호출되면 그 객체가 ``this``가 되고,단순히 함수로 호출되면 전역 객체(``window`` 또는 ``global``)가 ``this``가 된다.동적 바인딩- ``this``는 런타임에 결정되는 동적 바인딩을 사용한다.``this``가 가리키는 대상은 함수가 호출될 때마다 달라질 ..
[KPT 회고] 팀 소개 페이지 미니 프로젝트에 대한 회고
·
Camp/T.I.L.
본 캠프의 시작을 알린 팀 소개 페이지 프로젝트.프로젝트를 돌아보는 시간을 가졌다. KPT란 ``Keep``, ``Problem``, ``Try``의 약자로,프로젝트에서 계속 유지하고 싶은 점(``Keep``)프로젝트에서 문제가 되는 점(``Problem``)차기에 개선을 위한 시도할 수 있는 점(``Try``)을 말한다.팀원들과 이에 대해 생각하며 현재 상태를 확인하고,개선을 위해 고민하는 중요한 과정이라고 할 수 있다.  이번에 우리가 진행하며 회고한 내용은 다음과 같다.1. Keep잘 모르는 부분이라도 적극적으로 찾아보며 해결하려는 노력은 좋았다. - 주어진 과제를 해결하려는 의지를 나타낸다는 것은 대단히 좋은 일.혼자 다 해결하려고 하지 않고, 다른 팀원의 성장을 위해 일을 분담한 것이 좋았다. ..
[TIL #2] 간단한 API 프록시 서버 구현
·
Camp/T.I.L.
원래 로컬 환경에서 다 하고 싶었지만,CORS 문제에 직면했다. CORS란 무엇인가? CORS란 무엇인가?CORS가 무엇인지 알기 전에, 이 CORS가 등장하게 된 배경을 먼저 알아보자.SOP는 2011년 RFC 6454에서 등장한 보안 정책으로 "같은 출처에서만 리소스를 공유할 수 있다"라는 규칙을 가진 정책이다.그러velog.io  로컬에서 서버를 굴리려고 해도 SSL 문제에서 자유롭지 않았다.결국 마지막으로 택한 방법은 외부 호스팅에 프록시 서버 올리기. 내가 선택한 서비스는 Railway RailwayRailway is an infrastructure platform where you can provision infrastructure, develop with that infrastructure ..