분류 전체보기
-
전문통신이란?CS 2024. 2. 18. 00:01
개요 전문통신이라는 용어를 알게 되었고 전문통신은 어떤 것인지 알아보고자 합니다. 전문통신 전문은 한자로 (온전할 전 + 글월 문)이며 전체 문자를 뜻합니다. 영어로는 full-text 라 불리고 고정길이로 전송합니다. 서로 주고받을 데이터 포맷을 약속(프로토콜) 한 후 약속된 데이터 패킷을 전송하고 수신하는 것을 말합니다. 언어는 달라도 바이트 배열을 다 사용이 가능하기 때문에 예전에 바이트배열 형태로 통신을 수행하였습니다. C언어와 Java와의 통신도 바이트배열은 가능합니다. 이런 바이트 배열을 소켓 통신을 통해 주고받습니다. 예를 들어 120바이트로 구성된 배열을 전문 통신을 사용한다고 가정하면, 헤더 용도로 30바이트를 사용하고, 본문으로는 70바이트, 나머지 20바이트는 범용적으로 사용하기 위한..
-
Charset이란?CS 2024. 2. 17. 00:01
개요 프로그래밍을 하다 보면 Encoding, Decoding의 개념등을 활용해보곤 했는데 거기서 사용되는 Charset이라는 개념을 확실하게 잡고 가고자 합니다. Charset이란? 컴퓨터는 0과1로 모든 것이 표현됩니다. 컴퓨터에서 사람이 이해할 수 있는 문자를 표현하기 위해서는 어떻게 해야 할까요? 사람이 이해할 수 있는 문자가 컴퓨터에 0과 1로 표현되려면 어떻게 해야 할까요? 컴퓨터와 언어가 변환될 수 있도록 각 문자를 정수값에 대응시켜놓은 표가 존재해야 합니다. 즉, Charset은 인코딩, 디코딩의 방식을 정해주는 것입니다. 컴퓨터는 정의된 Charset을 통하여 Encoding, decoding을 수행합니다. 해당 표는 ASCII라는 Charset이며 문자 A는 01000001로 인식되고 ..
-
SLASH23 - 새로운 은행을 위한 Modern 대외 연계 시스템 구축기세미나, 영상 요약정리 2024. 2. 16. 00:01
https://www.youtube.com/watch?v=eS9tukmYBLI&list=PL1DJtS1Hv1PiGXmgruP1_gM2TSvQiOsFL&index=24 토스뱅크의 Server Developer 이상민 님의 발표를 요약해 보겠습니다. 은행의 시스템 구조 채널계에서는 유저의 요청을 받습니다. 계정계에서는 은행에서 다른 은행으로 돈을 보내거나 대외기관을 통해 신용점수등을 조회합니다. FEP는 Feont End Processor의 약자로 대외기관과 계정계가 통신할 때 사용됩니다. FEP의 핵심 - 대외기관과 메시지 주고받기 FEP는 TCP로 세션 관리에 역할을 수행합니다. 대부분의 은행이 그래왔듯이 토스뱅크도 외부 업체가 만든 FEP 솔루션을 사용 중이었습니다. FEP 단점 1 - 생산성 감소 솔..
-
MongoDB 인덱스란?프로젝트/mongoDB 2024. 2. 15. 00:01
개요 공식문서를 기반으로 MongoDB의 인덱스를 알아보는 시간을 가져보려고 합니다. 인덱스 생성법, 인덱스의 타입, 인덱스의 속성에 대해 정리해보고자 합니다. 인덱스란? 인덱스는 쿼리의 효율적인 실행을 지원합니다. 인덱스가 없을 경우에 쿼리 결과를 반환하기 위해 컬렉션의 모든 문서를 스캔해야 합니다. 하지만 적합한 인덱스가 존재하면 스캔하는 문서의 수를 줄일 수 있습니다. 인덱스는 읽기 작업의 성능을 향상시키지만, 쓰기 작업에는 성능에 부정적인 영향을 미칩니다. 즉, 읽기와 쓰기의 비율을 잘 고려해서 적용해야 합니다. MongoDB의 인덱스는 내부적으로는 B-Tree 데이터 구조를 활용합니다. 기본적으로 지원하는 인덱스 _id 필드에 고유 인덱스를 생성하며 해당 인덱스는 삭제할 수 없습니다. 인덱스 만..
-
보증부대출은 무엇인가?금융지식쌓기 2024. 2. 14. 00:01
보증부대출 부동산 등의 물적 담보물 대신 신용, 공적기관의 보증을 담보로 돈을 빌려주는 대출입니다. 만약 돈을 빌린 사람이 갚지 못하면 보증기관이 대출금을 먼저 은행에 내주고 대출자에게 회수하는 방식으로 진행됩니다. 금융소비자는 신용기관의 심사만 통과하면 담보가 없어도 돈을 빌릴 수 있는 장점이 있습니다. 단점으로는 보증료를 연 1~2회 납부해야 합니다. 보증부대출 등장배경 물적 담보력은 미약하나 사업성, 성장잠재력, 신용상태가 양호한 지역 소기업 소상공인등의 채무를 보증해 줌으로써 금융기관으로부터 원활한 자금조달로 경영안정을 도모하고 지역경제 활성화에 기여합니다. 보증부대출과 BIS 비율 BIS 비율은 간단하게 은행의 자본 대비 위험가중자산의 비율을 나타냅니다. 대출을 확대하면 위험가중자산의 비율이 늘..
-
Spring 단일 Endpoint에 여러 요청 처리하기Spring Framework 2024. 2. 13. 00:04
문제 상황 /single-end-point라는 endpoint에 DtoA, DtoB 등의 서로 다른 request가 들어오는 상황에서는 어떻게 코드를 작성해야 할까요? 문제를 해결하기 위해 다양한 방법으로 접근을 시도해 보고 장, 단점을 비교해보고자 합니다. Input Request data class DtoA( val col1: String, val col2: String, val type: String, ) data class DtoB( val col3: String, val col4: String, val col5: String, val type: String, ) 정의되어 있는 Request는 DtoA, DtoB라고 가정하겠습니다. 해당 Request들은 type으로 어떤 reqeust인지 구분할..
-
Spring Boot + Kotlin + MongoDB로 CRUD 해보기프로젝트/mongoDB 2024. 2. 12. 00:01
개요 Spring Boot + Kotlin + MongoDB를 활용하여 CRUD를 수행해보고자 합니다. 만약 MongoDB에 대해 잘 모르겠다면 "MongoDB란?"이라는 글을 참고하시고 오셔도 좋을 것 같습니다. 실제 코드는 github을 참고해 주세요. 환경 Spring Boot 3.1 JDK 17 MongoDB with Docker Gradle 의존성 추가 implementation("org.springframework.boot:spring-boot-starter-web") implementation("org.springframework.boot:spring-boot-starter-data-mongodb") web와 mongodb에 대한 의존성을 추가해 줍니다. docker-compose.yml v..
-
MongoDB 동시성 제어프로젝트/mongoDB 2024. 2. 11. 00:01
개요 RDB에서는 트랜잭션의 격리 수준에 따라서 동시성 제어가 필요했습니다. Lock을 거는방식 혹은 Versoning을 통하여 동시성을 제어했습니다. MongoDB에서는 어떻게 동시성 제어가 일어날까요? Atomicity and Transactions mongoDB의 공식문서인 Atomicity and Transactions 파트를 읽어보았습니다. MongoDB에서는 단일 문서 내에 포함된 여러 문서를 수정하는 경우에도 원자적 연산이 지원된다고 합니다. 다만 updateMany처럼 여러 문서를 수정하는 경우에 각 문서의 수정은 원자적이지만 전체 작업은 원자적이지 않습니다. 여러 문서를 쓰기 작업을 할 때 다른 작업이 끼어들 수 있습니다. Concurrency Control 여러 애플리케이션에서 동시에 ..