본문 바로가기

전체 글669

컴퓨터와 데이터: 데이터와 정보, 진법 표현 - 정수, 실수, 문자 1. 데이터와 정보 1) 데이터와 정보의 관계 I = P(D) 데이터 D -> 처리기 P -> 정보 I 정보는 데이터를 처리하여 얻어지는 결과물 공식: I = P(D) 여기서 D는 데이터를, P는 처리 과정을, I는 정보를 의미. 데이터는 원재료 같은 것으로, 처리 과정을 거쳐 가공되고 변환되어 정보로 변화한다. 이렇게 생성된 정보는 특정 목적에 부합하는 결과를 제공하며, 이 과정을 우리는 '데이터 처리' 또는 '정보 처리'라고 한다. 2) 데이터의 표현 형태 데이터는 다양한 형태로 존재할 수 있다. 텍스트, 숫자, 이미지, 오디오, 비디오 등 다양한 유형이 있으며, 컴퓨터 내부에서는 이들을 모두 비트 패턴으로 표현한다. 메모리는 이러한 데이터를 저장하는 공간. 저장된 데이터의 유형을 구분하지 않고, 단.. 2023. 11. 18.
다수의 Validators 역할 위임 방식 회고 - Chain 패턴과 Optional을 이용한 우아한 플로우 탐색기 다수의 Validators 역할 위임 방식 회고 - Chain 패턴과 Optional을 이용한 우아한 플로우 탐색기 0. 목차 개요 직면한 문제 첫 번째 구현: Chain of Responsibility 패턴 적용 첫 번째 구현의 문제점 두 번째 구현: 서비스 레벨의 방어 로직 두 번째 구현의 문제점 세 번째 구현: recorder 초기화 로직의 이동 세 번째 구현의 문제점 네 번째 구현: 체인 형식의 support 검증 결론 1. 개요 사내 업무 효율성 증진을 위해 펌웨어 검증을 자동화하는 프로그램을 만들 기회가 있었습니다. 이 글은 검증 자동화 툴을 만드는 과정에서 고민했던 Validation 로직을 다룹니다. 여러가지 검증 시나리오를 각각의 책임에 따라 검증하는 다수의 Validators 구현체들의.. 2023. 11. 16.
java에는 없고 kotlin에만 있는 함수 : let, also, apply, run java에는 없고 kotlin에만 있는 함수로 let, also, apply, run 이 있다. 하나씩 살펴보자. let fun main() { // let val now : LocalDateTime?= null // 타입에 대한 제네릭을 받아서 리턴해줌 -> map이랑 비슷 /** * @kotlin.internal.InlineOnly * public inline fun T.let(block: (T) -> R): R { * contract { * callsInPlace(block, InvocationKind.EXACTLY_ONCE) * } * return block(this) * } */ val kst = now?.let{ // 엘비스 연산자를 통해 있을 때만 처리하도록 함 println(it) } //.. 2023. 10. 22.
Java와 Kotlin 비교: default value, when, 확장함수 Kotlin의 default value 사용하기 public class Exam08 { public static void main(String[] args) { var registerDto = new Store(); new Exam08(registerDto); } public Exam08(Store store){ // null point -> 터짐 var stringRegisteredAt = toLocalDateTimeString(store.getRegisteredAt()); } public String toLocalDateTimeString(LocalDateTime localDateTime){ // null을 방지하려고 이런식으로 방어 로직을 짬 LocalDateTime temp; if(localDat.. 2023. 10. 22.
Java와 Kotlin 비교 : map, 고차함수, 클래스 - 상속 인터페이스, 코틀린의 property 개념 map public class Exam04 { public Exam04(){ var hashMap = new HashMap(); hashMap.put("key", "value"); hashMap.put("key", 10); var map = Map.of( "key1","value1", "key2","value2", "key3","value3" ); hashMap.get("key"); } } fun Main() { // 코틀린에서도 마찬가지로 key value 형식으로 map을 만들 수 있다. -> 기본형태는 immutable // java의 Object -> 코틀린에서는 Any // pair라는 문법 val map = mapOf( Pair("", ""), "key" to "value" ) // 만약 mu.. 2023. 10. 22.