일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Rxjava Observable
- android ar 개발
- 안드로이드 os 구조
- 안드로이드 유닛 테스트 예시
- rxjava cold observable
- rxjava hot observable
- 안드로이드 유닛테스트란
- 자바 다형성
- jvm 작동 원리
- 스택 큐 차이
- 안드로이드 레트로핏 crud
- 서비스 vs 쓰레드
- 플러터 설치 2022
- 2022 플러터 안드로이드 스튜디오
- 객체
- 스택 자바 코드
- jvm이란
- ANR이란
- ar vr 차이
- 안드로이드 레트로핏 사용법
- 안드로이드 라이선스
- 멤버변수
- 안드로이드 라이선스 종류
- 서비스 쓰레드 차이
- 큐 자바 코드
- android retrofit login
- 안드로이드 유닛 테스트
- 2022 플러터 설치
- 클래스
- rxjava disposable
- Today
- Total
목록책 (106)
나만을 위한 블로그
컴퓨터 구조, 운영체제에 대해 공부하기 전에 좀 가볍게 읽을 수 있어서 기반 지식 쌓기 좋은 책이 있나 싶어서 서점에서 이것저것 보다가 발견한 책이다. 비전공자라서 컴퓨터 구조와 운영체제는 듣자마자 이해하기 어려워 보이는 단어라고 생각했는데, 이 책은 이것들을 이해하기 쉽게 풀어썼다고 생각한다. 그 정도로 읽는데 딱히 막힘이 없었다. 그림도 많이 들어 있어서 내용과 번갈아 보면서 생각하면 곧잘 이해되는 부분들도 많았다. 컴퓨터 구조와 운영체제 한 번 공부해 보겠다고 곧바로 두꺼운 책부터 들이대다가 나가떨어지는 사람이 있을지도 모르겠다. 그런 사람이라면 이 책부터 시작하는 것도 좋은 방법일 것 같다. 유튜브로 강의도 제공하니 책+강의를 같이 보는 사람이라면 더 좋지 않을까 싶다.
코틀린 공식문서 중 코루틴 문서가 마지막으로 수정된 날짜가 작년인 22년 10월 18일이다. 깃허브 기준 kotilnx.coroutines는 2017년부터 여러 요소가 추가되었고 올해 7월에도 1.7.3 버전이 릴리즈됐다. 그러나 코루틴에 관한 책은 괜찮아 보이거나, 읽어보고 싶은 마음이 동하는 책이 전혀 없었다. 외국도서로 눈을 돌리면 22년에 발간된 책이 있긴 하지만, 영어 이슈와 목차를 확인할 수 없는 등의 이슈로 사지 않았다. 그래도 잘 설명된 국내, 해외 블로그들이 많이 있어서 이 블로그들을 참고하며 코루틴을 사용하고 공부하던 와중에, 드디어 코루틴을 주제로 다루는 책이 발간됐다. 총 페이지 수는 464p로 적은 양은 아니지만 많은 양도 아닌 적당한 두께다. 담배갑보다 2미리 정도 더 높다. 목..
RAM의 특징, 종류 RAM의 특징 실행할 프로그램의 명령어, 데이터가 저장됨. 전원을 끄면 RAM에 저장된 것들이 모두 날아감 전원을 끄면 저장된 내용이 사라지는 저장장치 : 휘발성 저장 장치 전원이 꺼져도 저장된 내용이 유지되는 저장장치 : 비휘발성 저장 장치 (HDD, SSD, CD-ROM, USB 등) 보조기억장치는 전원을 꺼도 내용을 유지하지만 CPU는 보조기억장치에 직접 접근할 수 없음 그래서 일반적으로 비휘발성 저장 장치에는 보관할 대상을 저장하고, 휘발성 저장장치에는 실행할 대상을 저장함 CPU는 실행하려는 프로그램이 보조기억장치에 있다면 RAM으로 복사해서 저장한 뒤 실행 RAM의 용량, 성능 RAM 용량이 적으면 보조기억장치에서 실행할 프로그램을 가져오는 일이 잦아 실행 시간이 길어진다..
빠른 CPU를 위한 설계 기법 클럭 빠른 CPU를 설계하려면 어떻게 설계해야 하는가? 컴퓨터 부품들은 클럭 신호에 맞춰 움직이고, CPU는 명령어 사이클에 맞춰 명령어들을 실행한다. 클럭 신호가 빠르게 반복되면 CPU를 비롯한 컴퓨터 부품들은 그만큼 빠른 박자에 맞춰 움직일 것이다. 즉 클럭 속도가 높아지면 CPU는 명령어 사이클을 더 빠르게 반복할 거고 다른 부품들도 더 빠르게 작동할 것이다. 클럭 속도는 헤르츠(Hz) 단위로 측정한다. 이건 1초에 클럭이 몇 번 반복되는지를 나타낸다. 클럭이 1초에 100번 반복되면 CPU의 클럭 속도는 100Hz다. 기본 속도가 2.5GHz, 최대 속도가 4.9GHz라면 1초에 기본적으로 25억 번, 순간 최대 49억 번 반복된다는 뜻이다. 그러나 클럭 속도를 무작..
ALU : 계산하는 부품. 계산하기 위해 피연산자, 수행할 연산이 필요. 그래서 레지스터를 통해 피연산자를 받고 제어장치를 통해 수행할 연산을 알려주는 제어 신호를 받음 연산 수행 결과는 특정 숫자, 문자가 될 수도 있고 메모리 주소가 될 수도 있다. 이 결과는 바로 메모리에 저장되지 않고 잠깐 레지스터에 저장된다. CPU가 메모리에 접근하는 속도가 느리기 때문에 프로그램 실행 속도가 느려질 수 있어 레지스터에 저장한다. 플래그 : 연산 결과에 대한 추가적인 상태 정보. ALU가 내보내는 대표 플래그는 아래와 같다. 플래그들은 플래그 레지스터에 저장된다. 부호 플래그 제로 플래그 캐리 플래그 오버플로우 플래그 인터럽트 플래그 슈퍼바이저 플래그 제어장치 제어장치 : 제어 신호를 내보내고 명령어를 해석하는 ..
모든 코드는 컴퓨터 안에서 명령어로 바뀐다. 컴퓨터는 C, CPP, 자바, 파이썬 등 언어를 이해할 수 없다. 프로그래밍 언어는 사람이 이해하고 작성하기 쉽게 만들어진 언어다. 컴퓨터는 이 언어를 이해하지 못한다. 사람을 위한 언어 : 고급 언어 컴퓨터가 직접 이해, 실행할 수 있는 언어 : 저급 언어 저급 언어는 기계어, 어셈블리어로 나뉜다. 기계어 : 0, 1로 이뤄진 명령어 모음. 컴퓨터만을 위한 언어라서 사람은 의미를 이해하기 어려움 어셈블리어 : 기계어가 사람이 이해하기 어려워서 만들어진 언어 어떤 개발자를 희망하냐에 따라 저급 언어의 중요성이 달라진다. 임베디드 개발자, 게임 개발자, 정보 보안 분야 개발자는 하드웨어와 밀접하게 닿아 있어서 어셈블리어를 많이 쓴다. 컴파일 언어, 인터프리터 언..
0과 1로 숫자를 표현하는 방법 정보 단위 컴퓨터는 0, 1만 이해한다. 이 두 숫자를 나타내는 가장 작은 정보 단위는 비트다. 1비트는 0, 1 두 가지 정보를 표현할 수 있다. 1비트는 2개, 2비트는 4개, 3비트는 8개의 정보를 표현할 수 있어서 n비트는 2^n개의 정보를 표현할 수 있다. 비트가 8개 모이면 1바이트(byte)다. 즉 1바이트는 2^8 = 256개의 정보를 표현할 수 있다. 1바이트를 1,000개 묶으면 1KB 1KB를 1,000개 묶으면 1GB 1GB를 1,000개 묶으면 1TB가 된다. 1KB를 1,024byte, 1MB를 1,024byte로 표현하는 것은 잘못된 관습이다. 1,024개를 묶어서 표현할 경우 KiB, MiB 식으로 기존 단위 사이에 소문자 i를 끼워넣는다. 이..
컴퓨터 구조를 알아야 하는 이유 컴퓨터 구조는 실력 있는 개발자가 되려면 반드시 알아야 하는 기본 지식이다. 컴퓨터 구조를 이해하면 문제 상황을 빨리 진단할 수 있고 문제 해결 실마리를 다양하게 찾을 수 있다. 컴퓨터 내부를 들여다보며 더 좋은 해결책을 고민할 수 있다. 이런 사고가 가능한 사람들에게 컴퓨터는 분석의 대상이기 때문이다. 서버 컴퓨터를 사야 하는 경우 뭘 사느냐에 따라 CPU, 메모리, 성능, 용량, 비용이 다양하다. 항상 비싼 게 좋지는 않다. 돈이 많이 깨진다. 그렇다고 너무 싼마이를 고르면 트래픽이 튈 경우 처리할 수가 없다. AWS 등 클라우드 서비스를 써도 이 고민은 피할 수 없다. 어떤 부품을 쓸 것인지 잘 선택해야 한다. 내가 개발한 프로그램이 어떤 환경에서 어떻게 작동하는지는..
코틀린 컴파일러를 만든 사람이 쓴 책이다. 내가 산 책은 코틀린 1.3까지 대응하는데 현재 인터넷 서점에선 1.7까지 대응한다고 표지에 써 있다. 목차 상으로는 구버전과 별 차이 없지만 그래도 기왕 산다면 가장 최신 버전을 다루는 책을 사는 게 좋다. 코틀린을 만든 철학 소개로 시작해서 변수 선언, if식, for문, 클래스, 인터페이스 같은 기본 문법부터 시작해서 람다식과 고차 함수, 제네릭, DSL 등을 다루는 코틀린 기본서다. 개인적으로 코틀린을 공부할 건데 책을 보며 공부하겠다면 이펙티브 코틀린과 더불어 강력 추천하는 책이다. 번역도 이건 무슨 번역이야 생각되는 부분 없이 깔끔하게 잘 번역됐고, 코틀린을 배우려는 사람들에게 가장 필요한 것들을 소개하고 다루기 때문이다. 이펙티브 코틀린은 코틀린을 ..
제네릭 타입 파라미터 제네릭을 쓰면 타입 파라미터(type parameter)를 받는 타입을 정의할 수 있다. 제네릭 타입 인스턴스를 만들려면 타입 파라미터를 구체적인 타입 인자(type argument)로 치환해야 한다. List라는 타입이 있다면 그 안에 들어가는 원소 타입을 알면 쓸모있을 것이다. 타입 파라미터를 쓰면 "이 변수는 리스트야"라고 말하는 대신 정확하게 "이 리스트는 문자열을 담는 리스트야"라고 말할 수 있다. 코틀린에서 문자열을 담는 리스트를 표현하는 구문은 자바와 같이 List이다. 클래스에 타입 파라미터가 여럿 있을 수도 있다. Map 클래스는 키, 값 타입을 타입 파라미터로 받으므로 Map가 된다. 코틀린 컴파일러는 보통 타입과 마찬가지로 타입 인자로 추론할 수 있다. val a..