2년 정도 전에 노트북을 바꿨었는데 더 높은 사양의 노트북이 필요하게 되어 변경했습니다. 노트북 브랜드를 LG 그램, 레노버만 써봤는데 레노버 노트북의 만족도가 높아서 그런지 이번에도 레노버를 선택했습니다. ...
책 추천 - 균현 잡힌 뇌, 권택영
오랜만에 카타르시스를 느끼게 하는 책을 읽었습니다. 많은 것에 공감했고, 지식적으로도 배울 수 있었습니다. 대부분의 책이 보통 무 자르듯이 장르가 나뉜다고 생각하는데, 지식을 전달하면서도 어떻게 이렇게 감정까지 건드릴 수 있는지 책의 내용에 알맞게 내공이 장난아니십니다. ...
동물의 왕국에 대하여...
최근 며칠간 서울 오가면서 고속버스를 몇 번 탔습니다. 왜 그런지는 모르겠지만 고속버스를 타면 늘 KBS 1TV를 틀어 놓으시더라고요. 오가는 시간대가 저녁 6시에 주로 물려있어서 오랜만에 동물의 왕국을 봤습니다. ...
45회차 CPPG 개인정보관리사 시험 후기
8월 24일에 부산에서 시험을 보고 왔습니다. 이정도 준비하면 합격하겠다~ 싶은 정도를 100이라고 치면 이번에는 110을 준비해서 갔습니다. 이번에도 떨어지면 다시 응시를 하지는 않을 것 같더라고요. ...
CPPG 개인정보관리사 시험
이번 달에 있는 CPPG 시험을 준비하고 있습니다. 공공기관을 몇 년째 다니다 보니 좀 무료해서 외부 평가할 수 있는 자격증을 찾고 있던 와중에 ISMS-P라는 자격증을 알게 되었습니다. 하지만 해당 시험에 응시하려면 개인정보 관련 경력이 필요한데, 저는 없습니다 ㅜ CPPG로 해당 경력을 대체할 수 있다고 해서 따려고 합니다. ...
행동은 불안을 이긴다 - 롭 다이얼
동기부여가 필요해서 오랜만에 자기 개발서를 읽었습니다. 이따금씩 읽는 건 괜찮네요. 제가 느낀 바는 3개입니다. 1. 일단 움직여라. 2. 지속할 수 있는 시스템을 고민하라. 3. 이 여정에 끝은 없다. 그러니 과정에서 재미를 찾아라.
안드로이드 앱 프로그래밍 with 코틀린 - 5. 코틀린의 유용한 기법
5. 코틀린의 유용한 기법 5.1 람다 함수와 고차 함수 람다 함수 익명 함수 정의 기법 필요시 참고하는 것이 나음, 내용이 너무 자잘하다 고차 함수 함수를 매개 변수나 반환값으로 사용 5.2 널 안정성 엘비스 연산자 ?: 변수가 null 일 때 대입해야 하는 값이나 실행해야 하는 구문 예외 발생 !! 필요에 따라 null인 경우 exception을 발생해야 할 때
안드로이드 앱 프로그래밍 with 코틀린 - 4. 코틀린 객체지향 프로그래밍
4. 코틀린 객체지향 프로그래밍 4.1 클래스와 생성자 클래스 선언만 하는 것도 가능 1 class User 클래스 생성에 new 키워드 사용하지 않음 주 생성자 클래스 선언부에 선언 constructor 생략 가능 init 키워드를 통해 로직 수행 가능 유일하게 매개변수에 val, var 키워드를 사용할 수 있음 ~= 그러면 자동적으로 멤버변수가됨 객체 생성의 메인 로직을 담당하는 편 보조 생성자 본문에 constructor로 선언 주 생성자가 있다면 무조건 호출해 주어야 함 1 2 3 4 class User(name: String) { constructor(name: String, count: Int): this(name) { } } 4.2 클래스를 재사용하는 상속 상속과 생성자 상위 클래스의 생성자를 어떻게든 호출해야한다. 1 2 3 4 5 open class Super(name: String) { } class Sub(name: String): Super(name) { } 오버라이딩 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 open class Super { open var someData = 10 open fun someFun() { println("I am super class function: $someData") } } class Sub: Super() { override var someData = 20 override fun someFun() { println("I am sub class function: $someData") } } fun main() { var obj = Sub() obj.someFun() // 출력 // I am sub class function: 20 } 접급 제한자 ...
안드로이드 앱 프로그래밍 with 코틀린 - 3. 코틀린 시작하기
3. 코틀린 시작하기 3.1 코틀린 언어 소개 표현력과 간결함 안전한 코드 nullable, not null 타입뒤에 ?로 표시 자바와의 상호운용성 구조화된 동시성 coroutine 코틀린 파일 구성 package: 컴파일시 만들어지는 클래스 파일의 경로 같은 package를 사용하면 import 없이 사용가능 자바와 달리 파일명도 클래스명과 일치할 필요 없음 3.2 변수와 함수 var말고 val 이라는 키워드도 존재함. 값 할당 후 수정 불가 타입지정 가능 최상위에 선언한 변수나 클래스의 멤버 변수는 선언과 동시에 초기화 해야함 초기화 지연 가능 lateinit: var 변수에만 가능. 숫자+Boolean 타입에는 불가 lazy 1 2 3 4 val data4: Int by lazy { println("in lazy...") 10 } 코틀린의 모든 변수는 객체 삼중 따옴표에는 trimIndent()가 자동으로 적용됨 Unit 타입: 반환문이 없는 함수에 사용 Nothing: null이나 예외를 반환하는 함수 함수 선언하기 함수의 매개변수는 val 키워드가 자동 적용 명명된 매개변수 지원 컬렉션 타입 기초 타입 Array도 별도로 존재 3.3 조건문과 반복문 if-else를 표현식(결과값을 반환하는 계산식)으로도 사용 가능 when 이라는 조건문도 존재. 마찬가지로 표현식으로 사용 가능 for, while이 있고, for 문에서 보통 범위 연산자 in 사용
안드로이드 앱 프로그래밍 with 코틀린 - 2. 안드로이드 앱의 기본 구조
2. 안드로이드 앱이 기본 구조 2.1 안드로이드 소개 안드로이드 런타임(Dalvik – (안드로이드 버전 5.0) –> ART(Android RunTime)) dex파일(앱파일) 해석하여 실행 2.2 안드로이드 앱 개발의 특징 생명주기를 안드로이드에서 관리하면 컴포넌트, 개발자가 관리하면 일반 클래스임 안드로이드 컴포넌트는 4종류 액티비티: 화면구성(화면 1개 담당) 서비스: 백그라운드 콘텐츠 프로바이더: 앱간 데이터 공유 브로드캐스트 리시버: 시스템 이벤트 수신 애플리케이션 라이브러리를 사용할 수 있음 리소스 xml 파일로 등록하여 사용 2.3 앱 구성 파일 분석 하나의 모듈 ~= 하나의 앱 build.gradle.kts (빌드 설정 파일) gradle: 안드로이드 빌드 도구 AndroidManifest.xml (메인 환경 파일) 속성값이 @로 시작하면 리소스 시스템은 매니페스트에 있는 대로 앱을 실행 ~= 컴포넌트를 매니페스트에 등록해야 한다. (Activity, Service, Receiver, Provider, name 속성은 필수) 태그는 액션별 실행 정의 res 폴더 (리소스) drawable: 이미지 layout: UI 구성에 필요한 xml mipmap: 앱 아이콘 values: 값 리소스 R.java 파일에 상수 변수로 자동등록 지정된 방식으로만 사용됨 activity_main.xml (기본 레이아웃 파일) MainActivity.kt (메인 액티비티) MainActivity 클래스가 실행되면 onCreate() 호출됨