목차 두 버전의 비교보단 11에서 추가된 기능 위주로 정리한다. String 클래스에 새로운 메서드 추가 strip(): 문자열 앞/뒤 공백 제거 stripLeading(): 문자열 앞 공백 제거 stripTrailing(): 문자열 뒤 공백 제거 isBlank(): 문자열이 비어있거나 공백만 포함된 경우 true 반환 repeat(n): 문자열을 n번 붙여서 반환 java.nio.file.Files 클래스(파일 처리 클래스)에 새로운 메서드 추가 Path writeString(Path, String, Charset, OpenOption): 파일에 문자열을 작성하고 Path로 반환. OpenOption에 따라 다르게 작동하며 Charset의 기본값은 UTF-8이다. String readString(Pat..
목차 Authentication 인증이란 사용자가 식별정보(Cridential)를 이용해 본인이 맞음을 증명하는 절차이다. 스프링 시큐리티 내부에서는 이를 위해 제법 길고 촘촘한 과정이 이어지는데, 요약에 도전해보자. 당연하게도 사용자가 크리덴셜을 담아 보낸 요청이 필터에 도달하면서 과정이 시작된다. UsernamePasswordAuthenticationFilter 제출된 크리덴셜을 통한 인증을 처리하는 필터이다. 가장 앞에서 크리덴셜만 담은, 인증이 완료되지 않은 토큰을 생성(UsernamePasswordAuthenticationToken) 후 AuthenticationManager 호출. AuthenticationManager 인증을 총괄하는 관리자 인터페이스. 실질적인 인증관리는 해당 클래스를 구현..
목차 Spring Security Spring Security는 인증, 권한 부여 및 보안 기능을 제공하는 스프링 프레임워크이다. 먼저 사용되는 용어를 간단히 정리하자. User, Principal 인증을 시도하는 주체를 User, 주체의 구체적인 정보(Username ID)를 Principal이라고 한다. 실제로는 혼용돼서 사용되는 듯하며, 보통 Entity 클래스에 그 정보가 담긴다. Authentication 인증은 User, 혹은 Principal이 본인이 맞음을 증명하는 절차를 말한다. 정상적인 인증을 위해 제출하는 식별 정보를 Credential(신원 증명 정보)이라고 한다. Authorization 권한 부여, 혹은 인가는 인증을 통과한 사용자에게 역할(Role)에 따라 특정 리소스에 대한 ..
목차 어제오늘 JVM의 메모리 구조를 공부하다가 속도와 용량, 일처리 속도의 최적화에 대해 조금 더 알고 싶어서 찾아보게 되었다. 당연하게도 관련 자료가 매우 많고 논문까지 쌓여있는(...) 수준이라 맛보기의 맛보기 정도만 정리하고 가려고 한다. Memory? 메모리는 크게 나누면 Primary Memory와 Secondary Memory로 구분되며, 각 특징은 아래와 같다. Primary MemorySecondary MemoryCPU에 직접 접근이 가능함CPU에 직접 접근이 불가능함Secondary Memory에 비해 상대적으로 속도가 빠름Primary Memory에 비해 상대적으로 속도가 느림임시적(temporary) 메모리이며 일반적으로 휘발성영구적 메모리이며 비휘발성용량 대비 가격이 상대적으로 비..
목차 지난 글에선 JVM의 대략적인 구조와 Workflow에 대해 알아보았다. 2022.10.30 - [Development/Technical Interview] - [Java]JVM 구조(1), JVM Workflow [Java]JVM 구조(1), JVM Workflow JVM(Java Virtual Machine) JVM(Java Virtual Machine)이란 이름 그대로 자바 바이트코드를 실행할 수 있는 가상 머신이다. 여기서 자바 바이트코드란 JVM이 실행할 수 있는 언어로 이루어진 명령어의 집합을 가 gnidinger.tistory.com 이번 글에선 내용을 나누어 다루기로 했던, 런타임 데이터 영역에 대해 알아보겠다. 먼저 지난 글에서 살펴본, JVM의 구조에 대해 그림으로 복습하고 가자...
목차 HTTP의 특징 중 하나는 비연결성이다. 특정 사용자가 한 번 서버에 연결한 적이 있어도 서버는 해당 연결을 유지하지 않는다. 이 때문에 클라이언트의 요청이 없는 실시간 알림이나 메시지 수신이 불가능한데, 이를 해결하는 방식에 대해 정리한다. Polling 폴링은 간단하게 말하면 주기적으로 클라이언트가 서버로 요청을 보내는 방식이다. 가장 간단한 방식이지만 지속적인 HTTP 요청이 발생하기 때문에 리소스 낭비가 발생하며, 진정한 의미의 실시간 연결이라 보기 힘들다는 단점이 존재한다. 추가로 이를 부분적으로 해결하기 위해 긴 폴링(Long Polling)이라는 방식이 존재한다. 이는 요청의 유지시간을 이벤트 발생 시까지 길게 유지하는 방법으로, 어느 정도 실시간 연결이라 볼 구석이 있지만 이벤트 사이..
목차 AWS(Amazon Web Service) 아마존의 클라우드 컴퓨팅 사업부. 클라우드 컴퓨팅을 통한 서비스 배포에 필요한 각종 서비스를 제공한다. EC2(Elastic Compute Cloud) EC2는 AWS에서 제공하는 클라우드 컴퓨팅 서비스이다. 적은 시간과 노력으로 원하는 성능과 원하는 운영체제의 가상 머신을 구성할 수 있으며, 이렇게 생성 및 대여한 한 대의 컴퓨터를 인스턴스라 부른다. S3(Simple Storage Service) S3는 무제한 용량을 지원하는 클라우드 저장소이다. 버킷(Bucket)이라는 영역을 생성해 데이터를 키-값(Key-Value) 형식의 객체로 저장한다. 여기서 객체란 구체적으로는 실제 데이터가 담긴 파일과 그 파일에 대한 메타데이터로 구성된 객체이다. 파일에는..
목차 Spring Boot 스프링 부트는 복잡한 세팅과 구성을 개발자 대신 간결하게 처리하는 스프링 프로젝트 중 하나다. 구체적으로는 복잡한 .xml 파일에서 .yml 파일로의 전환 build.gradle을 통한 의존 라이브러리 버전 자동 관리 starter 모듈 의존 라이브러리를 통한 앱 및 앱을 띄울 서블릿 컨테이너 자동 구성 .jar 파일로의 빌드를 통해 바로 실행 가능한 파일 생성 내장 WAS(Web Application Server, 혹은 서블릿 컨테이너)를 통한 손쉬운 배포 가 그 특징이라고 할 수 있다. +) 서블릿 컨테이너 - 클라이언트의 요청을 처리하고 반환하는 서블릿의 실행 및 생명주기를 관리하는 역할 Spring AOP AOP(Aspect Oriented Programming)는 직역..
목차 PaaS PaaS란 Platform as a Service의 약자로, 직역하면 서비스로서의 플랫폼이 된다. 저장공간, 서버 등의 자원에 더해 O/S, 미들웨어(소프트웨어 사이의 소프트웨어) 등을 제공하고 관리하여 개발자로 하여금 자체 데이터 및 앱 개발에만 신경 쓸 수 있는 환경을 제공하는 것이다. 조금 구체적인 작동방식은 로컬에서 빌드 및 컴파일해 클라우드에서 실행하는 순서로 이루어진다. 여기서 빌드란 소스 코드를 실행 가능한 형태로 변환하는 과정과 그 결과를 아우르며 컴파일은 빌드의 과정 중 소스코드를 컴퓨터가 이해할 수 있는 기계어로 번역하는 과정을 말한다. 상대적으로 자유도가 낮다는 단점이 있지만 접근성이 좋기 때문에 앱 개발자에게 가장 이상적인 클라우드 컴퓨팅으로 받아들여진다. Docker..
목차 [면접 준비 - Java]JVM 구조(2), Runtime Data Area JVM(Java Virtual Machine) JVM(Java Virtual Machine)이란 이름 그대로 자바 바이트코드를 실행할 수 있는 가상 머신이다. 여기서 자바 바이트코드란 JVM이 실행할 수 있는 언어로 이루어진 명령어의 집합을 가리키며, 플랫폼에 독립적이기 때문에 하드웨어나 운영체제와 무관하게 동작 가능하다는 특징이 있다. 참고로 바이트코드라는 별칭은 컴파일러에 의해 변환된 명령어의 크기가 1바이트이기 때문에 붙었다고 한다. 계속해서 앞서 언급한 정의를 하나로 이어서 그림과 함께 다시 한번 정리하면 JVM이란 컴파일러가 소스코드를 번역해서 만들어낸 바이트코드를 해당 O/S 및 H/W에 맞게 기계어로 해석해주는..
- Total
- Today
- Yesterday
- 동적계획법
- 여행
- 세계여행
- 기술면접
- 파이썬
- 알고리즘
- a6000
- 자바
- 지지
- 칼이사
- 세모
- 남미
- 야경
- BOJ
- 백준
- Algorithm
- 면접 준비
- 맛집
- Python
- java
- 세계일주
- 유럽여행
- 스트림
- RX100M5
- 중남미
- 리스트
- 유럽
- spring
- 스프링
- Backjoon
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |