목록분류 전체보기 (29)
봄디의 개발일지
1️⃣ 전송 방식전송 방식은 크게 4가지로 나뉩니다. 단순 전송압축 전송분할 전송범위 전송 ✅ 단순 전송 (Content-Length) 단순 전송은 요청을 하면 메시지 바디에 대한 Content-Length 를 지정하는 것을 말합니다. 단순하게 요청을 하고, 한 번에 응답을 받는 방식을 의미합니다. ✅ 압축 전송 (Content-Encoding) 서버에서 gzip 같은 걸로 압축을 진행했을 때 어떤 걸로 압축을 진행했는 지에 대한 정보를 Content-Encoding 으로 알려줍니다. 그래야 클라이언트에서 응답을 받았을 때 압축된 정보를 알고 풀어서 사용할 수 있습니다. ✅ 분할 전송 (Transfer-Encoding) Transfer-Encoding: chunked 라고 있으면 chunk 는 ..
1️⃣ 개요HTTP 표준 RFC2616 이 폐기된 후 RFC7230~7235 가 등장하면서 바뀐 것들이 있습니다. 엔티티 (Entity) ➡ 표현 (Representation) 이라고 명칭이 들어오게 되고, 표현 (Representation) 은 표현 메타 데이터 + 표현 데이터 를 합쳐서 부르게 됩니다. 메시지 본문을 통해서 표현 데이터를 전달합니다. 메시지 본문은 페이로드 (payload) 라고도 부릅니다. 표현은 요청이나 응답에서 전달할 실제 데이터라고 합니다. 표현 헤더는 데이터 유형(html, json) , 데이터 길이, 압축 정보 등등 표현 데이터를 해석할 수 있는 정보를 제공합니다. (표현 헤더는 표현 메타데이터와 페이로드 메시지를 구분해야 하지만, 여기서는 생략하도록 하겠습니다.) 2️..
ArrayList 에 대한 설명은 아래의 게시물에서 확인할 수 있습니다. 2024.10.06 - [자바] - [JAVA] 컬렉션 - List 정리 (ArrayList, LinkedList) [JAVA] 컬렉션 - List 정리 (ArrayList, LinkedList)1️⃣ List 란 ?List 란 순서가 있고, 중복을 허용하는 자료 구조를 말합니다. List 인터페이스는 ArrayList, LinkedList 와 같은 여러 구현 클래스를 가지고 있습니다. 이제, ArrayList 와 LinkedList 에 대해bomdy.tistory.com이 글에서는 ArrayList 로 예를 들어 설명하지만 List 인터페이스의 주요 메서드이며 LinkedList 에서도 동일하게 사용 가능합니다. 1️⃣ Arra..
1️⃣ List 란 ?List 란 순서가 있고, 중복을 허용하는 자료 구조를 말합니다. List 인터페이스는 ArrayList, LinkedList 와 같은 여러 구현 클래스를 가지고 있습니다. 이제, ArrayList 와 LinkedList 에 대해 자세히 알아보겠습니다. 2️⃣ ArrayListArrayList list = new ArrayList(); 자바에서 크기가 동적으로 변경되는 배열이 필요할 때는 ArrayList 를 사용합니다. ArrayList 는 배열을 사용하여 데이터를 관리합니다. 기본 CAPACITY 는 10이며, 기존 CAPACITY 를 넘어가면 배열을 50% 증가합니다. ArrayList 는 배열을 사용하기 때문에 인덱스를 활용하여 한 번에 원하는 데이터를 찾을 수 있다는 장..
클라이언트에서 서버로 데이터를 전송하는 방법은 크게 2가지가 있습니다. 1. 쿼리 파라미터를 통한 데이터 전송GET 에서 많이 사용주로 정렬 필터, 검색어를 입력할 때 많이 사용2. 메시지 바디를 통한 데이터 전송HTTP 메서드 중에서 POST, PUT, PATCH 를 주로 사용회원 가입, 상품 주문, 리소스 등록, 리소스 변경할 때 많이 사용클라이언트에서 서버로 데이터를 전송하는 것을 크게 4가지 상황으로 분류할 수 있습니다. 정적 데이터 조회동적 데이터 조회HTML Form을 통한 데이터 전송HTTP API를 통한 데이터 전송1️⃣ 정적 데이터 조회 (쿼리 파라미터 미사용) 클라이언트에서 서버로 /static/star.jpg 를 요청하면, 서버에서는 별 이미지를 클라이언트에게 내려주면 됩니다. 이..
1️⃣ 상태 코드상태코드란 ? 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능입니다. 클라이언트가 서버로 요청을 보내면 그 요청이 잘 처리가 됐는지, 아니면 뭔가 문제가 있는지를 응답이 올 때 알려줍니다. 상태코드는 100, 200, 300, 400, 500 대로 크게 5가지로 나뉩니다. 1xx (Informational) : 요청이 수신되어 처리중 (거의 사용X)2xx (Successful) : 요청 정상 처리3xx (Redirection) : 요청을 완료하려면 추가 행동이 필요4xx (Client Error) : 클라이언트 오류, 잘못된 문법 등으로 서버가 요청을 수행할 수 없음5xx (Server Error) : 서버 오류, 서버가 정상 요청을 처리하지 못함 ✅ 만약 모르는 상태 코..
1️⃣ HTTP 메서드 종류GET : 리소스 조회POST : 요청 데이터 처리, 주로 등록에 사용PUT : 리소스를 대체, 해당 리소스가 없으면 생성PATCH : 리소스 부분 변경DELETE : 리소스 삭제2️⃣ GET (리소스 조회)GET /search?q=hello&hl=ko HTTP/1.1HOST: www.google.com GET 메서드는 리소스를 조회할 때 사용하며, 서버에 전달하고 싶은 데이터는 쿼리 파라미터, 쿼리 스트링을 통해서 전달합니다. 메시지 바디를 사용해서 데이터를 전달할 수 있지만, 권장하는 방법은 아닙니다. 클라이언트에서 /members/100 에 있는 내용을 달라고 GET 메소드를 통해서 서버에 전달하면, 서버에서 /members/100 에 있는 { "username"..
1️⃣ HTTP 란 ?HTTP 란 HyperText Transfer Protocol 의 줄임말로, 현재는 HTTP 메시지에 모든 것을 전송합니다.HTML 텍스트뿐만 아니라 이미지, 음성, 영상, 파일 그리고 서버끼리 통신할 때 사용하는 JSON, XML 등등 거의 모든 형태의 데이터를 다 전송할 수 있습니다. 그리하여 지금은 HTTP 시대 !! 라고 말할 수 있습니다. HTTP 버전 중에 HTTP/1.1 을 가장 많이 사용하고 있습니다. 그 이후로도 HTTP/2 , HTTP/3 이 나왔지만 HTTP/1.1 에 성능 개선이 추가된 거라고 생각하시면 됩니다. HTTP/1.1 과 HTTP/2 는 TCP 프로토콜을 기반으로 동작하며, HTTP/3 은 UDP 기반으로 개발이 되어있습니다. HTTP 의 특징으..
🌟 자바 메모리 구조자바의 메모리 구조는 크게 메서드 영역, 스택 영역, 힙 영역 3개로 나눌 수 있습니다. 메서드 영역 : 클래스 정보를 보관한다. 스택 영역 : 실제 프로그램이 실행되는 영역이다. 힙 영역 : 객체(인스턴스) 가 생성되는 영역이다. 배열도 이 영역에 생성된다. ✅ 메서드 영역메서드 영역은 프로그램을 실행하는데 필요한 공통 데이터를 관리합니다. 이 영역은 프로그램의 모든 영역에서 공유합니다. 클래스 정보 : 클래스의 실행 코드, 필드, 메서드와 생성자 코드 등 모든 실행 코드가 존재합니다. static 영역 : static 변수들을 보관합니다. 런타임 상수 풀 : 프로그램을 실행하는데 필요한 공통 리터럴 상수를 보관합니다. 예를 들어 "hello" 라는 리터럴 문자가 있으면 이런 문..
1️⃣ URI (Uniform Resource Identifier)URI 는 로케이터(Locator), 이름(name) 또는 둘 다 추가로 분류될 수 있습니다. URI 는 리소스를 식별한다는 의미입니다. 예를 들어 주민번호와 같이 사람을 식별할 수 있는 것 이라고 생각하면 될 것 같습니다. URI 에는 크게 URL (리소스의 위치) 과 URN (리소스의 이름) 두 가지로 나눌 수 있습니다. 위의 그림과 같이 URL은 우리가 흔히 자주 보는 주소를 이야기하고, URN은 이름을 부여하는 것을 말합니다. 하지만 URN 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화 되어 있지 않으므로 URL 을 더 자주 사용합니다. URI 의 단어 의미는Uniform : 리소스를 식별하는 통일된 방식Resourc..