728x90

분류 전체보기 163

[Kotlin] 코틀린 늦은 초기화 기법 - lateinit / lazy

이번 포스팅에서는 늦은 초기화 기법에 대해 알아본다.    늦은 초기화 기법?  말 그대로 객체 초기화를 늦게 하는 방법이다. 가끔 객체의 선언과 초기화 시점이 달라야할 때가 있다.대부분 변수를 미리 선언해놓고, 초기화는 나중에(필요한 시점에) 하는 경우다.  그런 상황에서 단순히 다음과 같이 해결할 수 있다.var name = nullorvar name : String? = null// 초기화 시점name = "Oscar" 하지만, 위 방법은 사실 좋지 않은 방법이라고 볼 수 있다.  이전 코틀린 관련 포스팅 중, 코틀린 특징 파트에서 NPE에 대한 안정성을 언급했었다. [Kotlin] 코틀린 입문 / 코틀린이란? / 코틀린 특징OscarStory.. 코틀린으로 진화..!    사실 2~3년 전까지만 ..

Kotlin (코틀린) 2024.05.08

[Kotlin] 코틀린 래퍼 클래스 Wrapper Class

지난 포스팅에서 코틀린의 자료형에 대해 다루었고, 코틀린에서는 모든 자료형을 참조 타입으로 통일한다고 언급했었다.  이번 포스팅에서는 원시 타입과 참조 타입,코틀린에서의 래퍼 클래스에 대해 이야기해 볼까 한다.    먼저, 지난 포스팅에서 사용했던 예제를 간단히 보자. var age : Int = 29 int → Int ..! 원래 소문자를 사용하던 자료형을 대문자로 사용하고 있다. 별 것 아니라고 생각할 수도 있지만, 적어도 본인은 엄청난 일이라고 생각한다.애초에 자바에서 소문자와 대문자는 명확한 용도의 차이가 있었기 때문이다.  여러 용도 차이가 있지만 그 중에서도 가장 핵심은클래스와 클래스가 아닌 것으로 구분한다는 것이다. 모든 클래스의 이름은 대문자로 시작하게끔 네이밍하기에,변수나 메서드를 포함하..

Kotlin (코틀린) 2024.05.07

[Kotlin] 코틀린 자료형 / 타입 캐스팅 / 값 비교

이번 포스팅에서는 코틀린의 자료형에 대해 알아보자.   자료형  코틀린에서는 자료형을 원시 타입과 참조 타입으로 구분하지 않는다.모든 자료형은 참조 타입으로 통일되었다.  타입키워드정수형ByteShortIntLong실수형FloatDouble논리형Boolean문자형Char문자열String  원시 타입과 참조 타입에 대한 자세한 내용은 다음 포스팅에서 다뤄보겠다.지금은 단순히, 원시 타입이 아니기에 첫 글자를 대문자로 작성하는구나..! 정도만 알고 넘어가도 된다.     이 밖에도 Any 라는 자료형이 존재하는데,이는 코틀린 내 모든 자료형의 조상 격이라고 볼 수 있다. 따라서 모든 자료형을 대체할 수 있는데,간단한 예시와 함께 보자.   Int와 String을 사용한 간단한 출력문이다. val age: I..

Kotlin (코틀린) 2024.05.06

[Kotlin] 코틀린 변수 선언 var · val · const val / 변수와 상수

코틀린에서 변수를 선언할 때는 var, val을 사용한다.  ✅ var Variable의 약자이며 직역하면 '변수'다.가변(Mutable) 변수로 사용되기에 읽기와 쓰기 모두 가능한 변수다. var name = "Oscar"println("초기화 1 : $name")name = "Taron"println("초기화 2 : $name")코틀린에서는 세미콜론(;)을 사용하지 않아도 된다..!  결과)  여러번 초기화할 수 있는 흔한 변수라고 생각하면 된다.      ✅ val Value의 약자이며 직역하면 '값'이다.불변(Immutable) 변수로 사용되기에 읽기만 가능한 변수다. 즉, 한 번 초기화하면 그 이후로는 값을 변경할 수 없다. var에서 사용했던 예제를 그대로 입력해보자.val name = "Os..

Kotlin (코틀린) 2024.05.05

[Kotlin] 코틀린 입문 / 코틀린이란? / 코틀린 특징

OscarStory.. 코틀린으로 진화..!    사실 2~3년 전까지만 해도 검색 결과들이 자바를 사용한 레퍼런스가 대부분이었고,안드로이드 공식문서에서조차 자바로 짜여진 예제를 더 많이 찾아볼 수 있었다. 그 당시에도 많은 개발자들이 자바 → 코틀린으로 넘어가는 분위기를 느끼긴 했지만,그래도 필자는 근본에 충실해야 한다는 생각에 자바와 관련된 포스팅 위주로 업로드 해왔었다.   하지만, 이젠 확실히 달라졌다고 단언할 수 있다.공식문서에서도 코틀린을 Default 언어로 채택하여 예제 업데이트도 우선적으로 적용하며,대부분의 검색 결과도 코틀린 레퍼런스가 압도적으로 많아진 상황이다. 빠르게 변화하는 만큼 빠르게 적응해야 하고, 신기술에 민감해야 하는 개발자라는 사람이근본이라는 이유로 자바를 붙잡고 있을 이..

Kotlin (코틀린) 2024.05.04

CPU 스케줄링 - 프로세스 우선순위 / 스케줄링 큐 / 선점형 · 비선점형 스케줄링 / 스케줄링 알고리즘

운영체제의 역할 중 하나인 CPU 스케줄링에 대해 알아보자.   ✅ CPU 스케줄링이란? 모든 프로세스는 CPU를 필요로 한다.또한 모든 프로세스는 CPU를 먼저 사용하고 싶어 한다. 이러한 프로세스들에게 공정하게 CPU를 할당하도록CPU 자원을 배분하는 것을 CPU 스케줄링이라고 한다.  프로세스들에게 현명하게 CPU를 배분하지 못한다면프로세스들이 무질서한 상태가 되는 등의 결과를 초래할 수 있다. 그렇기에 CPU 스케줄링은 컴퓨터 성능과도 직결될 수 있는 중요한 문제로 다루어진다.    ✅ 프로세스 우선순위 단순하게 생각해본다면, CPU를 사용하고 싶어하는 프로세스들이차례대로 돌아가며 CPU를 사용하게 하는 방법이 있다. CPU를 사용하고 싶다고 먼저 어필한 프로세스부터순서대로 번갈아 CPU를 사용하..

Computer Science 2024.04.28

프로세스와 스레드

지난 포스팅에서 프로세스에 대해 알아보았다. 이번 포스팅에서는 프로세스와 스레드의 관계에 대해서 알아보자. 프로세스와 스레드에 관련해서는 개별 포스팅을 작성하였으니, 이번 포스팅에서는 간단히 정리만하고 넘어간다. 프로세스 프로세스는 컴퓨터에서 실행 중인 프로그램을 뜻한다. 또한 프로세스는 운영체제에 의해 관리되며 자원을 할당 받을 수 있는 단위이며, 하나의 프로세스는 최소 하나의 스레드를 가진다. 이외의 프로세스에 대한 자세한 내용은 이전 포스팅에서 참고 바란다. 프로세스 / 프로세스 실행 · 제어 · 상태 지난 포스팅에서 운영체제에 대해 정리해 보았다. 운영체제의 핵심 서비스 중 하나로 프로세스 관리를 꼽을 수 있는데, 이번 포스팅에서는 프로세스에 대해 알아보겠다. 프로세스란? 프로그램 oscarsto..

Computer Science 2024.04.21

프로세스 / 프로세스 실행 · 제어 · 상태

지난 포스팅에서 운영체제에 대해 정리해 보았다. 운영체제의 핵심 서비스 중 하나로 프로세스 관리를 꼽을 수 있는데, 이번 포스팅에서는 프로세스에 대해 알아보겠다. 프로세스란? 프로그램은 실행되기 전까지는 그저 데이터 덩어리다. 하지만 메모리에 적재되어 실행되는 순간, 그 프로그램은 프로세스가 되었다고 할 수 있다. 즉, 컴퓨터에서 실행 중인 프로그램을 프로세스라고 한다. 당장 작업 관리자를 열어보아도 쉽게 확인할 수 있다. 프로세스 실행 · 프로세스 제어 블록 일반적으로 하나의 CPU는 하나의 프로세스만을 실행할 수 있다. 하지만 사용자는 여러 프로세스가 동시에 실행될 수 있다고 느낀다. 이는 CPU가 여러 프로세스를 번갈아 가며 실행하는데, 그 속도가 워낙 빠를 뿐이다. 즉, CPU는 여러 프로세스를 ..

Computer Science 2024.04.14
728x90