728x90

분류 전체보기 160

[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

운영체제 (Operating System) / 역할 / 구조 / 종류

이번 포스팅에서는 CS의 기초라 할 수 있는 운영체제에 대해 알아보겠다. 운영체제의 정의 운영체제의 명확한 정의는 전공 서적이나 위키별로 조금씩 다르다. ● 네이버 지식백과 : 모든 하드웨어 · 소프트웨어를 관리하는 실행 관리자 ● 나무위키 : 사용자가 컴퓨터를 쉽게 다룰 수 있게 해주는 인터페이스 ● 위키백과 : 하드웨어 · 시스템 자원을 제어하고 프로그램에 대한 서비스를 지원하는 소프트웨어 ● 경북대학교 : 응용 프로그램 또는 사용자가 하드웨어를 편리하고 효율적으로 사용하게 하기 위하여 시스템 자원을 관리하고, 여러가지 프로그램이 필요로 하는 공통적인 서비스를 제공하는 소프트웨어 대부분의 정의를 보면 느끼겠지만, 운영체제를 한 줄 정의하기엔 벅찬 느낌이다. 경북대 강의 개요에 기재된 정의처럼, 길게 ..

Computer Science 2024.04.10

[Java] 데이터 직렬화 / Serializable

이번 포스팅에서는 데이터 직렬화에 대해 알아보자. 직렬화란? 메모리에 있는 데이터를 네트워크 통신으로 전달하거나 디스크 등에 저장하기 위한 형식으로 변환하는 것을 말한다. 여기서 말하는 데이터 형식은 바이트 스트림이며, Java의 최소 단위인 Byte 형태의 연속적인 데이터로 변환한 것이다. 직렬화의 반대 경우를 역직렬화라고 하며 전달 받거나 저장된 바이트 스트림을 메모리에 적재할 수 있도록 다시 변환하는 것을 말한다. 직렬화가 필요한 이유 아무래도 메모리 내 데이터를 다루는 내용이기에, 메모리의 Stack · Heap 영역에 대한 기본적인 지식이 없다면 다음 포스팅을 참고하면 도움이 될 것이다. [Java] JVM 메모리 할당 방식 - Stack · Heap Memory 지난 포스팅에서 JDK · JR..

Java (자바) 2024.03.30

[Java] Set / 자료 구조 / 예제

이번 포스팅에서는 Set에 대해 알아보자. Set ? *Set : 세트, 집합 등 특정한 값을 저장하는 자료 구조 중 하나다. Set을 이야기할 때는 자연스레 List 자료 구조와 비교하게 된다. List : 데이터를 저장하는 순서가 정해져 있으며, 중복된 값을 저장할 수 있다. Set : 데이터를 저장하는 순서가 없으며, 중복된 값을 저장할 수 없다. 위 내용만 보아도, 확실히 두 자료 구조는 반대의 성격을 띄고 있다고 볼 수 있다. Set 자체는 인터페이스로 제공되며, 다음과 같은 종류의 클래스로 구현할 수 있다. ● HashSet Set의 대표 클래스라 할 수 있다. 위에서 설명한 대로, 데이터를 중복 저장할 수 없고 저장 순서도 없다. ● TreeSet 데이터가 오름 차순으로 정렬되어 저장된다. ..

Java (자바) 2024.03.26
728x90