본문 바로가기

분류 전체보기134

02 안드로이드 앱의 기본 구조 SDK:Software Development Kit(소프트웨어 개발도구 모음) 맥에서 setting 들어가는 법 :맥에는 setting 버튼이 없다. 왼쪽상단의 android studio-Preferences에 들어가서 폰트 등의 설정을 변경할 수 있다. 02-1 안드로이드 소개 스택:처리해야할 요청을 저장하는 데이터 저장소 또는 버퍼 안드로이드 런타임(Android runtime:ART):앱을 실행함 자바는 개발자가 소스코드 작성하고 컴파일하면 클래스파일이 바로 만들어지고, 그 클래스 파일을 자바가상머신(JVM:java virtual machine)에서 실행함 안드로이드는 자바 클래스를 런타임때 '그대로 실행하지 않고' DEX파일로 컴파일함! 그리고 DEX 파일을 해석하는 'ART(Android run.. 2023. 6. 4.
23. 코루틴을 통한 비동기 처리 참조: 유튜브 디모의 코틀린 코드테스트사이트:play.kotlinlang.org 단축키(맥북): 맥북 스크린샷 바로 클립보드에 붙여넣기 -control+command+shift+3 or 4(3은 전체화면, 4는 마우스로 지정한 영역, 4일때 스페이스바 누르면 창캡처가능) 화면에 분할해놓은 창끼리 이동 -command+' 한 창에서 탭끼리 이동 -command+shift+{/} //비동기로 여러개의 루틴을 동시에 처리할 수 있는 방법 //여태까지 하나의 구문이 끝나면 다른 구문을 실행하는 식으로 //모든 구문을 '동기적'으로 실행함 //하지만 '여러개의 루틴'을 동시에 실행하여 결과를 내고 싶다면? //-->비동기처리를 지원하는 '코루틴(coroutine)' 사용 //코루틴이란? //메인이 되는 메인루틴과.. 2023. 6. 4.
22. 비트연산 참조: 유튜브 디모의 코틀린 코드테스트사이트:play.kotlinlang.org 단축키(맥북): 맥북 스크린샷 바로 클립보드에 붙여넣기 -control+command+shift+3 or 4(3은 전체화면, 4는 마우스로 지정한 영역, 4일때 스페이스바 누르면 창캡처가능) 화면에 분할해놓은 창끼리 이동 -command+' 한 창에서 탭끼리 이동 -command+shift+{/} //비트연산이란? //정수형 변수를 사람이 사용하는 10진법으로 연산하는 대신 //2진법인 비트단위로 연산할 수 있는 기능 //실무에서 비트연산은 거의 계산에는 사용하지 않으며 //(2진법을 이용한 연산 최적화가 필요하다면 대부분 컴파일러 기능을 사용함) //정수형의 값을 비트단위로 나누어 데이터를 좀 더 작은 단위로 담아 //경제.. 2023. 6. 4.
21. 변수의 다양한 사용방법 참조: 유튜브 디모의 코틀린 코드테스트사이트:play.kotlinlang.org 단축키(맥북): 맥북 스크린샷 바로 클립보드에 붙여넣기 -control+command+shift+3 or 4(3은 전체화면, 4는 마우스로 지정한 영역, 4일때 스페이스바 누르면 창캡처가능) 화면에 분할해놓은 창끼리 이동 -command+' 한 창에서 탭끼리 이동 -command+shift+{/} //변수에 대한 몇가지 주의할 내용과 좀 더 다른 방법으로 사용하는 법 알아보자 //var //var은 한번 할당한 객체가 있더라도 다른 객체로 변경하여 할당할 수 있으며 //ex. var a=Person("유나",2003) // a=Person("루다",1997) //val은 한번 객체를 할당하면 다시 할당된 객체를 변경할 수 는.. 2023. 6. 3.
20. 컬렉션함수(2) 참조: 유튜브 디모의 코틀린 코드테스트사이트:play.kotlinlang.org 단축키(맥북): 맥북 스크린샷 바로 클립보드에 붙여넣기 -control+command+shift+3 or 4(3은 전체화면, 4는 마우스로 지정한 영역, 4일때 스페이스바 누르면 창캡처가능) 화면에 분할해놓은 창끼리 이동 -command+' 한 창에서 탭끼리 이동 -command+shift+{/} //나머지 컬렉션 함수 //좀 더 복잡한 기능들 // 2023. 6. 3.
19. 컬렉션함수(1) 참조: 유튜브 디모의 코틀린 코드테스트사이트:play.kotlinlang.org 단축키(맥북): 맥북 스크린샷 바로 클립보드에 붙여넣기 -control+command+shift+3 or 4(3은 전체화면, 4는 마우스로 지정한 영역, 4일때 스페이스바 누르면 창캡처가능) 화면에 분할해놓은 창끼리 이동 -command+' 한 창에서 탭끼리 이동 -command+shift+{/} //여태까지 우리는 컬렉션을 for문으로 반복하여 포함된 아이템을 //하나하나 꺼내 사용했었다 //ex. for(item in collection) //하지만 코틀린은 '함수형 언어'의 특징을 가지고 있기 때문에 좀 더 //편리하게 컬렉션을 사용할 수 있다.-->'컬렉션 함수' //컬렉션함수 //:list나 set, map과 같은 .. 2023. 6. 3.
18. Set과 Map 참조: 유튜브 디모의 코틀린 코드테스트사이트:play.kotlinlang.org 단축키(맥북): 맥북 스크린샷 바로 클립보드에 붙여넣기 -control+command+shift+3 or 4(3은 전체화면, 4는 마우스로 지정한 영역, 4일때 스페이스바 누르면 창캡처가능) 화면에 분할해놓은 창끼리 이동 -command+' 한 창에서 탭끼리 이동 -command+shift+{/} //컬렉션 클래스에는 List, Set, Map 으로 총 세개의 클래스가 있다 //지난시간 list알아봤고 오늘은 Set과 Map에 대해 알아보자 //Set //set은 list와 달리 '순서가 정렬되지 않으며, 중복이 허용되지 않는 컬렉션' //따라서 set은 인덱스로 위치를 지정하여 객체를 참조할 수는 없으며 //contains.. 2023. 5. 31.
17. Data Class와 Enum Class 참조: 유튜브 디모의 코틀린 코드테스트사이트:play.kotlinlang.org 단축키(맥북): 맥북 스크린샷 바로 클립보드에 붙여넣기 -control+command+shift+3 or 4(3은 전체화면, 4는 마우스로 지정한 영역, 4일때 스페이스바 누르면 창캡처가능) 화면에 분할해놓은 창끼리 이동 -command+' 한 창에서 탭끼리 이동 -command+shift //특별한 기능이나 형태를 가진 클래스들을 알아보자 //Data class //:데이터 다루는 데에 최적화된 class, '5가지 기능'을 내부적으로 자동생성함 // 5가지 // -equals():내용의 동일성을 판단 // -hashCode():객체의 내용에서 고유한 코드를 생성 // -toString():포함된 속성을 보기쉽게 나타냄 /.. 2023. 5. 14.
16. 중첩클래스와 내부클래스 참조:유튜브 디모의 코틀린 코드테스트사이트:play.kotlinlang.org 맥북 바로 클립보드에 스크린샷하기 단축키:control+command+shift+4 맥북 탭끼리 이동 단축키:command+shift+{/} //클래스 안에 클래스가 중첩되는 두가지 유형의 클래스 알아보자 //코틀린에서는 기본적으로 클래스 안에 클래스를 하나 더 넣을 수 있는 //중첩클래스(Nested Class)를 지원함 //ex. class Outer{ // class Nested{ // // } // } //중첩클래스는 하나의 클래스가 다른 클래스의 기능과 '강하게 연관'되어 있다는 //의미를 전달하기 위해 만들어진 형식으로, //사용할 때는 외부클래스이름.중첩클래스이름 형태로 사용하게 된다 //ex. Outer.Nest.. 2023. 5. 14.
15. 함수의 argument를 다루는 방법과 infix 함수 참조:유튜브 디모의 코틀린 코드테스트사이트:play.kotlinlang.org *맥북 탭 이동 단축키:command+shift+{/} //함수를 더 다양한 방법으로 사용할 수 있는 여러 기능들 알아보자 //overloading(overriding과 혼돈 유의) //:같은 scope안에서 같은 이름의 함수를 여러 개 만들 수 있는 기능 // 함수 이름이 같더라도 패러미터의 자료형이 다르거나 패러미터의 개수가 다르면 // 서로 다른 함수로 동작할 수 있음 // 다만, 패러미터의 이름만 다르게 붙고, 자료형과 개수가 동일하다면 // ex.fun same(x:Int, y:Int) // fun same(a:Int, b:Int) // 오버로딩을 할 수 없다! fun main(){ read(7) read("감사합니다.. 2023. 5. 14.