본문 바로가기

Programming Language

Kotlin in Action - 2 코틀린 기초 코틀린은 타입 선언 생략이 가능하다. 코틀린은 변경 가능한 데이터 보다 불변 데이터 사용을 권장한다. 함수와 변수 Hello, world fun main (args: Array) { println("Hello, world!") } fun 키워드로 함수 선언 파라미터 이름 뒤에 타입 선언 함수를 최상위수준에 정의 가능. 클래스 불필요 System.out.println 대신에 println 세미콜론 불필요 함수 함수 선언은 fun 키워드로 시작한다. fun 다음에는 함수 이름이 온다. 함수 이름 뒤에는 괄호 안에 파라미터 목록이 온다. 위 그림은 코틀린 함수의 기본 구조를 보여준다. 코틀린 if 는 문장(statement)이 아니고 결과를 만드는 식(expression)이다. 문(statemen.. 더보기
Kotlin in Action - 1 코틀린 소개 자바 플랫폼에 들어가는 새로운 프로그래밍 언어 간결, 실용적, 자바와의 상호 운용성을 중시 대표적 서버 개발, 안드로이드 앱 개발 등의 분야에서 적용 가능 주요 특성 대상 플랫폼 : 서버, 안드로이드 등 자바가 실행되는 모든 곳 정적 타입 지정 언어 성능 : 실행 시점에 타입 판단 불필요 → 메소드 호출이 더 빠르다 신뢰성 : 컴파일러가 프로그램의 정확성을 검증하기 때문에 오류로 중단될 가능성이 적어진다. 도구 지원 : 안전한 리팩토링, 도구는 더 정확한 코드 완성기능 제공 가능 함수형 프로그래밍과 객체지향 프로그래밍 간결성, 추상화, 코드중복 제거 함수형 스타일로 다룰 수 있는 API 제공 무료 오픈소스 철학 실용성 실제 문제를 해결하기 위해 만들어진 실용적 언어 연구를 위한 언어가 아닌,.. 더보기
Mybatis Executor, PreparedStatement Mybatis의 Executor type에는 SIMPLE, REUSE, BATCH 3가지가 존재한다. 공식문서의 설명은 아래와 같다. ExecutorType.SIMPLE: 이 타입의 실행자는 아무것도 하지 않는다. 구문 실행마다 새로운 PreparedStatement를 생성한다. ExecutorType.REUSE: 이 타입의 실행자는 PreparedStatements를 재사용할 것이다. ExecutorType.BATCH: 이 실행자는 모든 update구문을 배치처리하고 중간에 select 가 실행될 경우 필요하다면 경계를 표시한다. 이러한 과정은 행위를 좀더 이해하기 쉽게 하기 위함이다. 매퍼 설정 디폴트 실행자(executor) 설정. SIMPLE 실행자는 특별히 하는 것이 없다. REUSE 실행자는 .. 더보기
Java 프로그램 개발과 구동 JDK는 플랫폼에 독립적이지 않다. 각 운영체제, 환경 별로 다른 버전이 필요하다. 하지만 각 플랫폼 별로 다른 목적(실행) 파일을 만들지는 않는다. 이에 대해서 알아보자. C 언어의 개발과 구동 Java 이전 언어인 C 언어의 소스(코드) 파일 와 목적(실행) 파일은 어땠을까? C 언어는 하나의 소스 파일이 존재하고, 각 플랫폼 별 컴파일러가 해당 플랫폼에서 실행 가능한 목적 파일을 생성한다. 이는 이 전 플랫폼 별 소스 파일, 컴파일러, 목적 파일이 필요하던 어셈블리어 에서 개선된 형태이다. 장점 하나의 소스 파일만 작성하면 된다. 단점 각 플랫폼 별 컴파일러가 필요하다. 각 플랫폼 별 목적 파일이 생성된다. Java 언어의 개발과 구동 Java는 기존 C 언어의 불편함을 개선했다. 하나의 소스 파일.. 더보기
JVM, JDK, JRE 란? JDK, JRE, JVM? 처음 자바 개발을 하다 보면 생소한 단어들을 듣게 된다. Java를 다운 받으려고 하는데 어떤걸 받아야 할까? 기초적인 내용을 알아보자. JVM (Java Virtual Machine) 말 그대로 가상 머신이다. 자바 바이트 코드가 실행 될 수 있는 런타임 환경을 제공한다. JVM은 플랫폼에 독립적이지 않다. 각 OS 플랫폼 별로 다른 JVM을 설치 해야 한다. JVM은 대표적으로 아래와 같은 기능을 수행한다. 코드를 읽어들인다. 코드를 검증한다. 코드를 실행한다. 런타임 환경을 제공한다. JRE (Java Runtime Environment) 자바 실행 환경을 뜻한다. Java 프로그램 실행기인 java.exe를 포함한다. JVM의 구현체이다. JRE는 JVM과 다르게 물리적.. 더보기
빌드도구란? (Maven, Gradle) 빌드도구는 소스코드에서 어플리케이션 생성을 자동화 하기 위한 프로그램이다. 빌드는 코드를 사용 or 실행 가능한 형태로 컴파일링, 링킹, 패키징 하는것을 포함한다. 기본적으로 빌드 자동화는 아래와 같은 정형화된 다양한 작업을 스크립팅하거나 자동화 하는 행위이다. 종속성 다운로드 소스코드를 바이너리코드로 컴파일 바이너리 코드를 패키징 테스트 실행 프로덕션 시스템에 배포 사용 이유 대규모 프로젝트에선 빌드프로세스를 수동으로 호출이 실용적이지 않다. 무엇을 빌드할지, 어떤 순서로 할지, 어떤 의존성이 있는지 모두 추적하기 쉽지 않기 때문이다. 빌드도구를 사용하면 이를 일관되게 할 수 있다. Maven vs Gradle Maven은 고정적이고 선형적인 단계의 모델을 기반으로 한다. 반면 Gradle은 작업 의존.. 더보기