|
프로그래밍에 대한 인기가 높습니다.
다양한 프로그래밍 언어가 있지만 우리나라에서는 자바에 대한 수요가 높죠.
모든 프로그래밍 언어와 마찬가지로 자바 또한 장,단점이 존재합니다.
코틀린은 자바의 100% 호환되면서 단점을 없앤 언어입니다.
강력함은 자바보다는 떨어지지만 문법이나 코딩량이 자바보다 적습니다.
특히 구글에서 안드로이드 개발 언어로 채택하면서 인기가 높아졌죠.
![]() 코틀린은 IDE 개발 회사로 유명한 jetbrain에서 개발한 언어입니다.
위에서 언급한대로 안드로이드 개발 언어로 지정되면서 앱 개발시 많이 사용하고 있습니다.
이 책은 코틀린에 대한 전반적인 내용을 다루고 있습니다.
개발을 처음 접하는 분들이 가장 어려워하는 것이 바로 환경설정입니다.
운동을 하러 가기 전에 준비물을 갖춰야 하는데 그게 처음 하는 분들에게는 무척 낯설고 고난합니다.
그래서인지 이 책은 이런 환경설정에 대한 부담감을 확 줄였습니다.
완벽한 개발 환경을 갖추기 보다는 책의 목적인 코틀린에 대한 이해를 높게 하는데 집중하기 위해 간단하게 설정할 수 있는 가이드를 제공하고 있습니다.
실전에는 당연히 컴파일러를 사용해야 하겠지만, 이 책에서는 인터프리터 환경에서 스크립트로 문법 위주로 설명하고 있습니다.
이 책은 프로그램을 처음 접하는 분들보다는 이미 다른 프로그래밍 언어에 익숙한 분들에게 좋을 것 같네요.
처음부터 객채를 설명하고 있어 초보자가 쉽게 이해하기에는 어려울 수 있습니다.
그렇지만 제네릭, 코루틴을 포함하여 코틀린에 대한 전반적인 내용을 모두 설명하고 있습니다.
앱을 개발할 수 있는 언어는 많습니다.
꼭 코틀린을 고집해야 할 이유는 없지만, 안드로이드에서 공식적으로 인정한 언어이기에 향후 발전 가능성도 높습니다.
|
|
<개발자를 위한 코틀린 프로그래밍 A to Z> 문용준, 잇플 |
|
아나콘다 (anaconda) 설치
아나콘다는 다양한 가상화 환경을 구성해 데이터 분석을 위한 모듈을 쉽게 설치할 수 있는 환경을 제공한다.아나콘다를 설치하면 가상환경을 추가로 쉽게 구성할 수 있다. 이 가상화 환경에 코틀린, 스칼라 등 다양한 언어를 설치할 수 있다. 기본으로 제공하는 개발 툴이 주피터 노트북이나 주피터 랩이다. (-16-)
1990년대 초반,컴퓨터를 활용할 수 있다면, 컴퓨터 전문가로 통칭되었던 시절이 있었다. 초창기 도스 기반 코볼과 ,BASIC, 포트란과 같은 프로그램을 작성하여, 컴퓨터 연산 뿐만 아니라, 점,도트로 이루어진 움직임에 경이로움을 느낀 적 있다.그 당시 탄생한 대표적인 게임이 오락실 게임 겔러그이며,그게임 프로그램 소스는 갹체지향 C/C++ 기반 프로그램이다. 이 책,코틀린에 대해 관심 가지게 된 이유는 컴퓨터 환경이 PC 에서, 모바일로 전환하면서, 웹 환경이 많이 달라졌기 때문이다. 예전처럼 전자상거래 관련 웹환경에서 탈피하여, 코틀린으로 내가 원하는 모바일 환겨에서 구동되는 앱 프로그램을 만들 수 있으며, 코틀란 프로그램은 기본적으로 객체지향적 프로그램의 속성을 가지고 시작하며, JAVA 프로그램을 대체하는 효과가 있다. 코딩을 하다보면, 클래스와 함수가 분리되고 있으며, 각각의 상수와 변수를 정의하여, 프로그램을 쉽게 코딩할 수 있는 작업 요령을 익힐 수 있으며, 코틀린 에 맞는 함수를 익힌다면, 이 프로그램에 적응할 수 있다. 적당한 위치에 주석을 달아, 컴파일 디버깅 과저에서 오류를 쉽게 찾아내는 것은 안드로이드 기반 앱개발자라면 꼭 숙지해야 하는 부분이다. 물론 어느 컴퓨터 프로그램에서 보듯이 코틀린 언어를 유용하게 쓰려면 안드로이드 기반 가상화 환경을 구축하는 완벽한 방법이 우선 필요하다. 개발 툴을 어디서 구할 수 있고, 설치할 수 있는 방법, 여기에 코틀린 환경설정까지 책의 앞부분에 자세히 소개되고 있다. 물론 주피터 랩이나 주피터 노트북을 쓴다면, 전문적으로 코틀린 프로그램을 현업에 쓸 수 있으며, 앱개발자로서, 모바일 관련 비즈니스로 엮어 나갈 수 있다. 즉 어떤 프로그램에 최적화된 환경을 이해하는 것은 코딩에 대해 입문하는 사람들, 파이썬,Perl, 코틀린 입문자에게 기본적으로 알고 가야 하며, 조금 돈이 들더라도, 코딩과 프로그래밍하는 과정에서의 프로그래밍 전체 루틴을 꼼꼼하게 체크할 필요가 있다. |
|
이번 책은 다소 담백한 리뷰를 써야할 것 같다. 이 책은 코틀린 언어를 활용한 프로그래밍의 시작부터 알려주는 레시피북이다. 코딩은 잘 모르지만, 그래도 R이나 파이썬을 활용하고 있기에 앱 개발을 위한 언어라는 설명에 한 번 도전해보았다. 코틀린은 구글 안드로이드의 언어로 활용되고 있으며 자바 대용으로 웹에서도 개발에 활용될 수 있는 언어다. 확실히 자바에 비해서 간결하다는 느낌을 받았다. 물론 겉핥기 수준으로만 접해봐서 그런 느낌일 수 있지만, 뭔가 세련된 느낌이다. 분명 첫입문은 그렇게 어렵지 않게 할 수 있을 것 같다. 이 책은 주피터 노트북에서 구동하는 것을 알려주는데, 아나콘다 설치부터 상세하게 알려주고 있다. 밥을 짓는 법을 알려주는데, 냄비를 씻는 법부터 굉장히 친절하게 알려주는 셈이다. 실제로 책에 나온 순서대로 하나씩 따라가다보면, 코딩을 한번도 해본 적 없는 사람이라도 흥미만 있다면 얼마든지 어렵지 않게 따라갈 수 있다. 물론 세세하게 시작부터 알려주고는 있지만, 책의 내용만으로는 이해하기 어려운 부분도 분명히 존재한다. 하지만 코딩이든 프로그램이든 가장 훌륭한 조언은 구글링이기 때문에, 어려운 부분을 만난다면 구글링을 통해 보다 구체적으로 공부할 수 있을 것이다. 이 책의 목적은 적어도 코틀린 언어에 대한 입문자에게 코틀린을 알려주는 것이기에, 이 책은 순서대로 익히면서 진도를 나가며, 추가로 구글링을 통해 보충한다면 굉장히 좋은 학습일 될 것이다. 다른 학습도 마찬가지겠지만, 프로그램에 대한 학습은 무엇보다 실행이 중요하다. 실제로 실습해보면서, 궁금한 부분을 찾아보고 추가적인 기능도 익히는 것이 가장 빠른 방법이다. 이 책의 목적은, 처음 시작하는 막막한 사람들에게 시작을 도와주는 것이다. 책을 따라가다보면, 저절로 언어에 익숙해지고, 구글링으로 찾은 내용에 대해서 이해가 빨라질 것이다. 학생 시절, 처음 R을 다룰 때 느꼈던 막막함이 생각났다. 그땐, 배우기에 앞서 당장 결과물을 내야만 했기에 주위에 묻고 구글링을 해서 어떻게든 결과물을 얻었지만, 아쉬운 점이 많긴 했다. 이 책은 코틀린 언어에 관심을 가지고 처음 시작하는 사람들에게 굉장히 좋은 안내서가 될 것이다. 이 책만으로는 부족한 내용이 많다. 하지만, 시작하는 막막함을 지우는데는 분명히 도움이 될 것이고, 모든 일이 그렇듯 시작이 반이기에 이런 류의 책과 함께 배움을 시작한다면 나중에 아쉬움이 덜 할 것이라고 확신한다. <이 글은 출판사로부터 책을 제공받아 읽고 주관적으로 느낀 점을 쓴 글입니다>
#개발자를위한코틀린프로그래밍 #문용준 #잇플 |
|
인공지능이 많이 발전한 것 같습니다. 얼마전에 유럽에 어느 미술대회에서 인공지능이 그린 그림이 상을 받았다는 이야기를 듣고 충격을 받았습니다. 그래서인지 인공지능 개발 기술에 관심이 더 갑니다. 코틀린은 앱과 웹이 모두 가능한 언어라 합니다. 인텔리제이라는 개발 툴을 만드는 젯브레인사에서 만든 프로그램 언어로 구글 안드로이드의 주 언어이고 JVM 환경에서 자바 대용으로 백엔드 개발을 할 수 있다고 합니다. 개발환경을 구성하는 방법에 대해 설명을 합니다. 다양한 가상화 환경을 구성해 데이터 분석을 위한 모듈을 쉽게 설치할 수 있는 환경을 제공하는 아나콘다를 설치하고 주피터 랩과 주피터 노트북을 설치합니다. 그 후 코틀린을 설치합니다. 코틀린은 모든 것을 객체로 처리한다고 합니다. 코틀린을 주피터 개발 툴에서 처리할 때 장점으로는 일반 개발 툴처럼 main 함수로 실행할 필요가 없고 웹 기반으로 마크다운 등으로 설명을 추가할 수 있다고 합니다. 단점으로는 패키지 작성이나 패키지 단위의 상수를 지정할 수 없고 현재 코틀린용 주피터 노트북이나 주피터 랩에서 kts 파일을 바로 만들 수 없다고 합니다. 이를 예제를 통해 설명을 합니다. 프로그래밍 언어를 공부할때 알아야하는 기본적인 것부터 설명을 하기에 보면서 예제를 실제로 입력 실행해보면서 눈으로 확인을 해보면 좋을거 같습니다. 각 챕터별로 개념 및 알아두어야 할 것들을 설명합니다. 처음에 볼때는 무슨 말인지 생소해서 이해가 안 갈 수 있지만 쭈욱 읽어보고 예제도 보고 키보드로 쳐보기도 하고 하면서 따라해보고 이 책을 여러번 보다보면 하나 둘 이해가 늘겠지요. 그냥 쉽게 읽는 책이 아니니깐요 실로 몇년만에 새로운 개발 언어 관련 책을 보니 새롭습니다. 고치함수나 재귀함수 등을 사용하다 보면 성능상의 문제가 발생한다고 합니다. 그래서 내부적으로 호출된 곳에 함수를 코드로 삽입해서 문제가 일어나는 것을 방지한다고 합니다. 이런 방식으로 처리하는 것을 인라인 함수라 한다고 합니다. 속성에 인라인을 붙여 인라인 속성을 사용할 수 있습니다. 둘다 성능상 효율은 좋지만 코드에 삽입되므로 코드가 증가하는 문제가 발생하므로 적절하게 사용하는 것이 좋다고 합니다. 보통 하나의 클래스에는 하나의 책임을 부여해서 설계하는 방식을 사용합니다. 위임은 2개의 클래스가 동일한 책임을 가지고 나눠서 처리하는데 클래스 위임은 동일한 책임을 위탁자가 수탁자에게 일을 맡겨서 처리하도록 만드는 것이라 합니다. 이런 위임이 좋은 것은 다양한 기능을 하나의 클래스를 통해서 받고 처리할 수 있도록 구조화할 수 있기 때문이라 합니다. 제네릭 확장함수 : 제네릭 확장함수를 사용하면 클래스의 상속관계에 따라 다양한 객체에서 확장함수를 사용할 수 있다. 제네릭 확장속성 : 제네릭 확장속성도 다양한 클래스의 속성으로 사용할 수 있다. 주의해야 할 것은 클래스의 속성에 있는 배킹필드를 사용할 수 없다는 점이다. 그래서 특히 더 주의해서 사용해야 한다. 확장속성도 일반화해서 다양한 클래스에서 사용할 수 있으면 좋지만 일반화를 너무 많이 사용하는 것보다는 클래스를 정의할 때 속성과 메서드를 적절하게 만드는 것이 유리합니다. 이런 점을 잘 이해하고 작성하는 연습을 해야 한다고 합니다. 유사한 개념들도 있지만 새로운 용어나 개념들이 많아서 이 책을 몇번 들여다보고 관련 책도 찾아보고 실제로 실행도 해보면서 익숙해져야 할 거 같습니다. |