일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
31 |
- project loom
- mail server
- $p.local
- 캐시
- java
- ExceptionHandler
- 비동기
- 쿠키
- WebSquare5
- 웹스퀘어
- 명령
- AWS Game Day
- GIT
- controlleradvice
- github
- gc튜닝
- $p
- java 21
- $p.data
- .md
- Spring
- virtual threads
- 세션
- markdown
- gc
- gameday
- SMTP
- CPU 바운드
- @Async
- SP4
- Today
- Total
목록전체 글 (21)
쉬다가렴
코드를 작성하다보니 동일한 어노테이션을 여러 클래스에 반복적으로 작성해야 하는 상황이 발생하였다. 이러한 작업이 상당히 번거롭게 느껴졌고, 이러한 반복 작업을 줄이고자 커스텀 어노테이션을 만들어 적용하게 되었는데, 이에 대해 자세히 알아보도록 하자. 1. 다양한 Java 어노테이션 [ 어노테이션의 종류 ] 어노테이션을 직접 개발하기 위해서는 Java에서 제공하는 어노테이션에 대해 먼저 알아야 한다. Java의 어노테이션은 크게 built-in 어노테이션(Built-in Annotation)과 Meta 어노테이션(Meta Annotation)이 존재한다. built-in 어노테이션 Java 코드에 적용되는 어노테이션 @Overried, @Deprecated, @SuppressWarnings 등이 존재 me..
Dependency Spring Boot starter 에 기본적으로 의존 org.springframework.scheduling Enable Scheduling Project Application Class에 @EnableScheduling 추가 @EnableScheduling // 추가 @SpringBootApplication public class SchedulerApplication { public static void main(String[] args) { SpringApplication.run(SchedulerApplication.class, args); } } scheduler를 사용할 Class에 @Component, Method에 @Scheduled 추가 @Scheduled 규칙 Meth..
# 폴더생성 $ mkdir cert # 폴더생성 $ mkdir cert # openssl 설정파일 복사 $ cp /etc/ssl/openssl.cnf ./ # Private Key (비밀키) 생성 $ openssl req -x509 -days 730 -nodes -newkey rsa:2048 -outform der -keyout server.key -out ca.der -extensions v3_ca -config openssl.cnf # der 포맷으로 변환 $ openssl rsa -in server.key -inform pem -out server.key.der -outform der # pkcs8 포맷으로 변환 $ openssl pkcs8 -topk8 -in server.key.der -infor..

우분투 메일서버 구축 우분투 18.04 메일 서버 설치 방법을 설명드립니다. 메일을 전송하고 수신하기 위해서 SMTP, IMAP, POP 프로토콜을 지원 하는 메일 서버 설치 방법을 알려드리고 Postfix와 Courier등 관련 패키지를 이용하여 서비스를 구축하도록 하겠습니다. 준비사항 우분투 메일 서버 만들기 위해서 아래의 내용이 준비되었다는 가정하에 설명드리도록 하겠습니다. 도메인 : 메일 주소에 사용할 도메인이 필요합니다. 이 글에서는 hiseon.me 도메인으로 설명 드리도록 하겠습니다. DNS 레코드 추가 권한 : 호스팅 서비스를 받는 네임서버에 DNS 를 추가 할 수 있지만, 이번 글에서는 직접 구축된 DNS 서버에서 레코드를 추가하는 방법으로 설명 드리도록 하겠습니다. SSL/TLS 인증서..

기술의 발전으로 프로세서 속도는 빠르게 증가해온 반면, 메모리의 속도는 이를 따라가지 못했다. 프로세서가 아무리 빨라도 메모리의 처리 속도가 느리면 결과적으로 전체 시스템 속도는 느려진다. 이를 개선하기 위한 장치가 바로 캐시(Cache)다. 캐시는 CPU 칩 안에 들어가는 작고 빠른 메모리다. (그리고 비싸다.) 프로세서가 매번 메인 메모리에 접근해 데이터를 받아오면 시간이 오래 걸리기 때문에 캐시에 자주 사용하는 데이터를 담아두고, 해당 데이터가 필요할 때 프로세서가 메인 메모리 대신 캐시에 접근하도록해 처리 속도를 높인다. Principle of Locality '자주 사용하는 데이터’에 관한 판단은 지역성의 원리를 따르며, 지역성 원리는 시간 지역성(Temporal locality)과 공간 지역성..

세션(Session) 캐시(Cache) 쿠키(Cookie) 정의 사용자가 웹 브라우저를 통해 웹서버에 접속한 시점으로부터 웹 브라우저를 종료하여 연결을 끝내는 시점까지, 같은 사용자로부터 오는 일련의 요청을 하나의 상태로 보고, 그 상태를 일정하게 유지하는 기술. 즉, 방문자가 웹 서버에 접속해있는 상태를 하나의 단위로 보고 그것을 세션이라고 한다. 캐시는 웹 페이지 요소를 저장하기 위한 임시 저장소이다. 특히, 후에 필요할 것 같은 요소들을 저장한다. 이러한 요소들은 그림 파일이나 문서 파일 등이 될 수 있다. 쿠키 또한 정보를 저장하기 위해 사용된다. 기본적으로 웹서버에서 PC로 보내는 작은 파일들을 저장한다. 보통 쿠키는 누군가 특정한 웹 사이트를 접속할 때 발생한다. 목적 웹서버에 웹 컨테이너의 ..

이번에는 Spring Security가 어떤 과정으로 Authentication 처리를 하는지, 그리고 실제로 어떻게 구현하는지 알아보도록 하자. 1. Spring Security 처리 과정 Spring Security 아키텍쳐는 위와 같으며 각각의 처리 과정에 대해서 자세히 알아보도록 하자.(아래에서 설명하는 내용은 Session을 활용한 Spring Security의 구현 방식으로, Session과 Token 기반의 구현방식에 대해서는 여기를 참고하세요! ) [ 0. 사전 세팅 ] 먼저 프로젝트에서 사용할 Dependency들을 build.gradle에 추가해준다. dependencies { implementation 'org.mariadb.jdbc:mariadb-java-client' impleme..

대부분의 시스템에서는 회원의 관리를 하고 있고, 그에 따른 인증(Authentication)과 인가(Authorization)에 대한 처리를 해주어야 한다. Spring에서는 Spring Security라는 별도의 프레임워크에서 관련된 기능을 제공하고 있는데, 이번에는 Spring Security에 대해서 알아보도록 하겠다. 1. Spring Security란? [ Spring Security란? ] Spring Security는 Spring 기반의 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임워크이다. Spring Security는 '인증'과 '권한'에 대한 부분을 Filter 흐름에 따라 처리하고 있다. Filter는 Dispatcher Servlet으로 가기 전에 적용되..