/* 본 게시물은 '핵심만 골라 배우는 안드로이드 스튜디오 & 프로그래밍(Android Studio 2 Development Essentials) | 닐 스미스 지음' 의 내용을 토대로 작성되었습니다. */ # Activity 클래스 거의 예외 없이 애플리케이션의 액티비티들은 안드로이드 Activity 클래스 또는 Activity 클래스의 서브 클래스인 다른 클래스(예를 들어, 하위 버전과의 호환성을 고려하여 만든 AppCompatActivity 또는 FragmentActivity) 중 하나의 서브 클래스로 생성된다. 안드로이드 앱은 액티비티가 근간이 되며, 액티비티는 리눅스 커널의 프로세스로 실행된다. 그리고 하나의 UI (=단위 기능의 화면)를 갖고 처리한다. 필요하다면 하나의 앱에서 여러 개의 액티..
안드로이드 스튜디오 기본(default)설정에서는 폰트 크기 조절에 대한 단축키가 존재하지 않습니다. 그래서 저는 직접 단축키를 설정하는 방법을 택했습니다. File -> Settings 에 들어가신 후, Keymap 을 눌러주신 후 검색창에 font를 검색하시면 아래와 같은 화면이 등장합니다. 나머지 절차는, 단축키를 추가하고 싶은 기능에 마우스 우측클릭을 하시면 설정할 수 있는 화면이 등장합니다. 우리가 게임에서 키보드 셋팅을 하듯, 원하시는 키를 눌러주시면 됩니다. 이 때 해당 단축키가 이미 존재할 때 밑에 경고와 함께 사용 중인 단축키의 목록이 나오므로 그런 것들만 피해서 설정해주시면 됩니다. Shift + Minus, Shift + Plus 와 같은 경우 중복되는 것이 없어 잘 설정이 된 상태입..
/* 본 게시물은 '핵심만 골라 배우는 안드로이드 스튜디오 & 프로그래밍(Android Studio 2 Development Essentials) | 닐 스미스 지음' 의 내용을 토대로 작성되었습니다. */ # 안드로이드 애플리케이션과 액티비티 생명주기 안드로이드 애플리케이션은 액티비티나 서비스 및 브로드캐스트 수신자의 형태로 된 여러 컴포넌트로 구성된다. 날이 갈수록 모바일 장치의 메모리나 컴퓨팅 능력이 향상되고 있다. 그러나 데스크톱 시스템에 비해 여전히 제한된 리소스를 고려해야 한다. 특히, 메모리가 그렇다. 따라서 안드로이드 시스템에서는 그런 제한된 리소스를 효율적으로 관리해야 한다. 운영체제와 애플리케이션 모두에서 그렇다. 그러면서 항상 사용자에게 응답할 수 있어야 한다. 따라서 안드로이드 시스..
/* 본 포스팅은 최호성 저자의 '독하게 시작하는 C프로그래밍' 교재를 참조로 작성되었음을 먼저 알려드립니다. */ 함수의 이름도 배열의 이름처럼 주소상수에 부여한 식별자다. 그러므로 포인터 변수(함수 포인터)에 담을 수 있는 정보다. 만일 함수의 매개변수 구성을 알고 있고 이름 대신 주소를 알고 있다면 함수를 호출하는 데 전혀 문제가 없다. 같은 원리로 다른 함수에 내가 만든 함수의 주소를 알려줘서 호출하도록 코드를 만들 수도 있다. 함수라는 것은 결국 기계어로 번역이 되어 메모리 어딘가에 저장이 될텐데, 쓰기는 안되고 읽기와 실행만 되게끔 구성되어 있다. 인위적으로 쓰기가 가능하게끔 만들 수도 있지만 기본적으로는 쓰기 변조를 차단하고 있다. # 성능 향상을 위한 이론 함수를 호출하려면 비용(CPU +..
/* 본 포스팅은 최호성 저자의 '독하게 시작하는 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