본문 바로가기

반응형

전체 글

(249)
[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; ..
[Spring] Spring 과 Tomcat 스프링을 사용하다 보면 톰캣  (Tomcat) 이라는 이름을 듣게된다. 예전에 공부했었던 웹서버, WAS 등의 기억을 더듬어서 막연하게 스프링에 내장되어 있는 WAS 정도로 이해하고 넘어갔었다. 이번 글에서는 톰캣이 무엇인지, 스프링과 톰캣이 어떤 관계를 가지는지에 대해서 정리해보려 한다.1. Web Server 와 WAS (Web Application Server)톰캣에 대해서 본격적으로 알아보기 전에 Web Server 와 WAS 의 개념부터 정리해보자. 일반적인 웹 서비스에서 클라이언트는 서버의 규격에 맞는 HTTP 요청을 보내고 서버로부터 응답을 받는다. Web Server 와 WAS 는 둘다 클라이언트의 요청에 알맞은 응답을 보내는 역할을 하는데, 이때 어떤 요청에 대응하는지 목적과 기능에 따라..
[gRPC] gRPC - Java 이전의 글들에서는 gRPC 의 기본 개념과 gRPC 에서 사용하는 proto buffer 와 이를 정의하는 proto file 등에 대해서 정리했다. 이번에는 gRPC 를 실제 프로그래밍 언어에서 사용하는 방법을 정리해보려 한다.grpc 는 Java, Go, Kotlin, C++, Dart, Node, Python, Ruby 등등 다양한 언어를 지원한다. 그 중에서 Java 로 gRPC 를 사용하는 법, 그리고 Java 와 많이 사용되는 웹 프레임워크인 스프링에서 gRPC 서버를 같이 사용하는 법을 정리해본다.1. 자바 프로젝트 설정자바에서 gRPC 를 사용하기 위해서는 먼저 자바 프로젝트의 환경 설정부터 진행해줘야 한다. 자바 프로젝트는 gradle 기반으로 생성하였고 gRPC 를 사용하기 위해서 gr..
[gRPC] Proto file (.proto) - Message, Service 1. 프로토 파일 (Proto file)프로토콜 버퍼를 사용하기 위해서는 사용할 데이터와 서비스에 대해서 프로토 파일에 작성해야한다. 프로토 파일에 작성된 프로토콜 버퍼는 아래의 과정을 거쳐서 다른 프로그래밍 언어에서 사용할 수 있도록 변환된다.  우리가 사용할 데이터 구조를 .proto 파일에 작성하면 프로토콜 버퍼 컴파일러인 protoc 가 이를 컴파일하여 해당 프로그래밍 언어의 소스코드를 생성한다. 이렇게 생성된 소스코드를 사용자의 프로젝트 코드와 함께 컴파일하여 프로토콜 버퍼 클래스를 프로그램에서 호출하여 사용할 수 있도록 한다. 아래에는 프로토콜 버퍼 데이터를 정의하기 위해 프로토 파일 문법에 대해서 정리한다. 버전은 proto3 를 기준으로 정리하였다.2. Message Typesyntax =..

반응형