본문 바로가기

반응형

프로그래밍 서적

윤성우님의 열혈 C 프로그래밍... 처음부터 공부하기 위해, 한달에 한권씩 운영체제부터 공부해보고 있다. 1월에 운영체제를 다 읽지 못해 정리는 못했고, 2월에도 읽으면 늘어질거 같아 우선, 정해놓은 책을 읽고 정리하기로 했다. 열혈 C프로그래밍 책은 예전에 사 놓은 책으로, 처음 다 완독했다...거의 1~년만인듯..하다... 반성중... 책을 일고 나선, 초보자도 쉽게 이해할 수 있는 설명과 예제가 있는 듯하다. 역시 깊게는 들어가지 않지만 쭉 읽기엔 좋은 책으로 생각이 된다. 필자 역시 공부 목적은 기본 개념 위주이기에, 굳이 필요하지 않다고 생각된 부분은 공부하지 않았다. 공부하면서 재밌는 부분이나 생각나는 부분에 대해 적어본 글이 될 것이다. Chapter01 이것이 C언어다 프로그래밍 언어란 컴퓨터와의 대화에 사용되는 일종의 대화.. 더보기
Part1. 운영체제와 컴퓨터(chap 02) Chapter 02 - 컴퓨터의 구조와 성능 향상 컴퓨터는 필수 장치인 CPU(중앙 처리 장치)와 메인메모리, 주변 장치인 입력장치, 출력장치, 저장장치로 이뤄져 있다. 이러한 부품들은 버스로 연결되는데, 여기서 말하는 버스란, 각 장치를 연결하는 선의 집합이자 데이터가 지나다니는 통로를 의미한다. 오늘날의 컴퓨터는 폰노이만 구조를 따르며, "모든 프로그램은 메모리에 올라와야 실행할 수 있다."는 특징을 갖는다. 운영체제의 여러 현상을 돕기 위해 요리사 모형이란 것이 있는데, 요리사는 CPU, 도마는 메모리, 보관 창고는 저장장치에 비유되며, 보관 창고에 있는 재료를 도마로 옮기는 주방 보조와 채소를 다듬거나 하는 등의 보조 요리사도 있다. 즉, 요리 방법을 결정하는 것은 운영체제의 프로세스를 관리하는 .. 더보기
Part1. 운영체제와 컴퓨터(chap 01) 올해는 공부를 좀 해보자. 개발과 관련된 글은 미디움에, 지식 및 정리는 티스토리에 쓸 예정이다. 차근차근 책을 읽고 정리하자. 제발 올해는 꼭 기본 지식 쌓기에 성공하자!!!! 올해 목표 다 이루기!!! Chapter 01 운영체제의 개요 운영체제는 윈도우, 맥, 유닉스, 리눅스, iOS, Android 등을 일컫는 말이며, MP3, 스마트폰, 전자사전 등에도 운영체제가 있다. 컴퓨터는 운영체제가 없어도 잘 동작하지만, 없는 컴퓨터는 만들 당시에 구현한 기능 외 아무것도 수행할 수 없다. 운영체제가 있다면, 기능을 추가하거나 성능 향상, 자원 관리 등을 기대할 수 있다. 운영체제의 역할 중 하나인 자원관리는 우리가 흔히 들어본, 인터페이스(interface)"라는 것을 통해 진행되는데, 자원(HDD, .. 더보기
2. Observable 처음 만들기 Observable은 데이터 흐름에 맞게 알림을 보내 구독자가 데이터를 처리할 수 있도록 함.(RxJava에서 정말 중요한 개념)Observable class와 그의 파생 클래스에 대해 알아보는 챕터(Observable, Maybe, Flowable class) 2.1 Observable class옵서버(Observer) 패턴을 구현하며 이는 객체의 상태 변화를 관찰하는 관찰자(옵서버) 목록을 객체에 등록합니다. 상태 변화가 있을 때마다 메서드를 호출하여 객체가 직접 목록의 각 옵서버에게 변화를 알려줍니다.Observable은 "현재는 관찰되지 않지만 이론을 통해서 앞으로 관찰할 가능성을 의미"한다.버튼 클릭 시 원하는 처리를 하는 것 역시 옵서버 패턴의 대표적인 예RxJava의 Observable은 세.. 더보기
1. 리액티브 프로그래밍 소개 너무나도 대세가 되고 너무나도 많이 쓰는 ReactX Java 를 이제나마 공부하려 합니다. 늦은감이 없지않아 있지만, 제 경력을 생각하면 적기?인거같기도 하네요. (아직 1년차를 향해 달려가는 주우우우우우우우우우니어니까요!ㅋㅋ) 이제부터 RxJava 보라돌이 책을 보고 정리해가며 공부를 시작하겠습니다. 1.1 리액티브 프로그래밍 데이터 흐름과 전달에 관한 프로그래밍 패러다임 기존 명령형(imperative) 프로그래밍은 절차에 따라 순서대로 실행 => 이벤트 변경 시 새로 계산하는 "Pull" 방식 데이터 흐름을 먼저 정의하고 데이터가 변경되었을 때 연관되는 함수나 수식이 업데이트 되는 방식 => 이벤트 변경 시 데이터를 밀어주는 "Push" 방식(일종의 "옵서버" 패턴) 1.1.1 자바 언어(객체지향.. 더보기
깡쌤의 코틀린 프로그래밍 05장 05장 - 데이터 타입 기초 데이터 타입- 숫자 타입(Int, Long, Short, Double, Float)데이터 타입을 명시할 때, 자바에서는 int, double 등의 기초 타입과 Integer, Double 등의 래퍼(Wrapper) 클래스로 구분해서 사용하지만, 코틀린에서는 기초 타입 자체가 없고 모든 것은 객체(Object)입니다.코틀린 타입 : Int, Double, Float, Long, Short, Byte, Char, Boolean, String, Any, Unit, Nothing숫자 타입의 규칙1. Decimals, Hexadecimals, Binaries 값 대입 가능2. Long 형은 값 뒤에 'L' 사용3. 실수 기본 형은 Double4. 실수형은 10.0e2로도 표현 가능5... 더보기
깡쌤의 코틀린 프로그래밍 04장 04장 - 변수와 함수 변수 선언 및 초기화- 변수 선언법 : val(or var) 변수명 : 타입 = 값코틀린은 mutable 과 immutable을 구분하기 때문에 변수 역시 var(variable)과 val(value)이 있습니다.코틀린에서는 "타입 추론" 이라 하여, ":타입"을 명시하지 않아도 알아서 값을 유추해 값에 맞는 타입을 적용합니다. - 변수 초기화 : 코틀린에서 변수 선언은 최상위(class 외부), class 내부, 함수 내부에 할 수 있습니다.변수는 자동으로 초기화 되지 않으므로 직접 초기화한 다음에 사용 가능! - null이 될 수 있는 변수와 null변수의 값이 로직이 수행되어야지만 산출되는 경우엔 미리 null값으로 초기화 후 대입해서 사용할 수 있습니다.하지만, null로 .. 더보기
깡쌤의 코틀린 프로그래밍 03장 03장 - 코틀린 기본 작성법 코틀린 파일 정의- 코틀린 파일을 만들 때 일반 파일(File)과 클래스 파일(class)의 차이, 규칙 등은 없습니다. - 다만 코틀린은 확장자가 kt인 것만 기억하시면 됩니다. 파일의 구성 요소- 클래스로만 표시하는게 아닌, 변수와 함수로만으로도 구성 가능 패키지- 패키지란 관련된 클래스들을 묶기 위한 "물리적인 개념(실제 클래스가 위치하는 폴더를 의미)".- 패키지의 이름을 변경해서 임포트가 가능!!!ex) import java.util.Date => val date = Date()==>> import java.util.Date as OtherDate => val otherDate = OtherDate() (이 기능은 참 좋네요..) 더보기
깡쌤의 코틀린 프로그래밍 02장 02장 - 코틀린 개발환경 IntelliJ, Android Studio, , Eclipse, CLI(Command Line Interface) 개인적으로 Android Studio가 제일 편합니다.. 가장 대중적으로 많이 쓰이기도 하고 가장 중요한 무료이며, 관리가 쉽습니다. CLI는 안써봤고, IntelliJ는 유료, Eclipse는..... 너무 제 스타일이 아니라 한달? 써보고 안쓰네요... 결론은 Android Studio!!! 더보기
깡쌤의 코틀린 프로그래밍 01장 01장 - 코틀린 이해하기 코틀린의 특징1. 자바, 안드로이드 100% 호환2. 자바, 안드로이드, 브라우저, 네이티브 앱 개발3. intelliJ, 안드로이드 스튜디오, 이클립스 등을 통한 개발4. Null 안정성 : Null에 대한 다양한 처리 기법을 제공함으로써 Null관련 부분을 좀 더 쉽게 개발 할 수 있음5. 확장 함수 : oop의 이점 중 하나가 class를 상속하여 하위 class에서 기능을 확장할 수 있다는 점. 하지만, 많은 서브 class들이 만들어 진다는 단점!!! 코틀린에서도 oop와 상속에 의한 서브 class작성을 제공하지만, 상속을 통하지 않고 "함수 확장(Extension)"을 통해 기존 class의 기능을 쉽게 추가할 수 있는 방법을 제공!6. 함수형 프로그래밍 : 람다 .. 더보기