LRU LRU 알고리즘에 대해 알아보자. LRU 알고리즘은 Least Recently Used의 약자로, 직역하자면 가장 최근에 사용되지 않은 것이라는 의미를 가진다. 예를 들어 캐시메모리 사용 규칙이 LRU 알고리즘을 따른다고 했을 때, 캐시에서 작업을 제거할 때 가장 오랫동안 사용하지 않은 것을 제거하겠다는 알고리즘이다. 만약 캐시 사이즈가 5이고 작업이 [A, B, C, F, D]순으로 저장되어 있다면, Cache Miss 해야할 작업이 캐시에 없는 상태라면 Cache miss가 된다. 모든 작업이 뒤로 밀리며 해당 작업이 캐시의 맨 앞에 위치하게 된다. 예) G일 경우 → [G, A, B, C, F] 이때 D는 캐시에서 삭제 Cache Hit 해야할 작업이 캐시에 있는 상태라면 Cache Hit가..
💻 Computer Science

투포인터 투포인터 알고리즘에 대해 알아보자. 투포인터는 선형시간 O(n)으로 알고리즘을 풀 수 있게 만들어주는 마법의 알고리즘이다. 투포인터는 간단한 편이라 한번쯤 익혀두면 구현하는 것은 어렵지 않을 것이다. 하지만, 시간이 지나면 기억은 흐릿해지기 때문에 다시 찾아 볼 수 있도록 정리해두려고 한다^^,, 투포인터는 연속적인 값들을 이용해 푸는 문제에 적합하다. 문제 2003번: 수들의 합 2 첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. www.acmicpc.net 위 백준의 2003번 문제를 통해 투포인터 알고리즘을 ..
📝 문제 코딩테스트 연습 - n^2 배열 자르기 정수 n, left, right가 주어집니다. 다음 과정을 거쳐서 1차원 배열을 만들고자 합니다. n행 n열 크기의 비어있는 2차원 배열을 만듭니다. i = 1, 2, 3, ..., n에 대해서, 다음 과정을 반복합니다. 1행 1열부 programmers.co.kr 🖥 풀이 import java.util.Arrays; class Solution { public int[] solution(int n, long left, long right) { int[] answer = new int[(int) (right - left + 1)]; for (long i = left; i
설치하기 MariaDB Foundation - MariaDB.org … Continue reading "MariaDB Foundation" mariadb.org menu → download → MariaDB Server Stable 버전 중 선택하여 다운로드 (MSI 패키지 타입 선택) root password 설정 Use UTF8 as default serviers character set 체크 HeidiSQL 설치 완료 스프링 부트와 연동하기 (gradle) gradle 프로젝트와 마리아 디비를 연동하고 싶다면? 마리아 디비를 사용하기 위해 관련 dependencies를 추가해주고, 마리아 디비 주소를 연동해주면 끝이다! 📂 build.gradle dependencies { implementation..
본 포스팅은 [인프런] 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 바탕으로 공부하고 정리한 글입니다. HTTP 헤더 구조 header-field = field-name ":" OWS field-value OWS (OWS:띄어쓰기) field-name은 대소문자를 구분하지 않는다. 용도 HTTP 전송에 필요한 모든 부가정보가 들어있다. 예) 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트(브라우저) 정보, 서버 어플리케이션 정보, 캐시 관리 정보 ... 표준 헤더가 너무 많다. 필요시 임의의 헤더를 추가할 수 있다. helloworld: hihi 분류 과거 (RFC2616) General 헤더 : 메세지 전체에 적용되는 정보 Request 헤더 : 요청 정보 Response..
본 포스팅은 [인프런] 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 바탕으로 공부하고 정리한 글입니다. 상태코드 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능 1xx (Informational) : 요청이 수신되어 처리중 → 거의 사용 X 2xx (Successful) : 요청 정상 처리 3xx (Redirection) : 요청을 완료하려면 추가 행동이 필요 4xx (Client Error) : 클라이언트 오류, 잘못된 문법 등으로 서버가 요청을 수행할 수 없음 5xx (Server Error) : 서버 오류, 서버가 정상 요청을 처리하지 못함 클라이언트가 모르는 상태코드를 서버가 반환한다면? 클라이언트는 상위 상태코드로 해석해서 처리한다. 따라서 미래에 새로운 상태 코드가 추가되어도..
본 포스팅은 [인프런] 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 바탕으로 공부하고 정리한 글입니다. HTTP API 만들기 요구사항 회원 정보 관리 API 만들기 회원 목록 조회 회원 조회 회원 등록 회원 수정 회원 삭제 API URI 설계 일반적으로 URI를 설계하고자 했을 때 다음과 같이 설계하는 경우가 많다. 회원 목록 조회 /read-member-list 회원 조회 /read-member-by-id 회원 등록 /create-member 회원 수정 /update-member 회원 삭제 /delete-member 하지만, URI 설계에 가장 중요한 것은 리소스 식별이다. 리소스란? 회원을 등록하고 수정하고 조회하는 것이 리소스가 아니다. 회원이라는 개념 자체가 리소스이다. 리소스를 어떻게 식..
본 포스팅은 [인프런] 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 바탕으로 공부하고 정리한 글입니다. HTTP HyperText Transfer Protocol 거의 모든 형태의 데이터 전송이 가능하다. HTML, TEXT IMAGE, 음성, 영상, 파일 JSON, XML(API) 서버간 데이터를 주고 받을 때 대부분 HTTP를 사용한다. 💡 HTTP의 역사 HTTP/0.9 1991년 : GET 메소드만 지원, HTTP 헤더X HTTP/1.0 1996년 : 메소드, 헤더 추가 HTTP/1.1 1997년 : 가장 많이 사용, 우리에게 가장 중요한 버전 HTTP/2 2015년 : 성능 개선 HTTP/3 진행중 : TCP 대신에 UDP 사용, 성능 개선 💡 HTTP 기반 프로토콜 TCP : HTTP/1..