일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 가비지 컬렉션
- 동시성
- java
- 가비지 컬렉터
- MySQL
- Atomic Type
- db
- Di
- text
- iterable
- 동시성 문제
- iterator
- Locking Read
- gc
- jpa
- 데이터 타입
- 자바
- 스프링
- MVCC
- reflection
- CAS
- Synchronized
- 백엔드
- Lock
- Varchar
- foreach
- Today
- Total
목록Network (14)
과정을 즐기자

이번 글에서는 개발바닥 유튜브 채널에 있는 개발바닥 장학 라이브 퀴즈를 같이 보고 정리해보려고 합니다.꽤 오래전에 본 영상인데 최근에 다시 보다가 재밌는 이야기가 많아 글로 써보려고 합니다. 📕 창의력 쑥쑥 문제 1 👍 서버 제한 풀기앱에서 서버로 이미지를 전달하는데 5MB를 초과할 때 문제가 발생합니다.뭐 간단하게... 서버 5MB 제한을 풀면 될 거 같지만 문제의 조건에는 맞지 않습니다.그래도 생각해보자면 Spring Boot를 사용할 때 application-yml, application-properties 와 같은 설정을 수정할 수 있습니다.spring: servlet: multipart: max-file-size: 100MB max-request-size: 100M..

HTTP는 인터넷 상에서 가장 많이 사용되고 있는 애플리케이션 프로토콜입니다. HTTP는 웹에서 데이터를 주고 받는 프로토콜로 클라이언트-서버 구조입니다. HTTP를 사용하여 HTML 문서, 이미지, 동영상을 주고 받을 수 있습니다.HTTP 헤더에는 메세지의 속성 정보, 상태 정보가 있고 HTTP 바디에는 실제로 전송하려는 데이터가 들어갑니다.이러한 HTTP는 1991년부터 시작하여 지속적으로 발전해왔습니다. 이번 글에서는 HTTP의 버전별 특징에 대해 알아보겠습니다.HTTP/0.9처음부터 존재하던 버전은 아니었고 초기 버전으로 구분하기 위해 이후에 붙여진 버전입니다.요청은 단일 라인으로 구성되며 리소스에 대한 메소드는 GET만 존재합니다. HTTP 헤더도 없고 HTML 파일만 전송 가능했던 버전입니다...

이번 글에서는 서버가 처리할 수 있는 요청의 수는 어떻게 결정되는지 알아보겠습니다.그 전에 먼저 전체적인 웹 서비스의 흐름을 간단하게 살펴보겠습니다. 우선 크게 3가지 서버로 나눌 수 있습니다. 웹 서버, WAS, DB입니다.웹 서버는 Nginx, Apache 등이 있고 정적인 컨텐츠를 처리, 보안, 로드 밸런서 등의 역할을 합니다.WAS는 Tomcat, Jetty 등이 있고 애플리케이션 로직같은 동적 컨텐츠를 처리합니다.DB는 MySQL, Oracle, MongoDB 등이 있고 데이터를 저장하는 역할을 합니다. 사용자의 요청이 오면 웹 서버, WAS, DB를 거쳐 응답을 반환합니다.물론 이때 DB를 거치지 않고 웹 서버나, WAS에서 바로 응답을 반환할 수도 있습니다. 스프링부트를 사용하면 톰캣 서버..

이번 글에서는 저번 글에 이어서 애플리케이션 계층(L7)이 하는 일에 대해 알아보겠습니다. 물리 계층(L1), 데이터 링크 계층(L2), 네트워크 계층(L3), 트랜스포트 계층(L4)이 하는 일은 이전 글들을 참고해주세요 L7 - 애플리케이션 계층 L7은 개발자가 직접 다루는 애플리케이션이 하는 일에만 집중합니다. 하위 계층에서 어떤 프로토콜이 어떻게 동작할 지 모르더라도 개발자는 L7 계층의 프로토콜을 이용하여 애플리케이션을 만들 수 있습니다. L7의 프로토콜로는 DHCP, DNS, SSH, FTP, STMP, IMAP, HTTP 등이 있습니다. 지금부터 이러한 프로토콜에 대해서 알아보겠습니다. DHCP 우리가 사용하는 컴퓨터는 연결된 라우터와 같은 네트워크에서 겹치지 않는 IP 주소를 할당받아야 합니..

이번 글에서는 Stateless인 HTTP에서 로그인을 어떻게 유지하는 지에 대해서 생각해보며 성능을 고려하여 세션 기반 인증, 토큰 기반 인증을 비교해보겠습니다. 세션 기반 인증 세션을 저장하는 곳 세션 기반 인증은 서버측에서 사용자들의 정보를 기억해야 합니다. 사용자가 로그인 요청을 하면 서버에서는 로그인 할 수 있는 회원인지 확인한 후 로그인 가능하면 Set-Cookie에 Session Id를 반환합니다. 그러면 사용자의 다음 요청시 쿠키의 헤더를 보고 서버는 사용자가 로그인 유지를 할 수 있도록 합니다. 하지만 이때 문제점이 있습니다. 사용자의 세션 정보는 서버가 가지고 있는데 트래픽이 늘어나 서버가 여러 대로 늘어난다면 사용자는 로그인을 요청했던 서버에게 요청을 할 때만 로그인을 유지할 수 있다..

이번 글에서는 저번 글에 이어서 트랜스포트 계층(L4)이 하는 일에 대해 알아보겠습니다. 물리 계층(L1), 데이터 링크 계층(L2), 네트워크 계층(L3)이 하는 일은 이전 글들을 참고해주세요 L4 - 트랜스포트 계층 L4는 송신자와 수신자를 연결하는 통신 서비스를 제공합니다. 직접 물리적으로 데이터를 옮기는 것은 아니지만 송신자, 수신자가 통신을 할 수 있게 연결해주는 역할입니다. L4는 호스트 내에서 애플리케이션을 구분하는 용도로 포트라는 것을 사용합니다. 포트는 16비트로 사용하기 때문에 2^16으로 부호없는 정수 0 ~ 65535번이 될 수 있습니다. IP 뒤에 콜론으로 포트 번호를 붙입니다. 포트는 논리적인 개념으로 간단하게 프로세스 주소라고 할 수 있습니다. 이렇게 L4는 송신자, 수신자를 ..

이번 글에서는 저번 글에 이어서 네트워크 계층(L3)이 하는 일에 대해 알아보겠습니다. 물리 계층(L1), 데이터 링크 계층(L2)이 하는 일은 이전 글을 참고해주세요 물리 계층(L1), 데이터 링크 계층(L2)이 하는 일 이번 글에서는 물리 계층(L1), 데이터 링크 계층(L2)에 대해서 알아보겠습니다. L1 - 물리 계층 L1에는 케이블, 리피터, 허브가 있습니다. L1은 실제로 데이터를 물리적으로 전송해주는 역할을 합니 320hwany.tistory.com L3 - 네트워크 계층 이전에 스위치와 허브로만 이루어진 브로드캐스트 영역을 나눠야할 필요성이 있었습니다. LAN 영역에서 LAN 영역으로 넘어가게 되면 기존에 사용하던 출발지 MAC 주소, 목적지 MAC 주소만으로는 다른 LAN 영역에 있는 컴..

이번 글에서는 물리 계층(L1), 데이터 링크 계층(L2)에 대해서 알아보겠습니다. L1 - 물리 계층 L1에는 케이블, 리피터, 허브가 있습니다. L1은 실제로 데이터를 물리적으로 전송해주는 역할을 합니다. 데이터는 디지털이지만 디지털은 물리적으로 보낼 수 없습니다. 즉 디지털 데이터가 아날로그로 변환되고 이것을 전기신호, 전자기파(가시광선, 전파 등)로 보내는 것입니다. 케이블 이렇게 데이터를 보내는 것은 케이블을 통해서 가능합니다. 케이블은 UTP 케이블, 동축 케이블, 광 케이블이 있습니다. UTP 케이블은 현재 가장 많이 사용되며 흔히 볼 수 있는 랜선이라고 생각하시면 됩니다. 동축 케이블은 반이중 통신이고 설치가 어렵고 비싸기 때문에 잘 사용하지 않습니다. 광 케이블은 빛을 이용하기 때문에 더..

이 글은 '성공과 실패를 결정하는 1%의 네트워크 원리'를 읽고 정리한 내용입니다. 브라우저에 URL을 입력하면 그것을 바탕으로 브라우저는 HTTP Request Message를 만들고 OS에 송신을 의뢰합니다. 여기까지의 과정은 이전 글에서 설명하였습니다. 웹 브라우저가 메세지를 만든다(HTTP, DNS, OS 프로토콜 스택, 소켓) 이 글은 '성공과 실패를 결정하는 1%의 네트워크 원리' 책의 1장으로 보고 정리한 내용입니다. HTTP Request Message를 작성한다 먼저 사용자가 브라우저에 URL을 입력합니다. URL에는 프로토콜, 웹서버 320hwany.tistory.com TCP/IP 전체 구조 이번 글에서는 그 다음 과정인 OS에 내장된 프로토콜 스택이 어떻게 송신을 의뢰하는 지를 알아..

이 글은 '성공과 실패를 결정하는 1%의 네트워크 원리' 책의 1장으로 보고 정리한 내용입니다. HTTP Request Message를 작성한다 먼저 사용자가 브라우저에 URL을 입력합니다. URL에는 프로토콜, 웹서버명, 디렉토리명, 파일명 등이 정의되어 있습니다. 프로토콜에는 http, ftp, file, mailto 등이 있지만 여기서는 가장 많이 사용하는 http로 설명하겠습니다. 이제 브라우저는 URL의 정보를 보고 HTTP Request Message를 만듭니다. 이렇게 브라우저가 만든 HTTP Request Message를 서버에 전송하고 서버로부터 HTTP Response Message를 받습니다. HTTP 구조에 대한 자세한 내용은 이전 글을 참고해주세요. HTTP 특징 HTTP 메소드 ..