분류 전체보기
-
템플릿 메소드 패턴이란?디자인패턴 2024. 2. 10. 00:01
템플릿 메서드 패턴이란? 기능의 뼈대(템플릿)와 실제 구현을 분리하는 패턴입니다. 부모 클래스에서 알고리즘의 골격을 정의하지만 해당 알고리즘의 구조를 변경하지 않고 자식 클래스들이 알고리즘의 특정 단계들을 오버라이드(재정의)할 수 있도록 지원합니다. 언제 사용할 수 있을까? 예를 들어 사용자들이 다양한 형식(PDF, DOC, CSV)의 문서들을 등록하고 해당 문서에서 일관된 형식의 의미 있는 데이터를 추출하고자 합니다. DocDataMiner, CSVDataMiner, PDFDataMiner 클래스에는 유사한 코드들이 보입니다. 굵은 글씨의 다양한 데이터 형식들을 처리(exteract, parse)하는 코드는 클래스마다 다르지만 분석을 수행하고 리포트를 만들어내는 과정을 동일합니다. 템플릿 메서드 패턴으..
-
BIS 자기자본비율이란?금융지식쌓기 2024. 2. 9. 00:01
은행 건전성 지표 BIS에 알아보기 전에 은행의 건전성이 무엇을 뜻하는지 알아보겠습니다. 은행의 건전함 = 자금을 맡긴 고객을 보호하는 데 어려움이 없음 BIS 자기자본비율 Bank of International Settlement의 약어로 국제결제은행을 뜻합니다. BIS 자기자본비율은 국제결제은행이 국제적 기준으로 은행의 건전성을 확보하기 위해 설정한 지표입니다. 유사한 용어로 BIS 비율이라고도 부릅니다. 금융기관이 거래기업의 도산으로 부실채권이 늘어나 경영위험에 빠져들게 될 경우에 최소 8% 정도의 자기자본을 가지고 있어야 위기상황에 대처할 수 있다고 봅니다. 보통 BIS 비율이 10% 이상이면 우량 은행으로 평가됩니다. BIS 자기자본비율 계산 은행의 자기자본을 대출이나 지급보증과 같은 은행의 위..
-
스톡옵션이란?금융지식쌓기 2024. 2. 8. 00:01
스톡옵션이란? 스톡옵션의 정식 명칭은 '주식매수선택권'으로 주식을 매수할지 말지 선택할 수 있는 권리를 부여합니다. 즉, 매수할 수도 있고 안 할 수도 있습니다. 회사 입장에서는 당장 현금의 지출이 없고, 직원입장에서는 회사가 성장할수록 보상받을 수 있는 금액이 커지기 때문에 동기부여 차원에서 부여됩니다. 즉, 일정 기간이 지난 후, 회사의 주식을 미리 정해둔 가격으로 살 수 있는 권리입니다. 행사 스톡옵션을 행사함으로써 실제로 주식을 취득할 수 있습니다. 회사와 스톡옵션 계약서에 구체적으로 기재되어 있어야 합니다. 비상장회사인 경우에 주주총회 특별결의를 통하여 스톡옵션 부여에 대하여 결정합니다. 상법상 스톡옵션 행사에 관하여 [주주총회결의일부터 2년 이상 재임 또는 재직하여야 이를 행사할 수 있다]라고..
-
Spring Boot 2.x 프로젝트 만들기Spring Framework 2024. 2. 7. 00:01
개요 Spring 프로젝트를 만들 때는 항상 spring Initializr를 활용하곤 했습니다. 하지만 UI로는 2.x 버전의 프로젝트를 만들고 싶어도 만들 수 없습니다. 이번글에서는 2가지에 대한 주제를 다룹니다. Spring Boot 2.x 프로젝트 만들기 Spring Boot의 과거 버전 문서 보는 방법 Spring Boot 3.x 프로젝트 만들기 현재시점을 기준으로 Spring 2.x 프로젝트는 UI로 만들 수 없습니다. 우선 Spring Boot의 3.x.x 버전으로 생성한 후 버전을 2.x.x로 낮추는 다운그레이드를 수행하고자 합니다. Java 17 버전, Dependencies는 Spring Web를 선택하였고 Spring Boot의 버전은 3.1.8을 선택하여 프로젝트를 생성하였습니다. ..
-
MongoDB Data Modeling프로젝트/mongoDB 2024. 2. 6. 00:01
개요 SQL에서는 정규화라는 개념이 존재하여 Data Modeling을 수행합니다. Document Database인 MongoDB에서는 Data Modeling을 어떻게 수행할 수 있을까요? Data Modling 데이터 모델링은 업무 수행 시 비즈니스 요구사항 등으로 발생하는 데이터를 효율적으로 데이터베이스에 저장하기 위해 데이터 구조를 설계하는 과정입니다. MongoDB는 유연한 스키마 모델을 가질 수 있습니다. 컬렉션(테이블) 내에 문서가 동일한 필드 집합을 가질 필요가 없습니다. 필드의 데이터 유형은 문서마다 다를 수 있습니다. 어떻게 데이터 모델링을 수행하는가에 따라 데이터 정합성과 성능에 큰 영향을 주게 되므로 데이터 모델링에 대한 이해가 필요합니다. Schema 설계 물론 운영을 하면서 유..
-
MongoDB Aggregation Operations프로젝트/mongoDB 2024. 2. 5. 00:01
개요 "MongoDB 공식문서 Aggregation Operations"의 내용을 정리해보고자 합니다. Aggregation Operation 여러 문서의 값을 group으로 묶거나, group화 된 데이터에 연산을 수행하여 결과를 반환하거나, 데이터를 분석하기 위해 사용되는 연산을 의미합니다. SQL의 group by 등의 집계 함수와 유사한 개념입니다. Aggregation Operation이 등장하기 전에는 Map-Reduce라는 개념이 존재하였지만 MongoDB 5.0부터 deprecated 되었습니다. Aggregation Pipelines Aggregation Operation이 여러개가 파이프라인으로 실행되는 개념입니다. filter를 수행하거나 group으로 묶고 값을 계산하는 절차 등이 ..
-
MongoDB 쿼리로 CRUD 해보기프로젝트/mongoDB 2024. 2. 4. 00:01
개요 MongoDB CRUD Operations 공식문서를 기반으로 MongoDB CRUD를 수행해보고자 합니다. 특별한 설치 없이 수행할 수 있는 mongoplayground를 활용해보겠습니다. CRUD란? Create, Read, Update, Delete의 약어로 문서에 대한 생성, 읽기, 갱신, 삭제를 의미합니다. Create Operation collection에 새로운 document를 생성하거나 삽입할 수 있는 명령어입니다. 만약 collection이 존재하지 않는다면 collection이 생성됩니다. 아쉽게도 playgroud에서는 create operation은 지원하지 않습니다. insertOne 문법 db.collection.insertOne( , { writeConcern: } ) ..
-
Spring Cloud Config 오픈 소스 기여(컨트리뷰션)하기Spring Framework/Spring Cloud Config 2024. 2. 3. 00:01
개요 이전 글에서 "Spring Cloud Config Client override"라는 글을 작성하면서 Spring Cloud Config 문서를 읽어가면서 작업을 수행하고 있었습니다. 이때 문서의 내용에 다소 혼란스러운 부분이 있다고 생각하였고 이슈를 등록하였고 최종적으로 그 부분이 반영된 것에 대한 내용을 공유하고자 합니다. 이 글을 읽으면 얻을 수 있는 것 나도 오픈소스에 기여할 수 있다는 자신감(이 정도는 나도?) 오픈 소스 기여(컨트리뷰션)이란? '오픈소스에 기여한 경험이 있으면 우대'라는 문구를 채용 공고에서 종종 볼 수 있습니다. 오픈 소스는 무엇을 의미할까요? 오픈소스는 개발의 핵심 소스 코드를 공개함으로써 누구나 코드를 접근, 사용할 수 있도록 하는 소프트웨어입니다. Backend에서 ..