/* 본 포스팅은 최호성 저자의 '독하게 시작하는 C프로그래밍' 교재를 참조로 작성되었음을 먼저 알려드립니다. */ 형한정어 volatile을 적용해 변수를 선언하면 변수와 관련된 모든 연산에 대해 컴파일러가 '최적화' 규칙을 적용하지 않는다. 설령 그것이 컴파일러가 판단하기에 전혀 불필요한 연산이라고 해도. 컴파일러의 최적화에 도움을 주는 const와는 정반대의 역할을 수행하는 것으로 봐도 된다. '최적화'를 하지 않는 수준은 CPU 기계 수준까지 적용된다. CPU는 빠른 연산을 위해 캐시(cache)메모리를 사용하는데, volatile로 선언된 변수는 캐시로 처리되지 못한다. 효율은 떨어지겠지만 주기억장치(메모리)에 정말로 정보가 읽고 쓰이는 행위는 보장이되는 셈이다. 비효율적이지만 꼭 해야할 연산이..
/* 본 포스팅은 최호성 저자의 '독하게 시작하는 C프로그래밍' 교재를 참조로 작성되었음을 먼저 알려드립니다. */ 변수의 본질은 메모리이고, 상수의 본질은 메모리에 저장되는 정보 그 자체를 의미한다. 변수와 상수는 기본적으로 수(자료)이므로 모두 자료형 개념이 적용된다. # 형 한정어 const 형한정어 const는 변수를 '상수화'하는 역할을 한다. 변수를 변하지 않는 숫자로 만드는 것이다. 변수의 본질이 메모리임을 생각할 때 쉽게 생각하면 어떤 메모리를 '읽기 전용'메모리로 만들어주는 기능을 제공하는 것이다. 형한정어 const는 중요한 정보가 들어 있는 메모리를 보호하기 위한 것으로도 생각할 수 있다. 그러나 const 예약어는 변수를 선언할 때 사용한다. 즉, 처음에는 쓰기 가능한 변수였다가 몇..
/* 본 게시물은 '핵심만 골라 배우는 안드로이드 스튜디오 & 프로그래밍(Android Studio 2 Development Essentials) | 닐 스미스 지음' 의 내용을 토대로 작성되었습니다. */ # 안드로이드 액티비티 자바, C++, C# 과 같은 객체지향 프로그래밍 언어에 익숙한 사람들은 애플리케이션의 기능을 캡슐화하여 클래스를 만들고, 이것을 객체로 생성하여 애플리케이션을 구성하는 개념을 잘 알고 있을 것이다. 안드로이드 애플리케이션은 자바로 작성되므로 객체지향 프로그래밍을 해야 한다. 그러나 안드로이드는 재사용 가능한 컴포넌트의 개념을 더 높은 수준으로 끌어올렸는데, 그것이 바로 '액티비티(Activity)'다. 안드로이드 애플리케이션은 액티비티라는 컴포넌트가 항나 이상 결합되어 생성된..
/* 본 게시물은 '핵심만 골라 배우는 안드로이드 스튜디오 & 프로그래밍(Android Studio 2 Development Essentials) | 닐 스미스 지음' 의 내용을 토대로 작성되었습니다. */ # 안드로이드 소프트웨어 스택 안드로이드 시스템은 소프트웨어 스택(stack)의 형태로 구성된다. 마치 레고(Lego) 블록을 조립해 층층히 쌓아놓듯이 애플리케이션, 운영체제, 런타임 환경, 미들웨어, 각종 서비스와 라이브러리 등이 겹겹이 모여 구성된 것이라고 볼 수 있다. 이 아키텍처는 아래의 그림과 같이 시각적으로 표현할 수 있다. 스택의 각 계층과 요소는 긴밀하게 통합되어 있다. 그리고 모바일 장치를 위한 최적의 애플리케이션 개발과 실행 환경을 제공하기 위해 신중하게 조율되어 있다. # 리눅스 ..
행복은 단지, 생존을 위해 절대적으로 필요한 정신적 도구일 뿐이다.정서의 본질적 관심사는 행복이 아닌 '생존'이다. 사람들은 보통 행복한 삶이 가장 좋은 삶이라고 생각하는 경향이 있다. 나 또한 행복이 최고의 선이라고, 추구해야할 것이라고 생각하며 살았다. 그러나 왜 행복한 삶을 살아야 하고, 왜 행복을 추구하는지에 대한 질문은 없었다. 그냥 좋으니까 행복은 좋은 거니까 라고 생각했다. 이 책은 행복에 대해 WHY 라는 관점으로 접근한다. 인간은 왜 행복을 느끼고, 왜 행복하고 싶을까? 에 대한 질문을 던지는 것이다. 인간에게 행복은 무엇이란 말인가? 인간이 행복감을 느끼고 그토록 행복을 찾는 이유는 무엇일까? 또한 왜 행복한 감정은 오래가지 못할까? 행복감과 관련 있는 감정들을 떠올려 보자. 기분 좋음..
- Total
- Today
- Yesterday