전체 글 (236) 썸네일형 리스트형 [Django] Django 배포 - wsgi vs asgi 장고 애플리케이션을 개발하고 나면 이를 배포해야 한다. 자바 스프링의 경우 Tomcat과 같은 WAS 환경으로 배포된다. 하지만 파이썬은 자바 애플리케이션과 달리 컴파일이 필요없고 인터프리터를 통해서 실행된다. 그렇다면 파이썬 애플리케이션이 어떤 웹서버 환경에서 동작하는지 장고 애플리케이션을 기준으로 정리한다.1. CGI vs WSGI vs ASGI파이썬 애플리케이션을 웹서버에서 실행하기 위해서는 웹서버와 애플리케이션이 통신할 수 있어야 한다. 웹서버로 전달된 요청을 애플리케이션으로 전달하고 애플리케이션에서 처리한 응답을 다시 외부로 반환할 수 있어야 한다. 이러한 동작을 위해서 파이썬 애플리케이션의 통신 방식을 인터페이스로 미리 정의해놓았고, 통신 방식에 따라서 CGI, WSGI, ASGI 등 다양하게.. [Kotlin] 영역 함수 (Scope functions) 코틀린은 특정 객체의 컨텍스트안에서 코드 블럭을 실행하도록 하는 함수들을 제공한다. 특정 객체에 대해서 영역 함수 (scope function) 들을 사용하면 임시적으로 영역 (scope) 가 형성되며, 영역안에서는 객체의 이름이 없이 컨텍스트 객체에 접근이 가능하다. scope function 에는 let, run, with, apply, also, 이렇게 5개 함수들이 포함되며 이러한 함수들을 사용하여 코드를 더욱 간결하고 가독성 좋게 작성할 수 있다.1. Scope functions 비교scope functions 는 기본적으로 코드 블럭을 실행한다는 점에서 동일하지만, 블럭안에서 컨텍스트 객체에 접근하는 방법과 표현식의 결과 등이 서로 다르다. - Context object: this or it.. [Kotlin] 튜토리얼 따라가기 (5) (Null safety) 프로그래밍을 하다보면 null 값을 만나는 경우가 있다. null 값으로 인해서 예외가 발생하는 경우가 많은데, 코틀린에서는 null 값을 방지하는 null safety 기능을 가지고 있다. 이를 통해서 코틀린은 런타임이 아닌 컴파일 타임에 null 값으로 인한 잠재적 위험을 탐지할 수 있다. null safety 기능을 통해서 null 값이 가능한 곳을 명시적으로 선언하거나, null 값을 확인하거나, null 값을 반환할 여부가 있는 프로퍼티나 함수를 안전하게 호출하기, null 값이 발견되었을 때 수행할 동작 설정 등을 할 수 있다.1. Nullable types코틀린에서는 기본적으로 null 을 허용하지 않는다. 하지만 명시적 타입 뒤에 '?' 기호를 붙여서 nullable type 으로 선언할 .. [Kotlin] 튜토리얼 따라가기 (4) (Classes) 1. Classes코틀린은 Class 와 Object 를 통해 객체지향을 제공한다. 클래스 선언에는 다음과 같이 Class 키워드를 사용하여 선언한다. class Customer2. Propertiesclass Contact(val id: Int, var email: String)class Contact(val id: Int, var email: String = "example@gmail.com") { val category: String = "work"} 클래스 객체는 프로퍼티를 가진다. 프로퍼티는 클래스 선언시 선언부의 () 괄호 또는 구현부의 {} 괄호에 선언할 수 있다. 선언부의 프로퍼티는 함수에서와 같이 기본값을 정의할 수 있다. 프로퍼티는 var 과 val 모두로 선언할 수 있는데, 런타.. [Kotlin] 튜토리얼 따라가기 (3) (Functions) 1. Functionsfun sum(x: Int, y: Int): Int { return x + y}fun main() { println(sum(1, 2)) // 3} 코틀린에서는 fun 키워드를 사용하여 함수를 선언한다. 매개변수는 타입과 함께 () 괄호 안에 선언되고, 함수 본문은 {} 안에 작성된다. 함수의 반환 타입은 함수 선언부의 매개변수 괄호 다음에 정의된다.2. Named arguments코틀린은 함수를 호출할 때 매개변수의 이름을 지정하여 인자를 입력할 수 있다. 이를 named argument 라고 하며, 이때는 매개변수의 순서와 상관없이 지정한 매개변수로 인자가 입력된다. fun printMessageWithPrefix(message: String, prefix: Str.. [Kotlin] 튜토리얼 따라가기 (2) (Control flow) 1. Control flow- Conditional expressions코틀린은 if 와 when 을 이용한 조건문 기능을 제공한다.1) ifval d: Intval check = trueif (check) { d = 1} else { d = 2}println(d)// 1 () 괄호 안의 조건과 그에 따른 행동을 {} 괄호 안에 작성한다. 조건문은 if - else 를 이용하여 구성한다. val a = 1val b = 2println(if (a > b) a else b) // Returns a value: 2 코틀린은 삼항 연산자 'condition ? then : else' 를 제공하지 않는다. 대신 위의 예제와 같이 {} 괄호를 생략하고 한 줄로 조건문을 작성할 수 있다.2) whenval.. [Kotlin] 튜토리얼 따라가기 (1) (Hello World, Variable, Collection) 코틀린 공식 문서에 있는 Kotlin Tour 를 읽어보고 기본 문법을 정리한다.1. Hello World- Hello Worldfun main() { println("Hello, world!") // Hello, world!} "Hello World!" 를 출력하는 간단한 예제이다. 코틀린에서는 함수를 선언할 때 fun 키워드를 사용한다. 자바와 동일하게 main() 함수가 프로그램의 시작점을 의미한다. 문자열 출력은 println() 또는 print() 함수를 통해 수행한다.- Variablesval popcorn = 5 // There are 5 boxes of popcornval hotdog = 7 // There are 7 hotdogsvar customers = 10 /.. [Java] Record 1. Record 란?Record 는 JDK 14 에서 preview feature 로 처음 추가된 기능으로 불변 데이터 전달을 위한 클래스 타입이다. Record 는 생성자와 getter, equals(), hashCode(), toString() 과 같이 일반적인 데이터 클래스가 가지게 되는 기능을 자동으로 가지게 되어 boilerplate 코드들을 제거해준다. Record 의 선언부의 헤더를 통해서 필드가 선언된다. 이때 Record 의 필드는 모두 불변이기 떄문에 내부적으로 final 로 선언된다. record Rectangle(double length, double width) { }public final class Rectangle { private final double length; .. 이전 1 2 3 4 ··· 30 다음