본문 바로가기

분류 전체보기152

Kotlin 변수(Variables) 알아보기 변수(variables)는 간단히 말해서 값을 저장하는 공간입니다. 프로그래밍 언어에서 특정 계산을 수행하거나 또는 어떤 값을 저장하기 위해서 사용합니다. 이번 글에서는 Kotlin에서는 어떻게 변수를 선언하고 초기화하는지에 대해서 알아보도록 하겠습니다. Kotlin 변수 타입 추론 Kotlin은 강력한 타입 추론을 갖고 있습니다. 개발자가 변수의 타입을 명시적으로 선언할 수 있지만, 일반적으로 컴파일러가 변수의 타입을 추론해서 작업을 수행하게 됩니다. 변수 선언 및 초기화하기 var/val 변수명: 변수타입 = 초기화 변수명을 식별자라고 합니다. 식별자는 키워드(var, val와 같이 Kotlin에 미리 정의된 단어)를 제외한 영문자, 숫자, 언더스코어만 가능합니다. var와 val 키워드는 무엇인가?.. 2019. 4. 5.
Kotlin 프로그래밍 시작하기 Java 개발자인데 Kotlin을 배우려는 이유? KCD 2019 세미나에서 "구글이 선택한 코틀린? 왜 좋을까?"라는 세션을 듣고 나서 Kotlin 언어에 대해 관심을 갖게 되었습니다. 아마도 JVM 기반 언어이면서 Kotlin이 Java와 100% 호환성 지원이 된다는 사실에 끌렸던 것 같습니다. 마침 현재 진행하는 프로젝트에서도 특정 처리에 대해서 Kotlin으로 처리하고 있었습니다. 그렇기 때문에 Java로 작성된 코드를 Kotlin으로 변경해보면서 익히면 자연스럽게 배울 수 있다는 생각이 들었습니다. 참고로 IntelliJ IDEA에는 Java 코드를 Kotlin 코드로 변경해주는 기능이 있습니다. 다시 생각해봐도 Kotlin을 배우고자 했던 큰 이유는 단순한 호기심 때문인 것 같습니다 😊 하지.. 2019. 4. 5.
MySQL SELECT 문장에서 Limit 사용법 Limit 단어는 ‘한계’, ‘한도’ 라는 단어 뜻을 갖고 있다. MySQL 데이터베이스 Select 문장에서 Limit 키워드를 사용하면 테이블 데이터 조회 시 한계를 지정할 수 있다. 예를 들어, 테이블에서 10개의 데이터만 가져오는 SELECT 문장을 만들기 위해서는 아래처럼 사용하면 된다. -- 행 데이터 10개만 조회하기 SELECT title, content, writer FROM board LIMIT 10; 그리고 Offset 옵션을 이용하면, 가져오고자 하는 행 데이터의 시작 지점을 지정할 수 있다. 아래 쿼리를 실행하면 테이블의 11행부터 20행까지의 데이터를 가져온다. -- 11번째 ~ 20번째 행 데이터 조회 SELECT title, content, writer FROM board L.. 2019. 4. 5.
MySQL 테이블 복사하기 MySQL 데이터베이스에서 제약조건을 포함하여 테이블을 복사하는 방법에 대해 알아보자. 예제에서 사용되는 테이블은 MySQL 샘플 데이터베이스 sakila에 있다. sakila 샘플 데이터베이스는 Github에서 받을 수 있다. 테이블 구조 살펴보기 sakila 데이터베이스의 actor 테이블 구조를 간단하게 살펴보자. actor_id 컬럼이 테이블의 Primary Key이며, auto_increment 설정이 되어 있다. 그리고 컬럼은 actor_id , first_name, last_name, last_update 4개로 구성되어 있다. CTAS로 테이블 복사하기 CTAS(create table as select) 구문을 사용해서 actor 테이블을 복사하자. SQL를 실행하고 나서 actor_tes.. 2019. 4. 4.
Effective Java 아이템 6. 불필요한 객체 생성을 피하라 Effective Java 3판을 학습하며 요약한 내용입니다. 자세한 내용은 책을 참고해주시기 바랍니다. 똑같은 기능의 객체를 매번 생성하는 것보다 객체 하나를 재사용하는 편이 나은 경우가 많다. 재사용은 일단 매번 객체를 생성하는 것보다 빠르다. 특히 불변 객체는 언제든 재사용 할 수 있다. 변하지 않기 때문이다. 실무에서 개발 업무를 하다 보면 String을 많이 사용한다. 경험적으로 문자열 값을 처리하는 경우가 많았던 것 같다. String을 리터럴로 선언하면, 같은 객체를 재사용하게 된다. new String() 코드는 문자열 인스턴스를 매번 새로 생성하며, 동일한 문자열 값이더라도 다른 인스턴스를 생성한다. // String 리터럴로 선언해서 동일한 문자열이면 같은 객체를 사용하는 방식 Stri.. 2019. 4. 4.
Effective Java 아이템 5. 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라 Effective Java 3판을 학습하며 요약한 내용입니다. 자세한 내용은 책을 참고해주시기 바랍니다. 많은 클래스들은 협력하기 위해서 하나 이상의 자원에 의존한다. 예를 들어 맞춤법 검사기는 사전에 의존하는데, 이러한 맞춤법 검사기를 정적 유틸리티 클래스로 구현한 것을 드물지 않게 볼 수 있다. 이와 유사하게 싱글턴으로 구현하는 경우도 흔한다. 다음 코드는 맞춤법 검사기를 싱글턴으로 구현한 예제이다. public class SpellChecker { private final Lexicon dictionary = ...; private SpellChecker() { } public static SpellChecker INSTANCE = new SpellChecker(); public boolean is.. 2019. 4. 4.