전체 글 135

[Kotlin] 스코프함수 (Scope Function) 코틀린 표준 라이브러리는 객체의 컨텍스트 내에서 코드 블럭을 실행하기 위한 목적만을 가진 함수를 제공합니다. 이런 함수들은 람다식으로 호출할 때, 임시로 범위를 형성합니다. 이 범위 내에서는 객체의 이름이 없어도 객체에 접근할 수 있습니다. 이러한 함수를 스코프 함수라고 하고 스코프 함수는 새로는 기능을 제공하는 것이 아니라 코드의 가독성을 향상 시키는 역할을 합니다. 스코프 함수는 apply, run, with, also, let이 있고 이 함수들은 임시로 생성된 객체의 코드블럭을 실행합니다. 함수는 객체의 컨텍스트를 참조하는 방식, 리턴값으로 사용여부를 판단합니다. 컨텍스트 객체(Context Object) 스코프 함수의 람다식 내에서 컴텍스트 객체는 참조 이름으로 사용할 수 있습니다. 람다 수신자(.. Language/Kotlin 2020. 9. 8.
Http통신과 Socket통신 Http통신 Client의 요청(Request)이 있을 때만 서버가 응답(Response)하여 해당 정보를 전송하고 곧바로 연결을 종료하는 방식 Client가 요청을 보내는 경우에만 Server가 응답하는 단방향 통신이다. Server로부터 응답을 받은 후에는 연결이 바로 종료된다. 실시간 연결이 아니고, 필요한 경우에만 Server로 요청을 보내는 상황에 유용하다. 요청을 보내 Server의 응답을 기다리는 어플리케이션(Android or Ios)의 개발에 주로 사용된다 Socket통신 Server와 Client가 특정 Port를 통해 실시간으로 양방향 통신을 하는 방식 Server와 Client가 계속 연결을 유지하는 양방향 통신이다. Server와 Client가 실시간으로 데이터를 주고받는 상황이 .. Computer Science/Network 2020. 9. 8.
[Kotlin] 열거형 클래스 (Enum Class) 열거형 클래스를 쓰는 이유 코드가 단순해 진다. 가독성이 좋다. 서로 관련 있는 상수들을 모아 심볼릭한 명칭의 집합으로 정의한 것 새로운 열거형을 선언하면, 내부적으로 Enum 클래스형 기반의 새로우누 클래스형이 만들어짐. 클래스처럼 보이게 하는 상수 // 이름으로만 정의 가능 enum class Suit { CLUBS, DIAMONDS, HEARTS, SPADES } // 이름과 프로퍼티로 정의 가능 enum class Denomination(val initial: String, val score: Int) { ACE("A", 11), TWO("2", 2), THREE("3", 3), FOUR("4", 4), FIVE("5", 5), SIX("6", 6), SEVEN("7", 7), EIGHT("8",.. Language/Kotlin 2020. 9. 8.
[Java] JVM Architecture 동작원리 Java의 동작 원리를 알기 위해서는 JDK,JRE,JVM을 알아야 합니다. JDK ( Java Development Tool) Java 응용 프로그램 개발 및 실행에 사용되는 완전한 개발 환경. JRE 및 개발 도구가 모두 포함되어 있습니다. JRE ( Java Runtime Environment ) Java 애플리케이션을 실행하는 데 필요한 JVM (Java Virtual Machine) 및 자바 클래스 라이브러리(Java Class Libraries)와 자바 클래스 로더(Java Class Loader)가 포함됩니다. JVM ( Java Virtual Machine ) Java를 실제로 실행시키는 도구이다. 자바 어플리케이션을 클래스 로더를 통해 읽어 들여 자바 API와 함께 실행한다. 그.. Language/Java 2020. 6. 7.
[Android] Android Pie Http 허용 카카오 지도 API를 연동하면서 아래와 같은 에러로 화면이 제대로 출력되지 않는 문제가 발생 AndroidManifest 속성에 usesCleartextTraffic을 true로 설정해주면 해결된다. android:usesCleartextTraffic 앱이 일반 텍스트 HTTP와 같은 일반 텍스트 네트워크 트래픽을 사용하는지 여부를 나타냅니다. API 레벨 27 이하를 타겟팅하는 앱에서는 기본값이 "true"이고, API 레벨 28 이상을 타겟팅하는 앱에서는 기본값이 "false"입니다. 이 속성이 "false"로 설정되면 플랫폼 구성요소(예: HTTP 및 FTP 스택, DownloadManager, MediaPlayer)는 앱의 일반 텍스트 트래픽 사용 요청을 거부합니다. 타사 라이브러리도 이 설정을 .. Domain/Android 2020. 6. 5.