본문 바로가기

분류 전체보기

(36)
JavaScript로 코딩테스트를 풀기 위한 기본 문법 총정리 코딩테스트를 풀 때 내가 가장 사랑하는 주무기는 Python이었는데, 네이버 부스트캠프 9기의 최종 코딩테스트 단계에서는 웹 개발자에 한해서 JavaScript를 필수적으로 사용하게끔 하기 때문에, 이를 대비하여 부랴부랴 준비를 해보려고 한다.-> 코딩테스트는 모두 통과했지만, 백엔드에도 JavaScript를 사용하는 관계로 나와 맞지 않아 거절하였다. 변수선언var, let, const가 있다.var은 함수 스코프이고, 같은 이름의 변수를 여러 번 선언할 수 있다. 또한, hoisting된 곳에서 사용 가능하다.let은 블록 스코프 즉, '{}'로 둘러싸인 블록 내부에서만 접근할 수 있다. 재선언 불가능하다. 변경은 가능하다.function varScope() { if (true) { ..
[네트워크] IP - Internet Protocol - 네트워크 계층은 IP 패킷을 목적지까지 전달하는 역할을 함.- IP 패킷이 출발지부터 목적지까지 가는 데에 있어서 지나는 모든 호스트와 라우터에 IP 프로토콜이 실행됨. - 출발지 호스트는, 전송계층에서 넘어온 데이터 세그먼트를 IP 패킷으로 캡슐화함 - encapsulate- 목적지 호스트는 수신한 IP 패킷의 헤더를 제거하고, 전송 계층으로 데이터 전달함 - decapsulate   * 핵심적인, OSI 모델에서의 데이터 관점에서의 용어 및 특징 복습 (송신단 기준, 수신단은 모든 것을 반대로 생각)계층 이름데이터 단위 명칭크기비고 응용 계층데이터무제한. 큼. 이메일 메시지, 웹 페이지 등.사용자가 애플리케이션을 통해 생성한 데이터.전송 계층데이터 세그먼트 / 데이터그램큼지막했던 데이터를 작은 조..
[네트워크] QUIC 프로토콜 QUIC을 왜 쓰냐?  지난 40여년간 통신 쪽을 꽉 잡고 있었던 TCP도, 한계는 있었다.예를 들어, 연결 설정 지연, HOL 블로킹, 복잡한 프로토콜 스택 등이다.QUIC은 한마디로, TCP의 한계점들을 해결하기 위해 드드등장했다. 위의 한계점들을 아래와 같이 극복한다. 1 연결 설정 지연:TCP는 연결 설정을 위해 3-way handshake를 사용했고, TLS를 쓰면 추가적인 3-way handshake를 해야하기에 2번의 3-way HS가 필요했다. 이에 비해 QUIC은, 연결 설정 시 0 또는 1 RTT 핸드셰이크를 사용함. 심지어 한 번 연결했더라면, 0RTT로 가능함. 그리고, QUIC은 TLS를 자체 프로토콜 내에 통합했기 때문에, 별도의 TLS 핸드셰이크가 필요하지 않기 때문에 더욱 편..
[네트워크] 네트워크 보안 1 네트워크 보안 개요 Network Security Overview네트워크 보안에서 중요한 여러가지 요소들은,Confidentiality 기밀성: 오직 의도된 수신자만 메시지를 볼 수 있도록 함. Encryption - Decryption.Authentication 인증: 수신자는 메시지의 발신자를 확인할 수 있음.Availability 가용성: 서비스 및 데이터가 사용자에게 제공될 수 있도록 함. DDoS 공격에 취약함.Data Integrity 데이터 무결성: 메시지의 변경 사항(전송 中 또는 이후)을 감지할 수 있음.뭔가 그럴듯한 이름을 붙였지만, 사실 당연한 것들이다. 이메일로 예를 들자면, 이메일 받기로 한 사람이 받아야 하고 - 기밀성,받는 사람은 누가 보냈는지 알 수 있어야 하고 - 인증..
[네트워크] TCP Congestion Control 버퍼 vs 슬라이딩 윈도우:앞서 다뤘던 슬라이딩 윈도우는 TCP에서 데이터 흐름을 제어하는 매커니즘인데, 송신자가 한번에 전송할 수 있는 데이터의 양을 제한하고, 수신자가 수신할 수 있는 데이터의 양을 제어함. 송신 윈도우 & 수신 윈도우의 두 개 윈도우로 구성됨.버퍼는 라우터, 스위치, 컴퓨터 등의 네트워크 장치에서 임시로 데이터를 저장하는 메모리 공간. 곧 다룰 라우터 버퍼는, 라우터에 붙어서, 데이터 패킷을 일시저장하고, 전송 지연을 관리하는 버퍼임. Congestion 혼잡이란, 여러 소스가 동시에 너무 많은 데이터를 네트워크게 빠르게 전송할 때 발생.예를 들면 아래와 같은 시나리오들을 포함한다.  * 시나리오 1: 2 송신, 2 수신, 무한 버퍼 라우터, 재전송 없음 위에서 보이듯, 무한 버퍼이..
Assignment 4 中 - NginX config에 경로 매칭하는 함수 만들기 + chore 이번 주 과제의 미션 내용을 보면, 1 서버에 로깅을 추가하기 - Boost.log를 활용함.2 서버가 현재의 에코잉을 넘어서, 정적 파일(HTML 등)을 사용자에게 제공할 수 있는 기능을 추가하기. 팀 미팅 결과 내 업무는 2번째, Serve static files from your server의 일부 당첨되었다. 4가지로 분할해보면,1. Add methods on NginxConfig to extract out the web server path directives.-> NginxConfig에서 웹 서버 경로 지시문을 추출하는 메서드 추가: 이 부분은 NginxConfig 클래스에 새로운 메서드를 추가하여 웹 서버의 경로 지시문을 추출하는 것입니다. 이는 웹 서버 설정 파일에서 지정된 경로를 파싱하여..
[네트워크] ARQ: Stop-and-wait, Go-back-N, Selective repeat 전송계층(Transport Layer)에서 세그먼트*를 전송할 때, 조금 더 신뢰성 있는 통신, 즉 Reliable Data Transfer를 위해 다양한 방식의 프로토콜을 사용한다. 물론 TCP를 쓸 때는 TCP가 그 자체로 이미 신뢰성 있는 프로토콜이기 때문에 별도의 프로토콜을 더하지 않아도 되지만, UDP 등의 신뢰성이 떨어지는 녀석들을 활용하기 위해서는 더 높은 신뢰도를 위해 추가적인 프로토콜들을 더해주어야 한다. 이러한 프로토콜들을 Automatic Repeat reQuest, 줄여서 ARQ라고 부른다. ARQ는 전송되는 데이터의 정확성과 순서를 보장하는 역할을 한다. 물론 Noisy channel에서만 ARQ를 쓰고, Noiseless channel에서는 non-ARQ를 쓰는데, 여기선 ARQ..
[네트워크] 전송계층 - TCP와 UDP, 그리고 (De-)Multiplexing OSI 7계층 중 전송계층은, sender와 receiver를 연결하는 통신 서비스를 제공하는 계층. 그 둘 사이의 데이터의 전달을 위한 판을 까는 역할을 함(데이터의 물리적인 전달은 X, 라우팅 등 물리적인 움직임은 그 하위계층인 네트워크부터 시작). 전송계층에서는 판을 까는 방법론에 있어서 몇 가지 "프로토콜"을 활용하는데, 대표적으로 TCP 혹은 UDP를 주로 씀.요새는 HTTP3 등의 프로토콜을 QUIC 프로토콜 기반으로 만드는 등 QUIC 프로토콜도 종종 쓰는 것 같지만, 아직까지 미완성형이기 때문에 아직까지 TCP와 UDP를 실무에서 대체하기는 어려움.   TCP - 데이터를 안정적으로, 순서대로, 에러 없이!좋은 예시를 보았는데, IP가 집 주소라면 TCP는 쿠팡이다 - 그러니까, 목적된 I..