객체 Object, Instance라고도 부르는 객체는 소프트웨어 애플리케이션의 빌딩 블록으로 쉽게 이용 및 재사용할 수 있는 자급자족의 기능 모듈 클래스 정의 객체가 생성되었을 때의 형태를 정의 // 기본적인 클래스 코드 class BankAccount { } //프로퍼티 (변수) 추가 class BankAccount { var accountBalance: Double = 0.0 var accountNumber: Int = 0 } 메서드 정의 코틀린에서의 메서드는 fun을 통해 함수를 정의할 수 있다. class BankAccount { var accountBalance: Double = 0.0 var accountNumber: Int = 0 fun displayBalance() { println("N..
코틀린의 표현식 구문 val result = 1 + 2 연산자, 피연산자, 할당으로 구성 산술 연산자 + - * / % 증강 할당 연산자 += -= *= /= %= 증가 / 감소 연산자 x++ x-- ++x --x 등치 연산자 == > >= y) x else y // Switch 구문과 유사 when (x) { 1 -> // code 2 -> // code 3 -> // code else -> //code } 함수 선언 및 함수 호출 // 함수 선언 fun functionName(name: String, count: Int): String { retrun "$count is $name" } // 함수 호출 functionName("Sangyoon", 10) 단일 표현식 함수 // 아래 3가지 경우 모두 ..
코틀린은 Intelij IDEA를 개발한 JetBrains에서 2011년에 공개한 오픈 소스 프로그래밍 언어이다. JVM 기반의 언어이고 Java 문법과 유사하지만 더 간결한 문법과 다양한 기능을 추가한 언어이다. Java와 상호 운용이 100% 지원 되는 점이 장점이다. 2017년에 구글에서 안드로이드의 공식 언어로 Kotlin을 추가하며 안드로이드의 대표 언어가 되었다. 안드로이드에서 많이 사용하는 만큼 코틀린 언어의 문법과 특징들을 알아 볼 것이다. 코틀린 데이터 타입 정수 데이터 타입 val number = 10 정수 데이터 타입은 정수를 저장하는데 이용된다. 코틀린은 8, 16, 32, 64비트 정수(Byte, Short, Int, Long)를 지원한다. 부동소수점 데이터 타입 val numbe..
1. 선언형 UI란? 한 정의에 따르면, 프로그램이 어떤 방법으로 해야 하는지를 나타내기보다 무엇과 같은지를 설명하는 경우에 "선언형"이라고 한다. 예를 들어, 웹 페이지는 선언형인데 웹페이지는 제목, 글꼴, 본문, 그림과 같이 "무엇"이 나타나야하는지를 묘사하는 것이지 "어떤 방법으로" 컴퓨터 화면에 페이지를 나타내야 하는지를 묘사하는 것이 아니기 때문이다. 이것은 전통적인 포트란과 C, 자바와 같은 명령형 프로그래밍 언어와는 다른 접근방식인데, 명령형 프로그래밍 언어는 프로그래머가 실행될 알고리즘을 명시해주어야 하는 것이다. 간단히 말하여, 명령형 프로그램은 알고리즘을 명시하고 목표는 명시하지 않는 데 반해 선언형 프로그램은 목표를 명시하고 알고리즘을 명시하지 않는 것이다. 여기서 중요한 내용을 간단..
취업을 준비하면서 질문 받았던 기술 면접 리스트들을 정리해서 작성해본다. 면접이 끝나고 기억 나는 질문들을 메모장에 적었지만 다 기억하지 못한거같아 기억나는대로 추가할 계획이다. 기술면접 안드로이드 4대 컴포넌트 Activity - 화면을 관리하는 컴포넌트, 사용자 이벤트 처리를 담당 Service - 백그라운드에서 특정 기능을 수행하는 컴포넌트, 메인 스레드에서 작동하기 때문에 별도 스레드가 필요 Broadcast Receiver - 브로드캐스트 메시지를 처리하는 컴포넌트 Content Provider - 앱 간 데이터 공유를 위한 클래스 제공, URI 액티비티 생명주기 onCreate() - 액티비티 시작될 때, 레이아웃 구성 onStart() - 액티비티 보이기 직전, 브로드캐스트 실행 onResu..
페이징 라이브러리 사용 중 프레임 드랍 이슈를 겪게 되어 작성해본다. 문제점 페이징된 목록들을 스크롤 시 해당 에러를 출력하면서 프레임이 끊기며 스크롤 되는 문제가 발생했다. "Skipped 611 frames! The application maybe doing too much work on its main thread." 시행 착오 먼저 프레임 드랍과 함께 출력된 에러를 보고 메인 스레드에서 너무 많은 작업을 했다길래 페이징 데이터를 UI에 그리는 과정에서 너무 많은 UI 소스 때문에 과부하가 걸린다고 생각했다. (사실 이때부터 페이징 데이터를 로드하는 작업이 너무 많다고 알려주고 있었는데 다르게 생각해버렸다..) 그럴만도 한게 사진처럼 카드뷰 하나에 벡터 이미지와 받아오는 데이터들이 많기도 하고 제작..