나를 기록하다
article thumbnail
[쉽게 배우는 운영체제] 1. 운영체제의 개요

운영체제의 개요 운영체제의 정의 컴퓨터 자원을 효율적으로 관리하는 소프트웨어를 운영체제 혹은 OS라 부른다. 운영체제는 사용자에게 인터페이스를 제공하고 응용 프로그램에 컴퓨터 자원을 골고루 배분하여 작업 환경을 만들어 준다. 적당한 시점에 응용 프로그램으로부터 자원을 회수하고 악의적인 응용 프로그램으로부터 컴퓨터를 보호한다. 운영체제의 역할과 목표 컴퓨터 자원을 관리하는 운영체제의 역할은 자원 관리, 자원 보호, 하드웨어 인터페이스 제공, 사용자 인터페이스 제공이다. 운영체제는 이러한 역할을 제대로 수행하여 효율성, 안정성, 확장성, 편리성을 강화할 수 있는 형태로 발전해 왔다. 운영체제의 구성 운영체제의 핵심 기능을 모아놓은 것을 커널이라고 하며 커널에 명령을 내리고 그 결과를 알려주는 것을 사용자 인..

article thumbnail
[Algorithm] Binary Search
Algorithm 2024. 1. 30. 10:43

이진 탐색 - 자료구조와 알고리즘 탐색 알고리즘 중 하나인 이진 탐색(Binary Search)이란 '정렬된 배열'에서 '특정 값'을 찾는 알고리즘을 의미한다. 이진 검색은 정렬된 배열에서 검색 간격을 반으로 반복적으로 나누어 사용하는 검색 알고리즘으로 정의된다. 이진 검색의 아이디어는 배열이 정렬된 정보를 사용하여 시간 복잡도를 O(로그 N)으로 줄이는 것이다. 이진 탐색 알고리즘의 예시로 아래의 그림을 참고하자. 정렬된 배열에서 23을 찾는 과정이다. 배열의 중앙 인덱스를 찾는다. M = (0 + 9) / 2 = 4 인덱스 4에 위치한 16과 23을 비교한다. 16 < 23 23이 더 크므로 L(5) ~ H(9) 사이에서 다시 탐색을 실시한다. M = (5 + 9) / 2 = 7 인덱스 7에 위치한 ..

article thumbnail
고정 소수점(fixed point)과 부동 소수점(floating point)
CS 2024. 1. 25. 20:56

요즘 자바의 기초를 다시 공부하고 있다. 자바의 기초, 특히 변수에 대해서 공부하다보면 다양한 기본 자료형이 나오는데, 그 중에서 실수형을 다루는 float와 double에 나오는 개념인 고정 소수점과 부동 소수점에 대해 알아보고자 한다. 고정 소수점, 부동 소수점은 어떤 개념일까? 그에 앞서 실수형 자료형인 float와 double에 대해서 알아보자. 실수형 - float, double 실수형의 범위와 정밀도 실수형에는 대표적으로 4byte의 자료형 float와 8byte의 자료형 double이 존재한다. 이 둘의 범위와 정밀도를 비교하면 아래와 같다. 타입 저장 가능한 값의 범위 정밀도 크기 - byte(bit) float -3.4 x 10³⁸ ~ -1.4 x 10⁻⁴⁵, 1.4 x 10⁻⁴⁵ ~ 3..

article thumbnail
[Java] List<? extends Parent> list에 add가 불가능한 이유
Java 2024. 1. 25. 00:20

Generics() & WildCard(?) 자바의 제네릭과 와일드 카드를 공부하다가 다음과 같은 내용을 발견했다. import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) { List과 같이 작성된다. 이는 어떤 요소 타입이든 일치하는 컬렉션으로 와일드카드 타입이라고 불린다. 와일드카드 타입은 아래 코드처럼 작성할 수 있다. void printCollection(Collection c) { for (Object e : c) { System.out.println(e); } } 이제 우리는 이 메소드를 어떤 종류의 컬렉션이든 상관없이 호출할 수 있다. 그리고 print..

article thumbnail
[모던 자바 인 액션] 람다 표현식
Java/모던 자바 인 액션 2023. 12. 15. 12:48

익명 클래스로 다양한 동작을 구현할 수 있지만 코드가 깔끔하지 않다. 깔끔하지 않은 코드는 이전 내용에서 배운 동적 파라미터를 실전에 적용하는 것을 막는 요소다. 이때 더 깔끔한 코드로 동작을 구현하고 전달하는 람다 표현식을 사용해보자. 람다란 무엇인가? 람다 표현식은 메서드로 전달할 수 있는 익명 함수를 단순화한 것이라고 할 수 있다. 람다 표현식에는 이름은 없지만, 파라미터 리스트, 바디, 반환 형식, 발생할 수 있는 예외 리스트는 가질 수 있다. 람다의 특징 익명 • 보통의 메서드와 달리 이름이 없으므로 익명이라 표현한다. • 구현해야 할 코드에 대한 걱정거리가 줄어든다. 함수 • 람다는 메서드처럼 특정 클래스에 종속되지 않으므로 함수라고 부른다. • 하지만 메서드처럼 파라미터 리스트. 바디, 반환..

article thumbnail
[디자인 패턴] Builder 패턴
Java/디자인 패턴 2023. 12. 13. 14:24

Builder 패턴 일반적으로 구조를 갖춘 큰 구조물을 건축하거나 구축하는 것을 build라고 하고, 구조를 갖춘 커다란 건축물을 빌딩(building)이라고 한다. 빌딩을 지을 때는 먼저 지반을 다진 후, 뼈대를 만들고 아래에서 위로 조금씩 만들어 간다. 대체로 복잡한 구조를 가진 구조물을 만들 경우, 단숨에 완성하기는 어렵다. 우선 전체를 구성하는 각 부분을 만들고 단계를 밟아가며 만들게 된다. 이러한 구조를 가진 인스턴스를 만들어 가는 Builder 패턴에 대해 알아보자. 예제 프로그램 Builder 패턴을 사용해 '문서'를 작성하는 프로그램 문서는 다음과 같은 구조로 되어 있다. 타이틀을 한 개 포함한다 문자열을 몇 개 포함한다 항목을 몇 개 포함한다 Builder 클래스에서는 문서를 구성하는 메..

profile on loading

Loading...