목록2024/10 (11)
봄디의 개발일지
📝 문제백준 3273번 : 두 수의 합 💭 풀이 방법for 문을 2번 돌려서 푸는 문제구나 ! 라고 하고 풀었지만 시간 초과가 발생했습니다 ..찾아보니 이 문제는 투 포인터 를 이용해서 푸는 문제더라구요 ! 투 포인터란 ? 선형 시간 O(n) 으로 알고리즘을 풀 수 있게 해주는 알고리즘입니다. 배열이나 리스트에서 두 개의 포인터를 이용해서 특정 조건을 만족하는 부분 구간을 효율적으로 탐색할 수 있습니다. 일반적으로 배열이나 리스트가 정렬되어 있을 때 사용됩니다. 간략한 알고리즘은 이렇습니다. 1. 배열을 먼저 정렬해준다. 2. start 는 배열의 맨 앞을, end 는 배열의 맨 뒤를 가리킨다. 3. arr[start] + arr[end] 를 해서 원하는 값이 나오면 최종 count 할 수 있는 ..
2024.10.27 - [자바] - [JAVA] Set 총 정리 (HashSet, LinkedHashSet, TreeSet) [JAVA] Set 총 정리 (HashSet, LinkedHashSet, TreeSet)1️⃣ Set 이란?Set 은 집합이라는 의미로 유일한 요소의 컬렉션을 말합니다. Set 의 특징으로는 유일성, 순서 미보장, 빠른 검색 등이 있습니다. 유일성 : Set 에는 중복된 요소가 존재하지 않습니bomdy.tistory.com Set 의 주요 메서드를 설명할 때 구현 클래스는 HashSet 으로 설명하겠습니다. HashSet 에 대한 설명은 이 전 블로그를 확인해주세요. 1️⃣ Set 의 주요 메서드 정리메서드설명add (E e)지정된 요소를 Set 에 추가한다. (이미 존재하는..
1️⃣ Set 이란?Set 은 집합이라는 의미로 유일한 요소의 컬렉션을 말합니다. Set 의 특징으로는 유일성, 순서 미보장, 빠른 검색 등이 있습니다. 유일성 : Set 에는 중복된 요소가 존재하지 않습니다. Set 에 요소를 추가할 때 이미 존재하는 요소라면 무시됩니다. 순서 미보장 : 대부분의 Set 구현에서는 순서를 보장하지 않습니다. 따라서 요소를 출력할 때 입력 순서와 다를 수 있습니다. (LinkedHashSet 제외)빠른 검색 : Set 은 요소의 유무를 빠르게 확인할 수 있도록 최적화 되어 있습니다. 한마디로 Set 을 정의하자면 중복을 허용하지 않고, 순서를 보장하지 않는 자료 구조 입니다. 자바의 Set 인터페이스는 java.util 패키지에 속하는 인터페이스 중 하나입니다. ..
캐시와 관련된 헤더는 크게 3가지가 있습니다. Cache-Control : 캐시 제어Pragma : 캐시 제어 (하위 호환) - 거의 사용하지 않는다. Expires : 캐시 유효 기간 (하위 호환)1️⃣ Cache-Control (⭐중요)Pragma, Expires 는 하위 호환으로 Cache-Control 로 다 할 수 있습니다. Cache-Control: max-ageCache-Control: no-cacheCache-Control: no-store✅ Cache-Control: max-agemax-age 는 앞 포스팅에서도 설명한 것처럼 캐시의 유효시간을 설정하며, 초 단위로 입력할 수 있습니다. Cache-Control: max-age=60 이라고 하면 캐시의 유효시간은 60초를 의미합니다. ✅..
2024.10.20 - [HTTP] - [HTTP] HTTP 헤더 - 캐시의 기본 동작 (검증 헤더) [HTTP] HTTP 헤더 - 캐시의 기본 동작 (검증 헤더)1️⃣ 만약 캐시가 없다면 ? 웹 브라우저가 star.jpg 라는 이미지를 서버에 요청을 했을 때 서버는 star.jpg 파일을 내려주고, HTTP 헤더와 star.jpg 에 관련된 내용이 들어있는 HTTP 바디를 포함한 HTTPbomdy.tistory.com✅ 지난 포스팅 정리지난 시간에는 캐시를 사용해야 하는 이유와, 캐시의 유효시간이 지났을 때 처리하는 방법 등에 대해 알아보았습니다. 또한 검증 헤더는 크게 Last-Modified 와 ETag 가 있고, Last-Modified 는 if-modified-since 와 같이 사용하고 ET..
1️⃣ 만약 캐시가 없다면 ? 웹 브라우저가 star.jpg 라는 이미지를 서버에 요청을 했을 때 서버는 star.jpg 파일을 내려주고, HTTP 헤더와 star.jpg 에 관련된 내용이 들어있는 HTTP 바디를 포함한 HTTP 응답 메시지를 내려줄 것입니다.이 때, HTTP 헤더는 0.1M , HTTP 바디는 1.0M 라고 가정을 하겠습니다. 만약, GET /star.jpg 라고 다시 웹 브라우저가 서버에게 요청을 한다면 서버는 다시 동일한 HTTP 응답 메시지를 만들어서 웹 브라우저에게 내려줄 것입니다. 이 때도 마찬가지로 1.1 M 를 사용하게 될 것입니다. (HTTP 헤더 0.1M + HTTP 바디 1.0M) 이처럼 캐시가 없다면 데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다..
쿠키를 사용할 때는 2개의 헤더를 사용합니다.Set-Cookie : 서버에서 클라이언트로 쿠키 전달 (응답)Cookie : 클라이언트가 서버에서 받은 쿠키를 저장하고, HTTP 요청 시 서버로 전달1️⃣ 만약 쿠키를 사용하지 않는다면 ? 쿠키를 사용하지 않고 로그인을 할 경우, 처음 로그인 할 때는 user=홍길동 이라는 정보를 서버에 전달하기 때문에서버에서도 홍길동님이 로그인했습니다. 라는 정보를 응답합니다. 그러나, 로그인 이후에 /welcome 이라는 페이지를 접근할 경우 안녕하세요, 홍길동님 이라는 결과를 기대했는데안녕하세요, 손님 이라고 서버에서 응답을 하게 된다.그 이유는 서버에서는 /welcome 에 접근한 사용자가 홍길동이라는 사실을 모르기 때문이다. HTTP 는 Stateless..
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..