분류 전체보기
-
Spring security 동작 방식 정리개발 2020. 5. 2. 19:37
작성중... 인증 과정과 에러 처리 과정 추가 예정 이번에 사내에서 인증 관련하여 담당하게되어 개발을 진행하면서 공부했던 내용들을 정리해보고자 한다. * 해당 포스트는 정보 공유가 목적이 아닌 학습 정리를 위한 포스트이므로 친절하게 각 내용을 설명하기 보다는 디버깅을 통해 동작 방식을 이해하기 위함이다. 궁금했던 내용들은 "Spring security의 필터는 어떤식으로 동작하나, Exception 처리는 어떤식으로 해야하고 왜 그렇게 동작하는가" 였다 먼저, 현재 프로젝트는 Session 기반이 아닌 Token 으로 개발을 진행중에 있고 그중 Token은 JWT 를 사용하고 있다. 아래 이미지는 Client로부터 Request가 들어왔을 때 동작하는 ApplicationFilterFactory.crea..
-
Clustering Index란?개발 2020. 4. 5. 20:41
클러스터란 여러 개를 하나로 묶는다는 의미로 주로 사용된다. MySQL에서 클러스터링 인덱스는 InnoDB와 TokuDB 스토리지 엔진에서만 지원하며, 나머지 스토리지 엔진에서는 지원되지 않는다. 클러스터링 인덱스는 PK(프라이머리 키)에 대해서만 적용되는 내용이다. 즉, 테이블당 1개만 생성 가능하다. 정리하면 테이블 당 1개만 생성 가능하고 프라이머리 키값이 비슷한 레코드끼리 묶어서 저장하는 것을 클러스터링 인덱스라 한다. 그럼 일반적인 인덱스와는 어떤 점이 다를까? 아래의 경우 일반적인 B-Tree 인덱스의 구조이다 . 위의 그림처럼 특정 값을 찾기위해 루트노드부터 리프노드까지 찾아 들어가고 리프노드에서 찾은 레코드 주소를 통해 실제 데이터가 존재하는 위치를 찾아 데이터를 가져오는 방식이다. 이 방..
-
AWS VPC란?개발 2020. 3. 24. 17:18
AWS 공식 사이트에서는 아래와 같이 VPC를 설명하고 있다. "Amazon Virtual Private Cloud(Amazon VPC)에서는 사용자가 정의한 가상 네트워크로 AWS 리소스를 시작할 수 있습니다. 이 가상 네트워크는 AWS의 확장 가능한 인프라를 사용한다는 이점과 함께 고객의 자체 데이터 센터에서 운영하는 기존 네트워크와 매우 유사합니다." VPC 출시 전 다른 사용자들과 함께 사용하는 "EC2-클래식 네트워크" 를 해야했고 VPC 출시 이후 사용자들에게 VPC는 강제적으로 적용되고 있다. 아래와 같이 VPC 이전 EC2-클래식 네트워크는 여러 사용자의 인스턴스들이 거미줄처럼 얽혀있어 복잡도가 높았다. Amazon VPC가 도입된 이후로 아래와 같이 VPC는 필수가 되었기에 사용자는 직접..
-
Java Garbage Collection (GC)개발 2020. 3. 21. 23:57
평소에 관심을 가졌지만 어설프게 알고 있던 내용인 JVM GC에 대해 정리하고자 한다. 이 글은 Hotspot JVM을 기반으로 작성하였다. Java8에 많은 부분이 바뀌었지만 이전 버전과 크게 다르지 않은 Heap 영역을 기준으로 설명할 것이다. 여러 자료에 많이 나오는 구조인데 Heap 영역은 아래와 같은 구조로 되어있다. Young 영역은 Edan 과 Survivor0 (From), Survivor1 (To) 총 3개로 구성되어지는데, Edan 영역은 객체가 생성 시 Heap에 최초로 생성되는 영역으로 각 영역이 가득 차면 객체의 참조 여부에 따라 Edan 영역의 객체가 Survivor0으로 이동되고 Survivor0 영역의 객체가 Survivor1로 이동된다. 이 과정에서 참조가 끊어진 객체를 제..
-
AWS IOT Rule Engine 을 통한 Elasticsearch 연동개발 2020. 3. 20. 02:00
AWS IOT 에서는 Rule Engine이라는걸 통해서 MQTT 토픽으로 들어오는 데이터를 Subscribe해서 특정 액션을 취할 수 있는데, 그 액션들 중 하나로 Elasricsearch와의 연동이 있다. 아래 내용은 어디까지나 AWS IOT에 대해서 조금의 이해가 있다는 가정하에 설명할 것이다. IOT 화면에 접속하면 이미지와 같이 왼쪽 매뉴에 "액트 - 규칙"이 있다, 이 규칙이란걸 통해서 위에서 설명한 MQTT 로 들어온 메시지에 대한 추가 처리를 한다. 새로 생성해보도록 하자. 먼저 규칙 쿼리를 작성하게 되어있는데 규칙 쿼리는 어떤 토픽으로 부터 어떤 데이터를 가져올 것인가를 지정한다. 아래와 같이 적었을 경우 ({토픽경로}는 실제 토픽 경로로 입력) {토픽경로}에 있는 모든 메시지를 가져오게..
-
AWS Elasticsearch개발 2020. 3. 20. 01:38
목차 1. AWS Elasticsearch 설치 2. cognito 인증 설정 3. EC2 nginx reverse proxy 인스턴스 셋팅 1. AWS Elasticsearch 설치 먼저 AWS Elasticsearch 란 무엇일까? AWS 공식사이트에서는 아래와 같이 설명하고 있다. "Amazon Elasticsearch Service(Amazon ES)는 AWS 클라우드에서 Elasticsearch 클러스터를 쉽게 배포, 운영 및 조정할 수 있는 관리형 서비스입니다" 간단하게 Elasticsearch를 AWS에서 사용하기 쉽게 제공해준다는거 같은데.. 설치를 진행하고 관련된 설정들을 하며 기능을 파악해보자 AWS Elasticsearch Service 대시보드를 시작으로 Elasticsearch S..
-
SSL이란?개발 2020. 3. 17. 15:45
SSL이란? 아래는 구글을 검색해서 나온 결과이다. "SSL(Secure Socket Layer) 프로토콜은 처음에 Netscape사에서 웹서버와 브라우저 사이의 보안을 위해 만들었다. SSL은 Certificate Authority(CA)라 불리는 서드 파티로부터 서버와 클라이언트의 인증을 하는데 사용된다." 그럼 이 SSL의 동작 원리를 이해하기 위해 알아야 하는 관련 개념 및 용어를 알아보자. * 대칭키 암호화 -> 암호화할 때 사용되는 Key값과 복호화 할 때 사용되는 Key값이 동일한 알고리즘 * 비대칭키 암호화 -> 암호화할 때 사용되는 Key값과 복호화 할 때 사용되는 Key값이 서로 다른 알고리즘 (공개키 알고리즘이라고도 불림) “public key, private key 를 생성하고 해당..
-
AWS IOT Solution개발 2020. 3. 17. 15:43
DEVICE SHADOW 언제든 디바이스 상태 확인 및 설정 AWS Iot 공식 사이트에서는 아래와 같이 설명하고 있다. “AWS Iot Core에서는 언제든 학인하거나 설정할 수 있도록 커넥티드 디바이스의 최신 상태를 저장하므로, 애플리케이션에는 디바이스가 언제나 온라인인 것처럼 표시됩니다. 즉, 디바이스가 연결되어 있지 않아도 애플리케이션에서 디바이스의 상태를 확인할 수 있고, 사용자가 상태를 설정하여 디바이스가다시 연결될때 설정한 상태가 구현되도록 할 수도 있습니다.” 이런 기능이 가능한건 디바이스 섀도라는 구성을 통해서인데 먼저 이 구성에 대해 알아보자. 대략적인 동작 방식은 위 이미지와 같다. MQTT Client인 각 장비들은 장비에 변화가 있을 시 (상태가 변경 시) MQTT message를..