본문 바로가기

안드로이드 프로그래밍/kotlin

[Kotlin] 네트워크 통신 방식, JSON 네트워크 2대 이상의 컴퓨터가 연결되어 데이터를 주고받는 통신 체계 인터넷은 전송할 데이터를 HTTP 라는 프로토콜로 만들어진 패킷(바구니)에 담은 후에 전송 프로토콜인 TCP/IP 를 사용하여 수신 측에 전달하는 구조로 만들어져 있다. HTTP 네트워크를 이해하기 위해서는 먼저 두 가지 개념을 알아야 한다 1. 프로토콜 2. 패킷 프로토콜 컴퓨터 간의 데이터를 전송하는 방식이 서로 다르면 데이터를 주고받을 때마다 각 컴퓨터의 전송방식에 맞게 코드를 수정해야 한다. 프로토콜은 이런 전송 방식을 표준화하여 어떤 컴퓨터와도 동일한 방식으로 데이터를 주고받을 수 있게 만들어진 통신 규약이다. 인터넷은 TCP/IP 로 동작하는데 이 TCP/IP 가 프로토콜이다. 웹은 HTTP 라는 프로토콜을 사용하는데, 웹 서.. 더보기
[Kotlin] 구글 지도 API 어플 만들기 (Google Maps API 받아오기, 지도 앱 만들기) 🌈구글 지도 데이터를 기반으로 사용하는 Google Maps API 의 사용 방법을 알아보자. 1. 구글 지도 앱 만들기 실습 2. 구글 지도 코드 살펴보기 잠깐! 📌 API (Application Programming Interface) 란? 응용 프로그래밍 인터페이스, 응용 프로그램에서 운영체제나 다른 프로그래밍 언어 등에서 제공하는 기능을 제어할 수 있는 인터페이스 이다. 좀 더 쉽게 설명하면, API 는 프로그램 간의 상호작용을 도와주는 역할을 하며 보통 API를 통해 데이터를 주고받는다. 📌 구글 플레이 서비스의 Google Maps API 를 사용하면 구글 지도 데이터를 기반으로 앱에 지도를 추가할 수 있다. 구글 지도는 Google Maps Platform 서비스 중 하나이며 교통정보 기반의.. 더보기
[KotlinSyntax] Properties and Fields 프로퍼티 선언 코틀린 클래스는 프로퍼티를 가질 수 있음 var (mutable) / val (read-only) class Address { var name: String = "kotlin" val city: String = "Busan" } 프로퍼티 사용은 자바의 필드를 사용하듯이 하면 됨 fun copyAddress(address: Address): Address { val result = Address() result.name = address.name //.. return result } 프로퍼티 문법 전체 문법 var [: ] [=] [] [] 옵션 (생략 가능) PropertyType property_initializer 에서 타입을 추론 가능한 경우 생략 가능 property_initiali.. 더보기
[KotlinSyntax] Inheritance 상속 상속 📌 코틀린의 최상위 클래스는 Any 클래스에 상위타입을 선언하지 않으면 Any 가 상속됨 class Example 1 // 암시적인 Any 상속 class Example 2 : Anyy() // 명시적인 Any 상속 📌 Any는 java.lang.Object 와는 다른 클래스임 equals(), hashCode(), toString() 만 있음 package kotlin public open class Any { public open operator fun equals(other: Any?) : Boolean public open fun hashCode(): Int public open fun toString(): String } 📌 명시적으로 상위타입을 선언하려면, 클래스헤더의 콜론(:) 뒤에 상.. 더보기
[KotlinSyntax] Inheritance 상속 상속 코틀린의 최상위 클래스는 Any 임 클래스에 상위타입을 선언하지 않으면 Any가 상속됨 class Example1 // 암시적인 Any 상속 class Example2: Any() // 명시적인 Any 상속 Any는 java.lang.Object 와는 다른 클래스임 equals(), hashCode(), toString() 만 있음 package kotlin public open class Any { public open operator fun equals(other: Any?): Boolean public open fun hashCode(): Int public open fun toString(): String } 명시적으로 상위타입을 선언하려면, 클래스헤더의 콜론(:) 뒤에 상위타입을 선언하면 .. 더보기
[KotlinSyntax] Class 클래스 📌 클래스는 class 키워드로 선언함 클래스 이름 클래스 헤더 (형식 매개변수, 기본 생성자 등) 클래스 바디 (중괄호 { } ) class Invoice(data: Int) { } 📌 헤더와 바디는 옵션이고, 바디가 없으면 { } 도 생략가능 class Empty 기본생성자 클래스 별로 1개만 가질 수 있음 클래스 헤더의 일부 클래스 이름 뒤에 작성 class Person constructor(firstName: String) { } 📌 어노테이션이나 접근지정자가 없을 때는, 기본생성자의 constructor 키워드를 생략가능 class Person(firstName: String) { } 📌 기본생성자는 코드를 가질 수 없음 초기화는 초기화(init)블록 안에서 작성해야 함 초기화 블록은 i.. 더보기
[kotlin syntax] package, Return and Jumps Package (패키지) 📌 패키지 소스 파일은 패키지 선언으로 시작 됨 모든 콘텐츠(클래스, 함수, ...)는 패키지에 포함됨 패키지를 명세하지 않으면 이름이 없는 기본 패키지에 포함됨 package foo.bar fun baz() {} class Goo {} fun main(args: Array){ foo.bar.bax() foo.bar.Goo() } 📌 기본 패키지 기본으로 import되는 package 가 있음 플랫폼 별로 import되는 package도 다른 부분도 있음 kotlin.* kotlin.annotation.* kotlin.collections.* kotlin.comparisons.* (since 1.1) kotlin.io.* kotlin.ranges.* kotlin.sequences.. 더보기
[Android Studio] # date and time 다루기 안드로이드의 날짜 라이브러리 💻 날짜를 다루기 위해서는 날짜객체를 만들고 그 날짜객체를 자기가 필요로 하는 양식에 맞춰서 표현하면 된다. 🔽 먼저 New Project 를 만들어보자. 🔽 activity_main.xml id : textView ❓❕ import kotlinx.android.synthetic.main.activity_main.* 이 안될 경우 해결 방법 더보기 1. build.gradle(app.module) 에서 2. kotlin-android-extensions 플러그인 추가 3. Sync Now 클릭 📌 java.util.Date 라이브러리 val utilDate = Date() println(utilDate.toString()) 이 객체의 표현패턴을 바꿔보자. val utilDat.. 더보기
[Android Studio] kotlin 기본 문법3( 함수, 클래스 ) 📌 함수 fun 함수명(파라미터 이름: 타입): 반환 타입 { return 값 } 1. 반환값과 입력값이 있는 함수의 정의 - Int 타입의 x라는 입력 파라미터를 갖는 함수 square() 를 정의해보았다. fun square(x: Int): Int { return x * x } -> square 함수가 호출되면 입력값을 제곱해서 호출한 측으로 반환하고 실행이 종료된다. 2. 반환값이 없는 함수의 정의 - 반환값 없이 입력값을 받아서 Log 로 출력하는 함수 printSum() 을 정의해보았다. fun printSum(x: Int, y: Int) { Log.d("fun", "x+y= ${x+y}") } -> printSum 함수가 호출되면 결과값을 Log 로 출력하고 실행이 종료된다. 3. 입력값 없이.. 더보기
[Android Studio] kotlin 기본 문법2( 배열, 컬렉션 ) 📌 배열 - 여러 개의 값을 하나의 변수에 저장할 수 있도록 배열(Array) 과 컬렉션(Collection) 이라는 데이터 타입을 제공한다. - 여러 개의 값을 담을 수 있는 대표적인 자료형인 배열 - 먼저 배열 공간의 개수를 할당하거나 초기화 시에 데이터를 저장해두면 데이터의 개수만큼 배열의 크기가 결정됨 - 먼저 개수를 정해 놓고 사용해야 하며 중간에 개수를 추가하거나 제거할 수 없다. var 변수 = Array(개수) var students = IntArray(10) var longArray = LongArray(10) var CharArray = CharArray(10) var FlatArray = FloatArray(10) var DoubleArray = DoubleArray(10) stude.. 더보기

반응형