본문 바로가기

프로그래밍 언어 기초

(32)
[Kotlin] 객체지향 프로그래밍 - 클래스, 생성자, init, 접근 제한자 개요 오늘은 코틀린의 클래스에 대해서 알아보도록 하겠습니다. 코틀린은 객체지향 프로그래밍 언어(Object-Oriented Programming Language)입니다. 오늘날 존재하는 모든 객체지향 프로그래밍 언어는 객체(Object)를 중심으로 프로그램이 설계됩니다. 프로그램을 실행하는 주체가 객체(Object)라는 개념은, 절차지향 프로그래밍 언어와 객체지향 프로그래밍 언어의 차이를 구분하는 중요한 기준점이 됩니다. 더 자세한 내용은 아래의 포스트를 참고하시면 좋을 것 같습니다. https://1-hee.tistory.com/94 [CS BASIC] 프로그램과 프로그래밍 그리고 프로그램 패러다임 오늘은 프로그램과 프로그래밍, 그리고 프로그래밍 패러다임에 대해서 다뤄보도록 하겠습니다. 요즈음에는 다양..
[Kotlin] Null-Safety와 형 변환(Type Cast), 타입 체크(Type Check), 예외(Exception) 처리 개요 오늘은 코틀린의 Null-Safety와 타입 체크(Type Check), 예외 처리(Exception)에 대해서 알아보도록 하겠습니다. null이란? 프로그래밍에서 "null"은 값이 존재하지 않음을 나타내는 특별한 상태를 가리키는 데 사용됩니다. 이는 일반적으로 변수나 참조가 아직 초기화되지 않았거나, 값이 할당되지 않았을 때 발생합니다. null 값은 다음과 같은 상황에서 사용될 수 있습니다. ① 초기화되지 않은 변수 변수가 선언되었지만, 아직 값을 가지고 있지 않을 때, 이 변수는 일반적으로 null로 설정됩니다. ② 객체의 빈 참조 객체를 가리키는 참조가 없을 때 해당 참조는 null로 설정됩니다. ③ 메모리 할당 실패 동적으로 메모리를 할당하려고 시도했지만 실패한 경우, 변수는 null을 ..
[Dart] Dart 기본 문법4 [비동기, async, await, Future, Stream] 개요 오늘은 프로그래밍에서 중요한 동기(synchronous), 비동기(asynchronous) 에 대해서 알아보도록 하겠습니다. 우선, 동기와 비동기가 무엇인지 알아보고 dart에서는 어떻게 비동기 프로그래밍을 할 수 있는지 살펴보겠습니다. 오늘의 포스팅에서 소개할 내용은 아래와 같습니다. 동기, 비동기 Future Async Await Stream BroadCastStream 비동기 함수의 Starem 변환 동기(synchronous) vs 비동기(asynchronous) 기본적으로 대부분의 프로그래밍 언어는 코드를 작성한 '순서'대로 작업을 수행합니다. 지난 포스팅에서 지금까지 dart를 통해 작성한 프로그램도 엄밀히 구분하자면 '동기'적으로 실행되었습니다. 동기, 비동기 프로그램의 동작 흐름을 그..
[Dart] Dart 기본 문법3 [클래스, 생성자, 오버라이딩, static, 추상, 제네릭] 개요 오늘도 이어서 Flutter의 프로그래밍 언어인 Dart의 문법에 대해서 알아보겠습니다. 오늘의 포스팅에서 소개할 문법은 아래와 같습니다. 클래스와 인스턴스 클래스의 생성, 프로퍼티와 메서드 생성자와 생성자, 그리고 오버로딩 상속과 오버라이딩 private와 getter setter 정적 변수 static 추상과 인터페이스 믹스인(Mixin) 제네릭(Generic) 케스케이드 연산자(Casecade Operator) 이중에서 특히 믹스인(Mixin)과 케스케이드 연산자는 dart 문법의 특징 중 하나이므로 잘 알아두시면 좋을 것 같습니다. 1. dart의 클래스와 인스턴스 객체지향 프로그래밍 언어에서 변수와 함수의 집합으로 구성된 데이터의 모음을 클래스 또는 객체 라고 부릅니다. 객체지향 프로그래밍..
[Dart] Dart 기본 문법2 [제어문, 반복문, 함수, 익명 함수, 람다 함수, 예외 처리(try-catch)] 개요 오늘도 이어서 Flutter의 프로그래밍 언어인 Dart의 문법에 대해서 알아보겠습니다. 오늘의 포스팅에서 소개할 문법은 아래와 같습니다. 연산자 제어문과 반복문 함수 익명 함수와 람다 함수 예외 처리(try-catch) 1. 연산자(Operator) 1.1 기본 연산자 dart에서 기본적인 사칙연산 및 나머지 연산은 아래와 같이 사용할 수 있습니다. void main(){ double number = 16; // dart의 사칙연산 + 모듈러 연산 print(number+2); // 18.0 print(number-5); // 11.0 print(number*1); // 16.0 print(number/4); // 4.0 print(number%3); // 1.0 // 단항 연산 number++;..
[Dart] Dart 기본 문법1 (기본 출력과 자료형) 개요 오늘은 Flutter의 프로그래밍 언어 Dart의 문법에 대해서 알아보겠습니다. 프로그래밍 언어의 문법은 경험상 부연 설명 보다는 샘플 코드를 살펴보는 것이 더 효율적으므로 몇 개의 챕터로 나누어 기본 문법에 소개하겠습니다. 오늘의 포스팅에서 소개할 문법은 아래와 같습니다. 출력문 변수의 선언 dynamic final과 const dart의 자료형 dart의 컬렉션(Collections) Enum 1. 출력문 DART의 출력문은 아래와 같습니다. void main(){ print('hello world!'); } 2. 변수의 선언 dart에서 변수의 선언은 var을 사용합니다. var는 타입 캐스팅을 지원하므로, 리터럴 값(1, false, "Hello World" 등)과 같은 실제 데이터가 입력되..
Chapter 14. 예외(Exception) 처리 14. 1. 예외(Exception)란? 프로그램이 어떤 원인에 의해 오동작하거나 비정상으로 종료되는 경우를 예외(Exception)라고 합니다. 예외(Exception)는 에러(Error)와 구분되는데, 에러(Error)란 메모리 부족, stack overflow와 같이 발생하면 복구할 수 없어서 디버깅이 필요한 상황을 일컫는 말이고, 예외(Exception)는 네트워크 끊김, 파일을 읽어오는 데 실패하는 경우 등 에러보다 비교적 가벼운 사안으로 프로그래밍 코드에 의해 수습될 수 있는 상황을 말합니다. 자바에서 예외는 Throwable 클래스를 상속받습니다. 형제 클래스로써 Error 클래스가 있으며 Error 클래스를 상속받는 클래스들을 Error 계열, Exception을 상속받는 클래스를 Exce..
Chapter 13. 다형성(Polymorphism) 13. 다형성이란(Polymorphism)? 자바에서 데이터는 자료형을 통해 객체로 생성될 수 있습니다. 이러한 객체는 기본적으로는 한가지 자료형에 종속되는데요. 하지만 객체지향 프로그래밍을 추구하는 자바에서는 부모 클래스를 상속하거나 인터페이스를 상속받으면 자기 자신만을 자료형으로 하는 게 아니라 부모 클래스나 인터페이스를 자료형으로 하여 객체를 상속할 수 있습니다. 이러한 원리로 인해 자바 내의 모든 reference type의 객체들은 최상위 클래스인 Object를 자료형으로 하여 선언할 수 있는 것입니다. 자바에선 이렇게 하나의 객체가 여러 자료형으로 참조하여 객체를 생성할 수 있는 것을 다형성(Polymorphism)이라고 합니다. 부모 클래스의 선언 public abstract class An..