[ETC] 가비아 도메인 + AWS Route53 + let's encrypt + 커스텀 프록시 (1)
·
공통
이번 포스팅에서는 가비아에서 도메인을 발급받아 인스턴스에 적용하는 과정들을 기록해보려고 합니다.그리고 (요금을 줄이기 위해) 로드밸런서를 사용하지 않고 프록시 서버를 직접 만들어서 적용하는 과정도 함께 기록하려고 합니다. 0️⃣ 내가 뭐하려는지 알기 ☘️ 가비아 도메인: 나의 도메인 주소를 소유하는 곳- ip 주소가 아닌 ssddoStory.com 처럼 도메인 주소를 구매할 수 있는 사이트입니다.- 도메인을 소유하게 되면 해당 도메인의 DNS 설정을 할 수 있습니다. ☘️ AWS Route53: DNS 서버 (도메인 이름을 ip 로 변환)- 가비아에서 산 도메인을 Route53에 위임해서 DNS 관리를 합니다. ☘️ let's encrypt: 무료 SSL 인증서 발급- HTTP가 아닌 H..
[webFlux] Future, CompletableFuture (1)
·
webFlux
java가 버전 8이 되었을 때, 많은 변화가 있었습니다.그 중에 하나는 바로 Lamda, Method reference 등 새로운 기능을 지원했다는 것입니다 이와 관련하여 이번 포스팅에서는 Future, CompletableFuture 에 대해서 다뤄보도록 하겠습니다. 1️⃣ CompletableFuture CompletableFuture 은 CompletionStage 인터페이스와 Future 인터페이스 모두 구현할 수 있습니다. Future 인터페이스는 비동기 결과 조회를 할 때, CompletionStage 인터페이스는 비동기 체이닝 작업을 할 때 주로 사용합니다. FutureJava5 추가된 인터페이스 (비동기 결과 조회용)CompletionStageJava8 추가된 인터페이스 (비동..
[SpringBoot] Scheduler + AOP + 분산락
·
SpringBoot
여러 대의 서버에 애플리케이션을 분산 배포할 때 스케줄러(Scheduler)에 대해 추가적인 고려가 필요합니다.예를 들어, 특정 시간에 이메일을 전송하는 스케줄러가 있을 경우두 서버에서 각각 동일한 작업이 실행되어 이메일이 중복 전송될 수 있습니다.  이러한 문제를 방지하기 위해 스케줄러에 분산락 AOP 를 적용하는 과정을 포스팅하려고 합니다.  1️⃣  왜 분산락을 사용하나요?   위의 이메일 중복전송 예시같은 문제들을 방지하기 위해 사용하려는 것이 분산락(Distributed Lock)입니다.분산락은 여러 서버 또는 인스턴스에서 동시에 같은 작업이 실행되지 않도록 동시성 제어를 위해 사용됩니다.여기서 말하는 동시성(Concurrency)이란, 여러 작업이 동시에 실행되는 것처럼 보이도록 처리하는 방식..
[WebFlux] 동기와 비동기, Blocking과 Non-blocking
·
webFlux
웹플럭스를 공부하면서 [WebFlux] 카테고리에 학습내용을 정리 할 예정입니다.그 중에 첫 번째로 동기와 비동기, 그리고 blocking 과 non-blocking 에 대해서 정리해보고자 합니다.  🪴   동기와 비동기 먼저, 동기와 비동기에 대해서 정리해보겠습니다.호출하는 함수와 호출 당하는 함수에 대해서 많이 언급을 할 예정입니다. 이것을 각각 Caller(호출하는 함수) 와 Callee(호출 당하는 함수) 로 부르겠습니다.  아래 두 모델을 확인해보겠습니다. A 모델 >@Slf4jpublic class A { public static void main(String[] args) { log.info("Start main"); var result = getResult(..
[JOOQ] 프로젝트에 jooq 설정하기
·
ORM & DSL/JOOQ
nosql 에 절여졌던 제가 postgre 를 사용하면서 Jooq 를 만나게 되었습니다.이번 포스팅에서는 Jooq 설정 방법에 대해 이야기를 하고,다음 포스팅부터는 Jooq 를 이용하여 간단한 쿼리를 작성하는 방법 등을 다루며 jooq 와 친해져보도록 하겠습니다. 1️⃣  jooq 랑 살짝 친해지기 🪴 jooq 가 뭔가요이번 포스팅에서는 jooq 설정을 주로 다룰 예정입니다.따라서 jooq 에 대해서는 아주 간단하게만 언급하려고 합니다. jooq 는 Java Object Oriented Querying 의 약자로,Java에서 SQL을 객체 지향적으로 다룰 수 있도록 도와주는 라이브러리라는 뜻입니다. JPA나 Mybatis와 같은 ORM들과는 다르게 SQL을 직접 사용하지만,자바 코드로 안전하게 다룰 수..
[ CS ] 암복호화랑 친해지기
·
CS
개발을 하다보면 암복호화는 쉽게 만날 수 있는 개념입니다.이번 포스팅에서는 단순히 암복호화의 정의 뿐만 아니라 양방향 암호화의 블록개념까지 다뤄보고자 합니다.  1️⃣  양방향 암호화 vs 단방향 암호화암호화는 크게 양방향과 단방향으로 나눌 수 있습니다.복호화를 할 수 없는 것이 단방향 암호화이고, 복호화가 가능한 것은 양방향 암호화입니다. 암호화를 할 때 AES와 SHA를 많이 접하게 되는데AES 암호화는 양방향 암호화의 구현방법 중 하나이고, SHA는 단방향 암호화의 구현방법 중 하나입니다. 단방향 암호화는 복호화를 할 수 없기 때문에 주로 유저의 비밀번호를 암호화할 때 많이 사용되고,데이터를 외부서버로 전송하여 정보 보호가 필요할 때는 양방향 암호화를 사용합니다. 아래는 양방향 암호화와 단방향 암호..
[프로젝트] 블로그 포스팅 확인해주는 서버
·
프로젝트
블로그 모임을 만들다...  블로그를 주기적으로 작성하고 싶었지만 이직 이후에 여러가지 핑계(?)를 대며 자주 작성하지 못하고 있었습니다.그러다가 저와 비슷한 상황이던 대학교 동기랑 카톡하게 되었습니다.  이게 시작이었습니다.정말정말 다행스럽게도 참여를 희망하는 분들이 꽤 모이게 되었고, (저 친구가 매우 인싸이기에 가능한 일이었던..)저는 그렇게 '블로그 적금' 이라는 블로그 모임을 만들게 되었습니다.    모임 홍보 차 잠시 소개를.... ^^  사실 이 글은 블로그 적금 2기를 홍보하기 위해 작성한 글이기도 합니다...!그래서 아주 잠시 모임 소개를 하자면,,,^^요런 모임입니다.'블로그 적금' 1기는 10회차까지 진행하기로 하였습니다. (블로그 포스팅 주기가 한 회차) 2주에 하나의 글을 포스팅하..
[Mongo] 몽고에서 Criteria 빼고 Qclass 사용하기
·
DB/Mongo
🪴 0. 들어가기 전 MongoDB는 스키마가 없는 비관계형 데이터베이스로, ORM처럼 관계를 매핑하는 방식이 아닙니다.따라서 SQL이 아닌 JSON 기반 쿼리를 사용하며, 이를 객체로 다루기 위해 Criteria를 사용합니다. 그러나 Criteria를 사용했을 때, 필드명을 실수로 잘못 작성하더라도 컴파일 시 에러를 확인할 수 없다는 단점이 있습니다. 이번 포스팅에서는 MongoDB에서 Criteria를 사용하지 않고, Qclass 와 QueryDSL을 적용한 방법에 대해 다뤄보겠습니다.🪴 1. 기존의 Criteria 코드 Criteria 는 JSON 기반의 쿼리를 객체로 작성하기 위해 사용하는 방식입니다. 비교를 위해 먼저 Criteria로 작성된 예제 코드를 보여드리도록 하겠습니다.@Slf4j@..