![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bTHzvB/btq1asXhyHJ/pmx6or7gd0cnQjrZ0bfSG1/img.png)
본 포스팅의 내용은 [깡샘의 코틀린 프로그래밍]을 공부하고 작성자가 생각을 정리하기 위해서 작성한 글이므로 더욱 자세한 내용을 알고 싶으신 분은 [깡샘의 코틀린 프로그래밍]을 강력 추천합니다!! 코틀린이란? 코틀린은 인텔리제이로 유명한 젯브레인의 오프소스 그룹에서 개발하였다. 2016년에 발표되었고 안드로이드 개발에 사용할 수 있게 되면서 주목받기 시작하였고 2017년 5월에는 구글 I/O 행사에서 안드로이드의 공식 언어로 코틀린을 지정하였다. 코틀린의 특징 1. 자바, 안드로이드 100% 호환 코틀린을 알고나서 자바와 100% 언어 호환이 된다는 것이 가장 놀랐다. 코틀린으로 개발된 코드는 컴파일러에 의해 자바 클래스 파일로 빌드되어 자바의 실행환경인 JVM을 그대로 사용하여 동작하기 때문에 가능하다고..
매우매우매우 심플한 문제였습니다. 프로젝트 경로 중에 한글 이름으로 된 폴더가 있어서 생긴 문제였어요;; 가급적 모두 영어로 적는 습관이 들여져있다고 생각했는데 방심했네요ㅋㅋㅋ 그래도 검색하니 금방 나와서 시간은 별로 안 뺏겼습니다. 그리고 NON-ASCII 머라머라 하는 에러 메시지도 있었는데 그것도 경로 중 한글 이름이 있어서 생기는 오류였던 것 같습니다.
Kotlin을 새롭게 접하면서 Java에서는 찾아볼 수 없었던 새로운 문법을 발견하게 되었다. 1 2 3 data class Member( ... ) class 앞에 static이나 접근제어자가 아니고 무슨 기능을 하는지 예상이 가지 않았다. 찾아보니 POJO(Plain Old Java Object) 클래스라고 불리는 데이터를 나타내는 클래스를 쉽게 구현하기 위해서 코틀린에서 제공하는 간편한 문법이라고 한다. (POJO라는 개념에 대해서도 좀 더 알아보았는데 말 그대로 해석하면 '오래된 방식의 간단한 자바 오브젝트'라는 뜻이다. 자바가 가지고 있는 객체 지향의 장점을 끌어올리기 위해서 POJO를 지향해야 한다고 한다.) 예로 들어 13개의 필드를 가지는 Member라는 클래스를 구현하기 위해 Java의 ..
이전에 Retorfit이 왜 필요하고 기본적인 구조는 어떻게 되어 있는지 알아봤으니 사용하기 위해 준비해야 하는 작업과 간단한 사용법을 알아보도록 하자. [깡샘의 안드로이드 프로그래밍] 책을 기본으로 정리하는 포스팅이 되겠다. 0. 목차 우선 Retrofit을 사용하는 순서를 정리하자면 다음과 같다. build.gradle 설정 권한 설정 Model 정의 Retrofit 객체 생성 Service 인터페이스 Call 객체 획득 네트워킹 시도 하나하나 차근차근 살펴보자. 1. build.gradle 설정 1 2 3 4 5 // Retrofit implementation 'com.squareup.retrofit2:retrofit:2.6.2' // gson : Json, XML을 파싱하여 VO 객체로 변환해주는..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/2Inro/btq0Okjuvy4/axLwW6r7iK0WrVdLPNtJCk/img.png)
팀 프로젝트를 수행하면서 팀장님께서 안드로이드에서 백엔드와 HTTP 통신을 하는 코드를 작성하는 미션을 부여해주셨다!! 백엔드와 통신하지 않는 안드로이드 앱만 만들어온터라 구현에 있어서 어느 정도 한계를 느끼고도 있었기 때문에 기쁜 마음으로 미션을 받아들였다. 프로그램을 개발하다 보면 자연스럽게 백엔드 서버와 통신해야 될 일이 생긴다. 웹 프론트에서는 axios 라이브러리를 활용해서 백엔드 api에서 원하는 서비스를 제공받을 수 있었다. 그렇다면 안드로이드는? 하고 찾아보다가 자연스럽게 만나게 되는 라이브러리가 Retrofit이었다. 1. Retrofit이란? Retrofit의 github.io에 들어가보면 Type Safe한 HttpClient 라이브러리라고 한다. Type Safe하다는 뜻은 다음과 ..
1. 기본 타입 (Primitive type) 정수, 실수, 문자, 논리 리터럴을 저장하는 타입을 말하고 원시 타입이라고도 부른다. 정수형 : byte, short, int, long 실수형 : float, double 문자형 : char 논리형 : boolean 실제 데이터 값을 저장하는 타입이다. 2. 참조 타입 (Reference type) 간단하게 말하자면 기본 타입을 제외한 타입들을 말한다. 객체의 주소를 저장하는 타입이다. ex) 문자열, 배열, 열거, 클래스, 인터페이스 Java에서 실제 객체는 Heap 영역에 저장되며 참조 타입 변수는 스택 영역에 실제 객체들의 주소를 저장하여 객체를 사용할 때마다 참조 변수에 저장된 객체의 주소를 불러와 사용하는 방식이다. Stack 영역 지역 변수, 파..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/GQdqO/btqZRsEzY3G/ttwhq1ZUjd4ZQgJGxSRboK/img.png)
컴퓨터를 사용하는 사람이라면 서버라는 단어를 안 들어본 사람이 더 적을 것이다. 하지만, 정작 서버란 단어를 사용할 때는 애매하게 사용하는 사람이 많아서 간단하게 서버란 개념을 이해하고 덧붙여 클라이언트라는 개념도 익혀보도록 하자. 서버와 클라이언트 서버는 어떤 특별한 컴퓨터가 아니다. 정확히는 컴퓨터의 역할이다. 우리들의 노트북, 데스크톱도 얼마든지 서버가 될 수 있다. 쉽게 이해하기 위해 사람에 빗대어보자. 내가 편의점에서 일하게 되면 아르바이트 직원이지만 퇴근한 후에 우리 집 앞에 있는 다른 편의점을 가게 되면 그 편의점에서는 손님이 된다. 나(컴퓨터)라는 본질은 바뀌지 않은 채 나의 역할만 바뀌는 것이다. 컴퓨터도 동일하게 하는 행위에 따라 서버 혹은 클라이언트가 될 수 있다. 서버와 클라이언트를..