분류 전체보기
-
MongoDB Replication이란?프로젝트/mongoDB 2024. 3. 2. 00:01
개요 공식문서를 기반으로 MongoDB Replication에 대해 알아보는 시간을 가져보고자 합니다. Replication이란? Replication은 복제라는 뜻을 가지며 컴퓨터 과학에서는 데이터 저장과 백업을 하는 방법과 관련이 있습니다. 기존 데이터를 중복으로 여러 개 복제해 둠으로써 단일 데이터베이스의 데이터에 문제가 생기는 상황에 장애 내결함성을 제공합니다. 또한 데이터가 여러군데 복제되어 있으므로 읽기 작업 또한 여러 군데 데이터베이스에서 수행할 수 있습니다. 즉, 읽기 성능이 증가할 수 있습니다. Primary와 Secondary Replication을 수행하면 데이터베이스가 N개가 되며 여기서 하나의 데이터베이스를 Primary 그 외의 것들은 Secondary라고 부릅니다. Primar..
-
kotlin delegated propertiesKotlin/Kotlin 2024. 3. 1. 00:01
개요 class Example { var p: String by Delegate() } kotlin을 활용하다 보면 by 키워드등이 활용되는 예시를 만난 적들이 있으며 해당 문법을 잘 모르는 상황에서 당황스러운 경험들이 있습니다. kotlin delegated property에 대해 이해하기 위해 글을 작성해보가 합니다. Delegated Properties란? delegated는 "위임된" 이라는 뜻을 가집니다. 즉 프로퍼티의 속성을 미리 정의된 다른 속성에게 위임한다는 의미를 가집니다. Kotlin에서는 by 키워드를 활용하여 프로퍼티의 위임을 수행할 수 있습니다. Interface의 구현체를 다른 객체에게 위임할 수 있고, Property의 Accessor 구현을 다른 객체의 위임할 수도 있습니다...
-
Kotlin 제네릭에 대해 알아보기Kotlin/Kotlin 2024. 2. 29. 00:01
개요 Java의 제네릭, Kotlin의 제네릭 등에 대해 학습하였고 포스팅도 여러 차례 썼지만 아직도 제네릭에 대한 이해도가 부족하다고 느낍니다. 이번기회에 확실하게 제네릭의 타입 변환에 대해 이해해보고자 합니다. 제네릭 사용하는 이유 예를들어 String을 담고 싶은 Box, Int를 담고 싶은 Box 클래스를 만들기 위해서는 어떻게 해야 할까요? @Test fun `다양한 타입을 구현하기 위한 방법-v1`(){ IntBox(3) StringBox("Hello Generic") } data class IntBox( val value: Int, ) data class StringBox( val value: String, ) IntBox, StirngBox 클래스를 만들면 됩니다! 이제 이외의 여러 가지 ..
-
구속성 예금이란금융지식쌓기 2024. 2. 28. 00:01
구속성예금이란? 일반적으로 우리가 아는 구속 (피의자를 자유를 제한하여 형사재판에 출석할 것은 보장하고..)와 동일한 한자입니다. 구속성예금은 은행이 대출을 수행할 때 일정한 금액을 강제로 예금하도록 하는 것을 말합니다. 즉, 대출이 절실한 수요자의 입장에서 선뜻 거절할 수 없게 금융상품을 같이 끼워파는 행위를 말합니다. 금융감독원은 이런 행위를 금융기관의 불공정 금융 관행으로 간주하여 이를 엄격하게 규제하고 있습니다. 전산상으로도 대출 실행일 전후로 1개월간 일반적인 예적금 상품등의 가입할 수 없게 막아두고 있습니다. 다른 말로는 "꺾기" 관행이라고도 불립니다. 사용자입장에서의 불편함 금융소비자보호법의 시행으로 은행에서 대출받은 자는 대출을 받은 날 전후로 1개월간은 같은 은행에서 펀드 예적금 등의 금..
-
JsonTypeInfo, JsonSubTypes 어노테이션Spring Framework 2024. 2. 27. 00:01
개요 이전 글에서 Spring에서 하나의 endpoint에 여러 개의 Request를 받기 위해 @JsonTypeInfo, @JsonSubTypes를 활용해 보았습니다. @JsonTypeInfo, @JsonSubTypes 어노테이션에 대해 조금 더 자세하게 알아보고자 합니다. @JsonTypeInfo, @JsonSubTypes 왜 사용해야 할까? interface SingleEndPointRequest { val type: String } data class DtoA( val col1: String, val col2: String, override val type: String = "DtoA", ): SingleEndPointRequest data class DtoB( val col3: String, v..
-
컴포지트 패턴이란?디자인패턴 2024. 2. 26. 00:01
개요 프로그래밍을 하면서 컴포지트 패턴을 종종 활용하곤 했습니다. 컴포지트 패턴에 대해 조금 더 자세하게 알아보고 이해해보고자 합니다. Composite 뜻 Composite는 복합, 합성이라는 의미를 가집니다. 복잡 재료라고 하면 한 가지 물질로 이루어지지 않고 단독 재료로는 얻을 수 없는 특성을 지니도록 합니다. 디자인패턴 관점에서 생각해 보면 여러 객체들을 복합적으로 구성한다고 생각할 수 있습니다. 해결하는 문제 상자에 여러가지 물체들이 있다고 생각해 보겠습니다. 이때 상자의 가격을 얻기 위해서는 각 물품들이 어떻게 가격이 구성되는지 계산하여 다 더해야 합니다. 현실에서는 모든 상자를 풀고 가격을 측정하면 되지만 프로그래밍적으로는 상자 안에 또 상자가 있을지 각 가격에 대해 계산이 필요하기 때문에 ..
-
전각문자와 반각문자CS 2024. 2. 25. 00:01
전각문자와 반각문자 전각문자와 반각문자는 주로 한국, 중국, 일본의 인쇄 문화에서 사용하는 용어입니다. 문자의 폭이 일반적인 영문자의 고정 폭의 두 배에 달하는 것을 전각문자라고 하며 전각문자의 절반을 폭으로 하는 문자를 반각문자라고 합니다. 위의 Halfull 프로그램에서 Fullwidth(전각문자) 부분을 보면 간격이 넓은 것을 확인할 수 있습니다. 그런데 Computer Science에서 인쇄 용어가 왜 등장하게 될까요? CS에서의 전각문자와 반각문자 표현 컴퓨터에서는 전통적으로 반각 문자를 1바이트로, 전각 문자를 2바이트로 인코딩하곤 했습니다. 숫자 "3"이나 영어 "a"를 표현할 때는 1바이트로 충분하지만 한글 "가"를 표현하기 위해서는 2바이트가 필요합니다. 알파벳과 한글이 같이 존재하게 되..
-
내 대출금리는 어떻게 결정될까?금융지식쌓기 2024. 2. 24. 00:01
개요 은행마다 내가 받을 수 있는 금리가 다른데 이 금리는 어떻게 정해지는 걸까요? 대출금리의 구성 기준금리는 한국은행이 일반은행과 돈을 거래할 때의 금리를 말합니다. 기준금리가 1%라면 한국은행에 가서 1%의 금리를 주고 돈을 빌릴 수 있습니다. 가산금리는 여러 가지 구성이 존재하는데 은행이 대출을 하면서 가시는 위험상과 업무원가 목표이익률을 반영하는 일종의 마진입니다. 가감조정금리는 대출자가 개인이 급여통장을 해당 은행으로 이용하는지 관련 금융기관에서 금융상품을 사용하고 있는지에 따라 낮춰 주거나 올려주는 금리입니다. 은행마다 다른 가산금리 금리가 은행마다 다른 이유는 은행마다 각각의 가산금리를 측정하는 정책이 다르기 때문입니다. 심지어 같은 은행이더라도 지점에 따라 금리가 달라질 수 있습니다. 해당..