목록전체 글 (41)
디지안의 개발일지
FEP란FEP란 Front End Processor의 약자로 원래 메인프레임에서 통신 과부하를 경감시키기 위해 전처리 작업을 하는 과정을 말한다. 하지만 금융권에서는 의미가 조금 와전되어 B2B 연계(대외계)를 FEP라고 부른다.예를 들어, 금융 상품을 이용하는 사람들은 보통 하나의 금융 기관에서만 금융 상품을 이용하지 않는다. 은행은 국민은행, 증권은 신한투자증권, 보험은 카카오페이손해보험 거기서 더 나아가 은행도 하나의 은행만 사용하는 것이 아니라 토스뱅크, 카카오뱅크, 우리은행등 여러 은행을 사용할 수 있다. 각 금융기관들은 자기 은행에 대한 정보만 가지고 있는데 사용자는 한눈에 자기 자산에 대해서 알 수 있으면 더 편리할 것이다. 그래서 정부에서 모든 금융 자산에 대해서 한눈에 볼 수 있도록 하는..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/KTeRv/btsH5LeSDlz/dkkpDVkYYwa7fNvMHFzH10/img.png)
VectorDB백터데이터베이스란 무엇인가?우리가 사용하는 일반적인 데이터베이스는 찾고자하는 데이터를 정확하게 찾으려고 한다. 예를 들어, 사람이라는 집합 안에서 나이가 20살인 남성을 찾는다고 하면 정확하게 그 특징을 가지고 있는 사람 집합을 찾게 마련이다. 하지만 벡터데이터베이스는 정확하게 어떤 집합을 찾는 것이 아니라 유사한 집합을 찾는 것이 특징이다.그렇다면 왜 그런 것이 필요하고 어떻게 동작하는지 궁금할거다. 한번 알아보도록 하자.벡터데이터베이스는 너무나 잘 알고 있지만 벡터라는 단어는 이제는 익숙하지 않는 단어다. 벡터는 수학과 물리학에서 크기와 방향을 가진 것을 의미한다. 데이터를 단순하게 어떤 수(컴퓨터에서는 String, Number, Array로 생각하자)로 표현할 수 없는 경우 방향을 ..
Restdocs DSL 개요 평소에 회사에서 API 문서를 작성하기 위해서는 Swagger를 사용하여 작성하였다. 그런데 최근 시작한 프로젝트에 RestDocs를 사용해야되는 일이 생겼다. 오랜만에 작성하는 RestDocs를 작성하기 위한 테스트 코드는 너무 복잡하고 직관적이지 않다는 것을 느껴 더 좋은 방법이 없을까 고민을 하였고 우연히 toss에서 소개한 Kotlin으로 DSL 만들기라는 글을 보게 되었고 코드가 공개되어 있지 않아 직접 사용하기 위해 시간을 내어 만들어 보기로 했다. DSL이란? DSL은 Domain Specific Language의 약자로 특정한 도메인을 적용하는데 특화된 컴퓨터 언어를 의미한다. 굉장히 어려워 보이는 개념 같이 보이지만 사실 개발자라면 모두 DSL를 사용하고 있다..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/blXZrg/btsjmvAuyYY/e9nj0llOk9b2ph9oV7UOL1/img.png)
개요 AWS를 직접 사용해본 적이 없는데 AWS Lambda를 사용할 일이 생겨서 사용할 일에 대해서 정리하려고 한다. 내가 사용한 구조는 다음과 같다. Kotlin으로 AWS Lambda로 실행시킬 로직을 작성한다. 서버에서 HTTP 요청을 통해 AWS에 올린 Lambda를 실행하고 그 결과를 받는다. 간단한 구조지만 문서를 찾거나 Kotlin으로 된 예제들이 별로 없어서 다른 사람에게 도움이 될거 같아서 정리해본다. AWS Lambda 작성 AWS Lambda는 서버를 올리지 않고 짧은 시간 내에 실행되는 로직을 수행할 수 있다. 그래서 Lambda 함수라고도 불린다. AWS에서는 Lambda를 작성하기 위한 여러가지 방법을 제공해주는데 나는 그 중에서도 AWS에서 제공하는 SDK를 사용하여 Lamb..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/mE9Bh/btr6otvsh8j/rkHQt1ALrbaT2tqvQZXK91/img.png)
개요 회사에서 Spring Webflux에 대해 발표를 할 기회가 있었어서 그 내용에 대해 정리하려고 한다. 웹요청 처리의 처리 방식 웹요청을 처리하기 위해서는 다음과 같은 과정이 필요하다. 클라이언트에게 받은 웹요청(네트워크 패킷)은 이진 데이터로 요청이 들어온다. 이 이진 데이터를 웹서버에서 처리할 수 있는 데이터로 변환하는 작업이 필요하다. 이진 데이터 → 바이트 → HTTP 객체로 변환하는 과정이 필요하다. 이 과정에서 네트워크 패킷(이진 데이터)를 바이트로 변환하는 과정은 커널 스레드가 바이트 값을 HTTP 객체로 변환하는 과정은 유저 스레드가 진행하게 되는데 이 과정을 누가, 어떻게 처리하는가에 따라 웹 기술이 발전하였다. CGI(Common Gateway Interface) 1993년에 발표..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ccZGQb/btrVjSrRlaX/RKTLUpGnIWXCuz15Dyvtc1/img.png)
개요 카카오페이손해보험에 입사하게 되면서 손해보험이 무엇인가에 대해 공부하려고 한다. 손해보험 기초 일상에서의 위험 손해보험은 일상에서의 위험에 대해 금전적으로 대비하는 것을 의미한다. 그러면 일상에서의 위험의 범위는 무엇일까? 대표적인 예시로는 다음과 같다. 화재 위험 교통사고 위험 질병/상해 위험 이 위험들을 보면 언제 어디서 일어날지 모르고 얼마나 큰 재산 피해를 일으킬지 모른다. 사고 예방 자체를 모두 할 수 있으면 가장 좋지만 할 수 없기 때문에 이를 경제적으로나마 대비하는 것이 손해보험에 해당한다. 보험에서의 돈 관리 보험은 어떻게 보면 계모임과 비슷한 면이 있다. 여러 사람이 돈을 모아두고 자기 순번이 되면 돈을 받는 것처럼 여러 보험 가입자들이 보험회사에 보험료를 납부하여 돈을 모아두고 이..
[책] 도메인 주도 설계 철저 입문 이 글은 도메인 주도 설계 철저 입문을 소개한다. 특징 이 책을 읽으면서 느낀 것은 DDD에 사용되는 개념을 잘 정리해놔서 이해하기 쉽다는 것과 실제 코드로 어떻게 구현할 것인지를 예제로 잘 표현했다는 것이다. 그렇다보니 그 이전에는 약간 추상적으로 이해하고 있었던 개념들을 좀 더 명확하게 이해라 수 있었던 기회가 되었던 것 같다. 하지만 그에 비해서 현재 왜 DDD가 유행하게 되었는지, DDD의 역사등에 대한 설명은 설명을 해주지만 약간은 부족한 느낌이 들긴 하였다. 책 내용 1장 도메인 주도 설계란? DDD가 무엇인지에 대한 설명을 해준다. 책을 읽는 것에 대한 방향성을 제시해준다. 이 장에서 이런 이야기도 들어갔으면 좋겠다라는 생각이 들었다. DDD는 기존에는 소..
[MySQL] 인덱스를 활용한 쿼리 튜닝 개요 JPA를 사용하여 쿼리를 사용하다보면 의도하지 않은 인덱스를 사용하거나 못하는 경우가 있다. 회사에서 이런 경험을 하고 튜닝했던 과정을 소개하려고 한다. 배경 아래는 내가 겪었던 상황과 비슷한 느낌을 살려서 가정을 해보겠다. SELECT * FROM student s WHERE s.created_at BETWEEN '2022-06-03' AND '2022-09-03' AND s.grade = '1학년' AND s.status = '재학중' ORDER BY s.created_at DESC student : 학생 테이블 created_at : 학생 정보가 생성된 날짜 컬럼 grade : 학생의 학년 정보 컬럼 1학년 2학년 3학년 4학년 status : 학생의 ..