빌드(Build) 작성한 소스 코드를 실행할 수 있는 산출물로 변환시키는 과정. 컴파일 후 프로그램이 실행되려면 .exe 또는 .msi 확장자를 가진 실행 파일로 만들어주는 빌드 과정이 필요하다. 빌드가 완료되어야 실행시킬 수 있는 하나의 프로그램으로 완성된다. 컴파
: 프로세스의 수행 순서 보장에 대한 매커니즘 : 프로세스의 유휴 상태에 대한 개념이다. 이 두 개념은 완전히 다른 것이다. 동기 / 비동기 호출되는 함수의 작업 완료 여부를 기다리는지에 따라, 함수 실행/리턴 순차적인 흐름을 따르는지에 초점이 맞춰져있다.
프로세스 (Proccess) HDD의 실행파일이 메모리에 올라가 작동되고 있는 프로그램 프로세스에 할당된 메모리는 Code, Data, Stack, Heap의 형식으로 할당된다. 멀티 프로세스 (Multi-Process) 여러개의 CPU를 사용해 여러 프로세스
TCP (Transmission Control Protocol) 인터넷상에서 데이터를 메시지 형태로 보내기 위해 IP와 함께 사용하는 프로토콜 패킷을 추적 및 관리 연결 지향 방식이다. 흐름 제어 및 혼잡 제어. 높은 신뢰성을 보장한다. UDP보다 속도가 느리다.
애플리케이션 개발/운영 과정에서 네트워크 통신 트러블슈팅이 많이 생긴다. 이때 OSI 7 계층별로 어떻게 구성되어 있고, 계층마다 통신하는 방법을 알고 있어야 이를 해결할 수 있다.이는 OSI 7계층을 나눈 이유와 동일한 맥락인데, 계층을 나눈 이유는 통신이 일어나는
HTTP 요청을 SSL 혹은 TLS라는 알고리즘을 이용해, HTTP 통신을 하는 과정에서 데이터를 암호화하여 전송하는 방법HTTP와 달리 중간에 암호화 계층(6L)을 거쳐서 패킷을 암호화하기 때문에, 중간에 패킷을 가로채더라도 데이터를 확인할 수 없다.1\. 암호화 (
첫 협업 프로젝트 당시 가장 많이 만났던 에러가 바로 CORS 에러였으며, 당시 기록해놓은 내용을 정리합니다. 서로 다른 origin 간에 데이터를 주고 받을 때 발생하는 문제브라우저는 보안 상의 이유로 script에서 시작한 교차 출처 HTTP 요청을 제한한다. 만약
로드 밸런서는 특정 서버에 요청이 몰려 부하가 발생하는 것을 방지하기 위해 여러 서버에 트래픽을 분산시키는 장치 또는 소프트웨어이다.로드 밸런서는 웹 서버의 앞단에 위치하며, 들어오는 요청을 적절한 서버로 라우팅해주고, 웹 서버가 뱉어낸 응답을 클라이언트에 다시 전달한
L1 ~ L2 : MAC adress (NIC 또는 LAN 카드를 식별하는 식별자이다. 따라서 만일 컴퓨터에 LAN 카드가 5개이면 MAC address도 5개이다) L3 : IP 주소 (host가 기준이다) L4 : port 번호 윈도우 명령어 ipconfi
TCP protocol은 3-way handshaking을 통해 연결을 수립하고 4-way handshaking을 통해 해제한다.3-way handshaking : 세션을 수립하는 과정이며, 목적지와 수신지를 확실히 하여 데이터 전송의 신뢰성을 보장하기 위한 절차이다4
어느날, 함께 프로젝트를 진행했던 동료 개발자분이 CORS 설정을 모두 마쳤음에도 불구하고 쿠키가 전달되지 않는 문제를 겪고 계셨다. 정확히 말하면, application tab에서만 확인할 수 없었다.결론부터 말하자면, 쿠키의 domain이 client domain의
두 개 이상의 프로세스가 자원을 점유한 상태에서 서로가 점유한 자원을 서로에게 요구하고 있어서 그 프로세스들이 무한정으로 기다리고 있는 상태이에 대한 해결 방법은 예방, 회피, 탐지 및 회복이 있다.아래의 4가지 조건이 모두 만족되는 경우 데드락이 발생할 가능성이 있다
멀티캐스트 그룹 : 클래스 D에 속하는 IP주소(224.0.0.0 - 239.255.255.255)멀티캐스트 그룹의 수는 IP주소 내에서 추가 가능특정 멀티캐스트 그룹으로 전송되는 데이터를 수신하기 위해서는 해당 그룹에 가입멀티캐스트 패킷은 형태가 UDP 패킷과 동일D
두 개 이상의 프로세스나 쓰레드가 동시에 공유 자원에 접근하려고 할 때, 그 실행 순서나 타이밍에 따라 결과가 달라지는 상황을 말한다.주로 적절한 동기화 메커니즘 부재 등 동시성 문제를 고려하지 않았을때 발생할 수 있다.뮤텍스(Mutex)나 세마포어(Semaphore)
전 세계 여러 컴퓨터를 하나로 연결하는 거대한 통신망(network)을 의미하는 개념으로, 클라이언트와 서버로 구성되며 TCP/IP 라는 기본 프로토콜을 통해 제공된다.인터넷을 구성하는 요소들은 host, communication link, packet switch가
서버와 클라이언트가 인터넷상에서 데이터(이미지, 텍스트 등)를 주고 받기 위한 프로토콜TCP/IP 기반의 응용 프로토콜이다.client - server 구조로 이루어져 있다.client request <-> server response비연결성(stateless)
📎 HTTP 상태유지 기술(쿠키, 세션, JWT)📎 SOP, CORS 개념과 RESTful API📎 XSS, CSRF, SQL Injection 방어 기법📎 웹 캐시와 프록시 서버(포워드, 리버스 프록시)
흔히 말하는 CORS 에러는 개발하면서 한번쯤은 만나는 에러이고, 프로젝트를 진행하면서 많이 만났었다. 또한 CORS는 SOP로 인해 파생된 개념이다.웹 브라우저의 보안 정책 중 하나로, 브라우저가 같은 출처의 리소스만 허용하도록 하는 정책이다. same-origin은
REST 원칙을 따르는 웹 API이다.REST는 REpresentational State Transfer의 약자로, 자원을 URI로 표현하고, HTTP 메서드로 행위를 구분하는 아키텍처 스타일이다.자원(Resource)은 URI로 표현한다./users, /article
취약성이 있는 웹 사이트에 악성 스크립트(HTML 또는 JS)를 삽입하여 사용자의 정보를 다른 웹 서버로 전송시키는 수동적 공격 방식이다.브라우저는 공격자가 작성한 스크립트가 당연히 해당 웹사이트에서 온 코드라고 믿고 실행하기 때문에 세션 탈취, 쿠키 훔치기, 피싱,
UDP란? UDP의 체크섬과 오류 검출
신뢰적 데이터 전송 원리(SR, GBN)
수신자가 감당할 수 있는 만큼만 데이터를 보내어, 수신자의 버퍼 초과를 방지하기 위함이다.수신자가 매번 송신자에게 남아있는 버퍼 사이즈(Window Size)를 알려준다.송신자는 이 윈도우 크기를 보고, 수신자가 받을 수 있을 만큼만 데이터를 전송한다.중간 라우터나 네
네트워크 상의 각 장치(컴퓨터, 스마트폰, 서버 등)를 식별하기 위한 고유한 주소이다.주로 네트워크 부분 + 호스트 부분으로 나뉜다.네트워크 : 소속된 네트워크 식별호스트 : 해당 네트워크 안의 장치 식별IP 주소는 현실 세계의 주소에 빗대어 생각해보면 이해하기 쉽다.
🕹️ 라우팅(Routing) >네트워크에서 데이터를 목적지까지 보내기 위해 최적의 경로를 결정하고 전달하는 과정이다. 라우터는 여러 경로 중 최적의 경로(best path)를 선택해서 패킷을 전송한다. 이때, 경로 선택은 라우팅 테이블을 기반으로 이루어진다.
NAT와 DHCP는 네트워크를 이해하는데 중요한 개념이며, NAT와 DHCP 기능을 가장 일반적으로 제공하는 장비이다.하지만 라우터만의 고유 기능은 아니며, 서버나 방화벽, 게이트웨이 장비도 NAT 등의 기능을 수행할 수 있다.일반적으로, 가정집에서는 다음과 같은 환경
IP 프로토콜의 보조 역할을 하는 제어 메시지용 프로토콜이다.ICMP는 IP 네트워크에서 문제가 생겼을 때 진단하거나 알리기 위한 용도이다.데이터를 전송하지 않고 오류/상태 메시지를 주고받는 데 사용된다.ICMP는 IP 패킷의 한 종류로 작동한다 (즉, IP 위에서 동