분류 전체보기 26

openssl을 통한 인증서 만들기(mac)

# 폴더생성 $ 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)과 공간 지역성..

퍼온자료 2022.03.17

세션, 캐시, 쿠키

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

[Spring Boot] Spring Security(2/2)

이번에는 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..

[Spring Boot] Spring Security(1/2)

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

[@Spring] @ExceptionHandler와 @ControllerAdvice

우리는 기존에 에러를 핸들링 하기 위해서 try-catch를 사용했다. Spring에서는 이러한 것을 편하게 해결하기 위해 지원가능 기능이 있는데 이것이 바로 @ExceptionHandler이다. @Controller public class SimpleController { // ... @ExceptionHandler(CustomException.class) public ResponseEntity handle(IOException ex) { // ... } } 해당 컨트롤러에서 비즈니스 로직을 수행하다가 CustomException이 발생하면 해당 애너테이션이 붙어있는 메서드가 실행되어 에러를 처리하게 된다. 여기서 추가적으로 Controller에서 작성하는 것이 아니라 분리를 해서 처리를 할 수 있는데..

.md (Markdown) 파일 작성 시 핵심문법

.md 파일 핵심문법 # : 페이지 헤딩이며, html의 ~ 태그에 해당한다. 최대 6개까지 붙여쓸 수 있다. ex)###### hi :) * : 순서가 없는 리스트를 만들 수 있다. 탭으로 안쪽으로 들여쓴 목록을 만들 수 있다. 1. 2. 3. ... : 순서가 정해진 리스트를 만들 수 있다. 들여쓰기 처리가 된다. *[글씨]* : 기울인 글씨를 쓸 수 있다. **[글씨]** : 굵은 글씨를 쓸 수 있다. [링크 내용](링크 주소) : 링크를 만들 수 있다. 주소 url을 그대로 적으면 자동으로 링크가 만들어 진다. > : 인용구를 작성합니다. 개발자들이 쓰기 좋은 페이지는 >> 마크다운 에디터 : https://pandao.github.io/editor.md/en.html Editor.md - Ope..

Server/Git 2020.09.24

[Spring Boot/IntelliJ IDEA] ep02. Skeleton Project 구성 파악

지난 ep01. Spring Boot Project Import에서 스프링부트 프로젝트를 웹에서 간단하게 생성하고, 인텔리제이에 import까지 시켜보았다. https://devsyw.tistory.com/3?category=874223 참조 [Spring Boot/IntelliJ IDEA] ep01. Spring Boot Project Import 저는 지금까지 STS, 전자정부프레임워크 등 이클립스 기반 Spring Framework로 개발을 해왔습니다. 하지만 나는 아직 대학생이기에(야간..) 학생 라이센스로 IntelliJ IDEA를 설치할 수 있었습니다!! 오늘� devsyw.tistory.com 바로 개발을 해도 무관하지만 일단 기본적인 프로젝트 구성이 어떻게 되어있는지를 살펴보자(Skelet..

[WebSquare5/SP4] ep03. API - $p.local

HTML5의 LocalStorage와 동일한 기능을 제공. LocalStorage는 도메인(사이트) 별로 브라우저에서 제공하는 임의의 영역에 데이터를 저장하는 기능으로 브라우저 설정에 따라 저장할 수 있는 데이터 양이 결정됨 IE 하위 버전도 지원. (세부 내용 및 스펙은 http://www.w3.org/TR/webstorage/#storage 참조.) Web Storage (Second Edition) This specification defines an API for persistent data storage of key-value pair data in Web clients. This section describes the status of this document at the time of its..