전체보기

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가..
본 포스팅은 인프런 - 스프링 MVC 2편을 강의를 바탕으로 공부하고 정리한 글입니다. 프로젝트 준비로그인 요구사항홈 화면 - 로그인 전회원 가입로그인홈 화면 - 로그인 후본인 이름 ( __님 환영합니다. )상품 관리로그아웃보안 요구사항로그인 한 사용자만 상품에 접근하고, 관리할 수 있음로그인 하지 않은 사용자가 상품 관리에 접근하면 로그인 화면으로 이동회원 가입, 상품관리 패키지 구조 설계📁 hello.login ㄴ domain ㄴ item ㄴ member ㄴ login ㄴ web ㄴ item ㄴ member ㄴ login구조 설계시 도메인이 가장 중요하다. 도메인은 시스템이 구현해야 하는 핵심 비즈니스 업무 영역을..
본 포스팅은 인프런 - 스프링 MVC 2편을 강의를 바탕으로 공부하고 정리한 글입니다. 검증 기능을 매번 코드로 작성하는 것은 번거로운 일이다. 더욱 편리하게 검증을 하기 위해 검증 로직을 모든 프로젝트에 적용할 수 있도록 공통화 하고, 표준화 한 것이 Bean Validation이다. Bean Validation을 사용하면 검증에 대한 제약조건을 어노테이션에 넣어 사용할 수 있다. Bean Validation Bean Validation 2.0(JSR-380)이라는 기술 표준이다. 쉽게 말해 검증 어노테이션과 여러 인터페이스의 모음이다. Bean Validation을 구현한 기술 중 일반적으로 사용하는 구현체는 하이버네이트 Validator이다. ❗참고(하이버 네이트 Validator 관련 링크) - ..
Validation 클라이언트 검증 vs 서버 검증 컨트롤러의 중요한 역할 중 하나는 HTTP 요청이 정상인지 검증하는 것이다. 검증은 클라이언트 측에서 진행할 수도 있고 서버 측에서 진행할 수도 있으며, 특징은 다음과 같다. 클라이언트 검증은 조작할 수 있기 때문에 보안에 취약하다 서버만으로 검증하면, 즉각적인 고객 사용성이 부족해진다. 따라서 둘을 적절히 섞어서 사용하되, 최종적으로 서버 검증은 필수이다. API 방식을 사용할 경우 API 스펙을 잘 정의하여 검즈 오류를 API 응답 결과에 잘 남겨줘야 한다. 예제 만들기 검증을 직접 구현해보며 검증에 대해 알아보도록 하자. 검증 요구사항 타입 검증 가격, 수량에 문자가 들어가면 검증 오류 처리 필드 검증 상품명 : 필수, 공백x 가격 : 1000원 ..
투포인터 투포인터 알고리즘에 대해 알아보자. 투포인터는 선형시간 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
· 🎸 Etc
웹 개발 도중 서버를 켰을 때 8080 포트가 이미 사용 중이라는 에러메시지를 자주 접하게 된다. 이럴 경우 사용 중인 포트를 죽여야 하는데, 명령어를 자꾸 까먹어 기록해놓으려 한다.🤨 Mac 사용자 찾고자 하는 포트번호를 확인한다. lsof -i :포트번호 PID 번호를 입력해 포트를 죽인다. kill PID번호 Window 사용자 cmd에서 다음 명령어를 사용해 현재 사용중인 port 리스트를 확인한다. netstat -a -o port 리스트에서 8080을 찾고 PID 번호를 기억하고, 다음 명령어를 입력해 8080 포트를 죽인다. (만약 엑세스가 거부된다는 메시지가 뜬다면 관리자 모드로 다시 실행) taskkill /f /pid PID번호
스프링에서 제공하는 기본 로그인 화면을 커스터마이징 하지 않고 그대로 사용하기에는 부족하다. 아이디와 비밀번호를 받아와 로그인 하는 기능은 할 수 있지만, 실제로 로그인에서 이 기능만 하지는 않는다. 그렇기 때문에 우리는 내가 원하는 로그인 화면을 Spring Security 로그인에 맞게 커스터 마이징 해서 사용해야 한다. Spring Boot + Security + Gradle을 사용한 로그인/로그아웃을 구현 시 어떻게 Spring Security 커스터 마이징 하는지 간단하게 알아보자. 의존성 추가 📁 Build.gradle implementation 'org.springframework.boot:spring-boot-starter-security' //spring security implement..
an2z
'분류 전체보기' 카테고리의 글 목록 (13 Page)