CS/ HTTP 헤더 - 캐시와 조건부 요청
모든 개발자를 위한 HTTP 웹 기본 지식
김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 공부하고 정리하는 포스트입니다. 캐시 기본 동작 캐시가 없을 때 클라이언트에서 어떠한 이미지를 요청하면 응답에 해당 이미지에 대한 내용이 담겨서 응답이 올 것입니다....
CS/ HTTP 헤더 - 일반 헤더
모든 개발자를 위한 HTTP 웹 기본 지식
김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 공부하고 정리하는 포스트입니다. HTTP 헤더 개요 HTTP 헤더에 대해서 알아보겠습니다. HTTP 헤더 필드는 field-name “:” OWS field-value OWS 와 같은 형태를 가집니다....
CS/ HTTP 상태코드
모든 개발자를 위한 HTTP 웹 기본 지식
김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 공부하고 정리하는 포스트입니다. HTTP 상태코드 HTTP 상태코드에 대해서 알아보겠습니다. 상태코드는 클라이언트가 서버에 요청을 보냈을 때, 요청이 잘 처리되었는지 응답이 올 때(Response) 알려주는...
CS/ HTTP 메서드 활용
모든 개발자를 위한 HTTP 웹 기본 지식
김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 공부하고 정리하는 포스트입니다. HTTP 메서드 활용 지금까지 HTTP 메서드에서 알아봤습니다. 지금까지 배운 내용이 개발할 때 어떻게 활용되는지 알아봅시다. 클라이언트에서 서버로 데이터 전송...
CS/ HTTP 메서드
모든 개발자를 위한 HTTP 웹 기본 지식
김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 공부하고 정리하는 포스트입니다. HTTP 메서드 HTTP 메서드에 대해서 알아봅시다. HTTP 메서드 종류는 기본적으로 GET, POST, PUT, PATCH, DELETE가 있습니다. 각 메서드의 세부...
CS/ HTTP 기본
모든 개발자를 위한 HTTP 웹 기본 지식
김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 공부하고 정리하는 포스트입니다. HTTP 기본 모든 것이 HTTP HTTP는 HyperText Transfer Protocol로 HTML을 전송하는 프로토콜로 시작되었다. 지금은 HTML, 텍스트 뿐만 아니라 이미지,...
CS/ URI와 웹 브라우저 요청 흐름
모든 개발자를 위한 HTTP 웹 기본 지식
김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 공부하고 정리하는 포스트입니다. URI와 웹 브라우저 요청 흐름 URI? URL? URN? URI는 Uniform Resource Identifier의 약자로 리소스를 식별하는 통합된 방법 정도로 해석할...
CS/ 인터넷 네트워크
모든 개발자를 위한 HTTP 웹 기본 지식
김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 공부하고 정리하는 포스트입니다. 인터넷 네트워크 인터넷 통신 인터넷에서 컴퓨터 둘은 어떻게 통신할까? 클라이언트와 서버가 바로 옆에 있다면 케이블을 연결해서 바로 주고 받으면...
DEV/ Single LinkedList
자료구조
Singly LinkedList 이번에는 LinkedList의 한 종류인 Singly LinkedList를 구현해보자. LinkedList의 경우 ArrayList와 가장 큰 차이점이 바로 ‘노드’라는 객체를 이용하여 연결한다는 것이다. ArrayList의 경우 최상위 타입인 오브젝트 배열(Object[])을 사용하여 데이터를 담아두었다면,...
DEV/ ArrayList
자료구조
ArrayList 가장 기본적인 자료구조인 ArrayList를 구현해보자. 실제 Java에서 제공하고 있는 ArrayList는 매우 복잡한 구조라 그대로 따라하기에는 불필요한 부분이 많다. 최소한의 필수 메서드만 구현하고 전체적인 구조를 살펴보는 방향으로 가겠다. 앞서 List라는...
DEV/ List Interface(리스트 인터페이스)
자료구조
List interface 대부분 자료구조를 학습할 때 가장 먼저 배우는 것은 List 계열일 것이다. 우리는 이러한 것과 비슷한 것을 이미 사용하고 있었는데 바로 배열이다. 자바 컬렉션 프레임워크에서 지원하는 ArrayList, LinkedLIst 같은...
DEV/ 자바 컬렉션 프레임워크
자료구조
시작 아마 프로그래밍을 전공하거나 관련된 전공이라면 ‘자료구조’라는 단어를 들어본 적이 있을 것이다. 자료구조는 Data Structure라고 하는데 직역하면 데이터 구조, 좀 더 자세하게 설명하자면 ‘일련의 일정 타입들의 데이터 모임 또는 관계를...
INTERVIEW/ 면접 기초 질문 리스트
백엔드 면접 대비 질문 리스트
원 글 : 안산학생님의 백엔드 면접 기초 질문 리스트 안산학생님께서 백엔드 직무를 준비하시면서 공부하신 것들을 정리한 글을 보고 공부도 하고 기록도 하기 위해서 작성하는 글이다. 질문에 대한 답변을 스스로 해보고...
INTEREST/ 인프라 기초 총정리
인프라
서두 이 글은 에릭한님의 게시글을 가져온 글입니다. IT Infrastructure IT 인프라란 애플리케이션을 가동시키기 위해 필요한 하드웨어나 OS, 미들웨어, 네트워크 등 시스템의 기반을 말한다. 시스템의 요구사항이라고 하면 먼저 해당 시스템이 어떤...
DEV/ 하드웨어와 네트워크 기초 지식
도커를 사용한 인프라 구축
하드웨어와 네트워크 기초 지식 서버 장비 Docker를 사용한 인프라를 구성하기 위해 알아두어야 할 서버 장비 하드웨어의 중요 구성 요소들을 간단하게 정리했다. CPU CPU는 프로그램의 설계나 처리 등을 수행하는 전자회로 부품이다....
INTEREST/ 오버레이 네트워크(Overlay Network)
네트워크
오버레이 네트워크 오버레이 네트워크(overlay network)는 물리 네트워크 위에 성립되는 가상의 네트워크를 말한다. 오버레이 네트워크 안의 노드는 가상, 논리 링크로 연결될 수 있고, 각 링크는 네트워크 내에서 많은 논리적 링크를 통하지만...
INTERVIEW/ 이건 꼭 알고 가자! 면접 출제 빈도가 높은 질문들
IT 기술 면접
다음 질문들은 IT 기술 면접에서 자주 나오는 공통된 질문들이다. 질문에 대한 답을 추가해 놓을 예정이지만, 직접 검색해서 찾아보는 것을 추천한다. HTTP 관련 질문 - HTTP, HTTPS(SSL) / HTTP 1.1, 2.0,...
INTERVIEW/ 1분 자기소개
면접을 대비한 자기소개 준비
면접에서 사용하기 좋은 [1분 자기소개]입니다. 자신의 개인적인 내용을 잘 요약하여 만들어봅시다. 아래의 예시는 안산학생님의 글입니다. 예시는 어디까지나 개인적인 이야기이므로 참고만 하시기 바랍니다. 예시 서두(1분 자기소개 작성 계기) [1분 자기소개]에 대한...
INTERVIEW/ 백엔드 개발자 면접 / 학습내용
백엔드 면접
백엔드 관련된 CS 지식과 면접 대비를 위한 글을 찾다가 좋은 글을 발견해서 가져왔다. 원 글 Backend-Interview-Question VS Code로 보기 Table Of Contents Contributors Information 이 저장소를 잘 사용하기 위한 팁...
DEV/ 너비 우선 탐색(breadth-first search, BFS)
그래프의 탐색(search) 알고리즘
너비 우선 탐색(BFS, breadth-first search) BFS란? 너비 우선 탐색은 시작점에서 가까운 정점부터 순서대로 방문하는 탐색 알고리즘이다. 각 정점을 방문할 때마다 모든 인접 정점들을 검사한다. 이 중 처음 보는 정점을 발견하면...
DEV/ 깊이 우선 탐색(depth-first search, DFS)
그래프의 탐색(search) 알고리즘
깊이 우선 탐색(DFS, depth-first search) DFS란? 깊이 우선 탐색은 그래프의 모든 정점을 발견하는 가장 단순하고 고전적인 방법이다. 현재 정점과 인접한 간선들을 하나씩 검사하다가, 아직 방문하지 않은 정점으로 향하는 간선이 있다면...
INTEREST/ 크리티컬 섹션(Critical Section)
프로그래밍 / 소켓 프로그래밍
임계 영역 임계 영역이란, 멀티쓰레드 환경에서 다수의 쓰레드들이 동시에 어떤 코드를 실행할 때, 각 쓰레드들이 서로 다른 결과를 내놓는, 동시 접근 문제가 발생할 수 있는 코드의 한 부분(영역)이다. 한 애플리케이션에서...
DEV/ 삽입 정렬(Insertion Sort)
정렬 알고리즘
삽입 정렬 (Insertion Sort) 이 글의 목표 Insertion Sort에 대해 설명할 수 있다. Insertion Sort 과정에 대해 설명할 수 있다. Insertion Sort를 구현할 수 있다. Insertion Sort의 공간복잡도와 시간복잡도를 계산할...
DEV/ 선택 정렬(Selection Sort)
정렬 알고리즘
선택 정렬 (Selection Sort) 이 글의 목표 Selection Sort에 대해 설명할 수 있다. Selection Sort 과정에 대해 설명할 수 있다. Selection Sort를 구현할 수 있다. Selection Sort의 공간복잡도와 시간복잡도를 계산할...
DEV/ 거품 정렬(Bubble Sort)
정렬 알고리즘
거품 정렬 (Bubble Sort) 이 글의 목표 Bubble Sort에 대해 설명할 수 있다. Bubble Sort 과정에 대해 설명할 수 있다. Bubble Sort를 구현할 수 있다. Bubble Sort의 공간복잡도와 시간복잡도를 계산할...
DEV/ LRU 알고리즘
알고리즘
LRU(Least Recently Used) 알고리즘 페이지 교체 알고리즘 cpu가 계산을 할 때 필요한 데이터가 페이지에 있다면 cache hit라고 부르며, 없을 경우 보조기억장치로부터 데이터를 페이지로 옮겨온 후 계산을 하는데 이는 cache miss라고...
DEV/ Stack, Queue
자료구조
스택(Stack) 이란? 스택(stack)은 후입선출(Last-In-First-Out, LIFO)의 구조를 가지고 있다. Stack 클래스 Stack 클래스는 List Collection 클래스의 Vector 클래스를 상속받아, 스택 메모리 구조의 클래스를 제공한다. 가장 나중에 저장된(push) 데이터가 가장 먼저 인출(pop)되는...
DEV/ awk 명령어 사용법
Mac / Unix
awk awk는 파일로부터 레코드(recode)를 선택하고, 선택된 레코드에 포함된 값을 조작하거나 데이터화하는 것을 목적으로 사용하는 명령어이다. awk 명령으로 할 수 있는 일들은 다음과 같다. 텍스트 파일의 전체 내용 출력...
DEV/ grep 명령어 사용법
Mac / Unix
grep grep은 텍스트 검색 기능을 가진 명령어이다. 입력으로 전달된 파일의 내용에서 특정 문자열을 찾고자할 때 사용하는데 정규표현식1을 사용하면 같은지(equal) 검사하는 수준을 넘어 훨씬 다양하고 효율적인 기능을 제공한다. 기본 문법...
DEV/ DNS의 이해
DNS
이 글은 생활코딩 WEB2 - Domain Name System을 통해 습득한 내용을 기반으로 하고 있습니다. 들어가기에 앞서 Host란 인터넷에 연결된 컴퓨터 각각 한 대 IP Address는 Host간의 통신에 필요한 주소 IP...
DEV/ 대칭키와 공개키
SSL 탄생의 시초
대칭키(Symmetric Key) 암호화와 복호화에 같은 암호키(대칭키)를 사용하는 알고리즘 장점 : 동일한 키를 주고받기 때문에, 매우 빠르다 단점 : 대칭키 전달과정에서 해킹 위험에 노출 공개키(Public Key) 암호화와 복호화에 사용하는 암호키를 분리한...
DEV/ HTTP & HTTPS
http와 https
HTTP HyperText Transfer Protocol HTTP는 인터넷 상에서 클라이언트와 서버가 자원을 주고 받을 때 쓰는 통신 규약 HTTP의 문제점 HTTP는 텍스트 통신이기 때문에 도청이 가능하다. 통신 상대를 확인하지 않기 때문에 위장이...