프로그래밍 언어 209

java spring vs python fast api 비교

이번 포스팅에서는 python fast api를 개발하기 전 python fast api와 java spring의 차이점에 대해 비교하며 공부한 것을 정리하려고 합니다. 1. 파이썬과 자바의 차이 자바는 컴파일 언어인 한편, 파이썬은 인터프리터 언어입니다. 컴파일 언어: 코드가 실행되기 전 컴파일러를 거쳣서 기계어로 모두 변환되어 실행되는 프로그래밍 언어 인터프리터 언어: 개발자가 작성한 코드를 기계어로 변환하는 과정없이 한줄씩 해석하여 명령을 바로 처리하는 프로그래밍 언어 2. java spring vs python fast API Fast API 1. 비동시성을 지원합니다. - 하나의 단계가 시작하면, 그 것이 끝날 때까지 기다리지 않고 다른 단계를 시작합니다. 2. type annotation을 지..

[Kotlin] 객체

객체는 오직 하나의 인스턴스만 존재하는 클래스는 object 키워드로 정의하며 객체라고 부릅니다. 객체에는 여러 종류가 있습니다. 이는 기존의 java와 큰 차이가 있는 부분이므로 이번 포스팅에서 정리해보려고 합니다. 객체 오직 하나의 인스턴스만 존재하는 클래스로 object라는 키워드로 정의하며 객체라고 부릅니다. 이러한 객체는 선언과 동시에 인스턴스가 생성됩니다. object Application { val name = "My Application" override fun toString() = name } 내포 객체 특정 클래스의 모든 인스턴스가 공유하는 객체를 의미합니다. 팩토리 디자인 패턴이 그 예라고 할 수 있습니다. class Application private constructor(val ..

[Kotlin] 프로퍼티

description 코틀린 프로퍼티 1. 최상위 프로퍼티 클래스에 포함되지 않은 프로퍼티로 전역 변수/ 상수의 역할을 하는 프로퍼티입니다. public/internal/private 등의 가시성 지정이 가능합니다. private val prefix = "Hello World" fun main () { fun readInt() = readLine()!!.toInt() } 2. 늦은 초기화 생성자에서 초기화 되지는 않지만, 프로그램 흐름 상 실 사용 시에는 초기화 되는 것이 명백할 경우가 있씁니다. 이런 경우 lateinit이라는 예약어를 사용합니다. 하지만 이 경우 프로그래머가 반드시 초기화하는 코드를 작성해주어야합니다. 만약 실수로 초기화를 하지 않는 경우 UninitializedPropertyAcce..

[Kotlin] null 정리

코틀린에서는 자바와 달리 null을 컴파일 시점에 관리할 수 있습니다. 또한 최상위 프로퍼티, get(), set() 등 자바에서 지원하지 않는 다양항 기능들을 제공합니다. 이번 포스팅에서는 null 관리와, 프로퍼티에 대해 상세히 알아보겠습니다. 코틀린 null null: 아무 것도 참조하지 않는 참조 값의 특별한 상태입니다. null에 대해 멤버 접근을 시도하면 NullPointerException이 발생하는데 이는 최악의 에러 중 하나입니다. 그런데 코틀린에서는 일반 참조형에서는 null을 담을 수 없게 하여 NPE를 예방합니다. 예제 코드 fun isLetterString(s: String) : Boolean { if(s.isEmpty()) return false for(ch in s) { if ..

[Kotlin] 코틀린 클래스, 생성자

description 코틀린 클래스 1. 코틀린의 클래스는 자바와 마찬가지로 기본 public입니다. 2. 코틀린의 클래스 프로퍼티는 초기화해주어야 합니다. 그렇지 않은 경우 컴파일 에러가 발생합니다. 3. 멤버 가시성 클래스 내부의 멤버(프로퍼티, 메서드)마다 가시성이 설정 가능합니다. public: 멤버를 어디서나 볼 수 있습니다. internal: 컴파일 모듈 내부에서만 멤버를 볼 수 있습니다. protected: 멤버가 속한 클래스와 그 하위 클래스에서만 볼 수 있습니다. (패키지 수준에서 protected X) private: 멤버가 속한 클래스에서만 볼 수 있습니다. 4. 내포된 클래스 클래스 안에 클래스를 선언할 수 있습니다. class Person2(val id: Id, val age: I..

[Kotlin] 코틀린 함수

이번 포스팅에서는 코틀린 함수의 특징에 대해 알아보겠습니다. 코틀린 함수 특징 1. 파라미터의 타입은 항상 지정해야 합니다. fun circle(radius: Double): Double // (O) fun circle(radius): Double // (X) 2. 반환값이 없는 경우에만 반환값의 타입을 생략할 수 있습니다. 이는 자바의 void와 같습니다. 참고로 Kotlin에서는 Unit이라는 예약어를 사용합니다.(그 Unit이라는 타입을 생략가능) 3. 함수 파라미터의 값은 val 타입이라 값이 바뀌는 것이 허용되지 않습니다. 4. 코드를 = 로 수정할 수 있습니다. 참고로 반환값 타입 유추가 가능한 경우 반환 타입을 생략해줄 수 있습니다. fun circle(radius: Double): Doub..

[Kotlin] 코틀린 문자열과 배열

코틀린에도 문자열과 배열이 있습니다. 언어마다 각각의 특성이 다르기 때문에 아는 것이라 할지라도 한번은 특징을 확인해볼 필요가 있습니다. 이번 포스팅에서는 간략하게 코틀린에서 문자열과 배열의 특징을 알아보겠습니다. 코틀린 문자열 1. kotlin에서 문자열은 String 객체이고 문자 배열이 아닙니다. 따라서 문자열 리터럴 그 자체는 바뀌지 않습니다. 2. C와 마찬가지로 \(이스케이프 시퀀스)를 이용해 특수 문자를 표현합니다. ex) val text = "Hello World!\n" 3. 문자열 템플릿 기능이 있습니다. 문자열 내부 ${}의 중괄호 사이에 표현식을 넣는 것입니다. val name = "Charlie" println("Hello $name Today is ${Date()}") 4. 로우 ..

[Kotlin] 코틀린 기본 타입

코틀린의 기본 타입은 다른 언어와 마찬가지로 정수 타입, 소수 타입, 문자 타입 등이 있습니다. 이번 포스팅에서는 각각을 좀 더구체적으로 정리해보겠습니다. 기본타입 - 정수 타입 이름 크기 범위 대응 자바 타입 Byte 1 -128 .. 127 byte Short 2 -32768 .. 32767 short Int 4 -2^31 .. 2^31-1 int Long 8 -2^63 .. 2^63-1 long 코틀린에서는 정수를 객체처럼 바라봅니다. 기본타입 - 정수 리터럴 1. 10진수 val n = 12345 val m = 34_721_189 // ,대신 2. Long 리터럴 val hundred1 = 100 // int val hundred2 = 100L // long 3. 2진수(앞에 0b) val bin..

[Kotlin] 코틀린 언어 특징

코틀린은 왜 배울까요? 최근들어 안드로이드도 java가 아닌 kotlin으로 코딩하고 있습니다. java를 대체할 수 있는 언어라고하는데요 최근에는 자바로 개발하던 백엔드 진영에서도 코틀린을 쓰는 경우가 있습니다. 이러한 코틀린 언어의 특징에 대해 알아보고자 합니다. 코틀린 언어 특징 - 객체지향 1. 프로그램을 수많은 객체라는 기본 단위로 나누고 이들의 상호작용을 서술하는 방식입니다. 데이터와 함수를 병합해 프로그램의 단위인 '객체' 및 '클래스'를 정의합니다. 2. 자료추상화 불필요한 정보는 숨기고 중요한 정보만 노출합니다. 3. 상속 연관된 클래스 간 상하위 관계를 두어 클래스를 선언합니다. ex) 동물 - 원숭이 4. 다형성 한 요소에 여러 개념을 넣어 놓는 것(개념에는 일관성이 있어야함). 오버..

[C언어] 문자열 포인터와 문자열 배열 차이 정리

C언어에는 문자열을 다루기 위해 문자열 포인터를 사용하거나 문자열 배열을 사용합니다. 이 둘은 비슷한 것같지만 다르므로 명확히 구분해 이해해야합니다. 문자열 포인터은 특정 포인터에 문자열의 주소를 저장한 것이고, 문자열 배열은 문자를 배열의 형식으로 저장한 것입니다. 문자열 포인터와 문자열 배열의 개념 char name[5] = "1234"; // 문자열 배열 const char* str = "yahoo"; // 배열 포인터 문자열 배열은 말그대로 문자를 배열의 형식으로 저장한 것을 말한다. 특히 문자열 배열은 포인터 상수와 동일하다. 포인터 상수이기 때문에 메모리의 위치를 바꿀 수 없는데 이는 특징에서 자세히 설명한다. 문자열 포인터는 특정 포인터에 문자열의 주소를 저장한 것이다. 문자열 포인터와 문자..

728x90