본문 바로가기

upcurve631

배열 - 정의, 추상 자료형, 연산, 희소 행렬 1. 배열의 정의 배열의 정의 배열은 여러 값을 연속적으로 저장하는 자료 구조로서, 프로그래밍에서 기본적인 역할을 한다. 배열은 특정한 순서로 정렬된 원소들의 집합이며, 이 원소들은 모두 같은 자료형을 가진다. 배열의 각 원소는 인덱스(index)라고 불리는 숫자로 식별된다. 이 인덱스는 배열의 시작점으로부터 특정 거리만큼 떨어진 위치에 있는 원소를 참조하는 데 사용된다. 배열의 의미 배열은 데이터를 메모리상에 효율적으로 저장하고 접근할 수 있는 방법을 제공한다. 각 원소들은 연속적인 메모리 공간에 저장되어 있으므로, 배열을 통해 데이터를 빠르고 쉽게 처리할 수 있다. 배열은 순서가 중요한 데이터를 다룰 때 특히 유용하며, 인덱스를 사용해 각 원소에 빠르게 접근할 수 있다는 점에서 큰 이점을 가진다. 배.. 2023. 11. 18.
자료구조, 추상화의 개념, 자료구조와 알고리즘, 알고리즘의 개념과 조건 및 성능 1. 자료와 정보 자료의 가공 우리가 일상적으로 접하는 데이터는 원시적인 형태로 존재한다. 이를 통해 유용한 정보를 얻기 위해서는 가공 과정이 필요하다. 데이터 생성 및 수집: 데이터는 센서, SNS, UCC 등을 통해 대량으로 생성됨. 예시: 센서가 0.1초마다 온도를 측정하여 방대한 양의 데이터를 생성. 전처리 과정: 노이즈 제거, 필요 없는 값 삭제, 필요 데이터 보완 등의 과정이 필요. 예시: 머신러닝이나 딥러닝을 위한 데이터 전처리 과정. 데이터의 상업적 가치: 데이터 처리와 분석을 통해 상업적 이득을 얻을 수 있음. 예시: 빅데이터 분석을 통해 맞춤형 광고나 제품 개발. 자료의 정의 자료(데이터): 현실 세계에서 관찰이나 측정을 통해 수집된 값이나 사실. 예시: 온도, 위치, 사용자 행동 데이.. 2023. 11. 18.
컴퓨터와 데이터: 데이터와 정보, 진법 표현 - 정수, 실수, 문자 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.