레이블이 Book인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Book인 게시물을 표시합니다. 모든 게시물 표시

2016년 9월 10일 토요일

[세상을 뒤흔든 프로그래머들의 비밀] 1. 로드 존슨

Rod Johnson
인터뷰 1. 스프링 프레임워크의 창시자 - 로드 존슨

소개
  •  컨설팅 및 테크놀로지 기업을 성공적으로 운영
  • 핵심 기술 - 스프링 프레임워크 는 [Expert One-on-One J2EE Design and Development(Wrox, 2002)]에 사용된 예제에서 시작된 소프트웨어이다.
  • 19세기 피아노 음악 박사학위, C++, Java 개발자

비기술적 자질
  • 정도와 사도에 관해
로드 :  <중략>... 정도라함은 그것이 쉽고 또 자연스럽기 때문입니다. 만약 자연스럽지 못하다면 코드 이전의 환경적인 문제가 존재할지도 모른다는 이상 신호지요.

  • 최신 기술 동향
로드 :  Serverside, InfoQ와 같은 포럼을 살펴보는데 항상 적절한 시간을 배분하고 있어요.
<중략>...

  • 기사를 읽을 때 이해를 돕기 위해 SQ3R 기법을 활용하고 있습니까?
로드 :  추상화 수준을 달리하면서 읽으려고 노력합니다. ..<중략>... 어떠한 정보를 접 할 때 작용하는 저만의 프로세서라 할 수 있겠네요.

  • 자바를  선택해야겠다고 결심하게 된 배경은 무엇인가요?
로드 : 자바로 애플릿 구현(1996년),<중략>간혹 저에게 조언을 해주던 한 동료로 인해 자바가 하나의 진정한 언어라는 것을 깨달았습니다.<중략> 1.1 이전의 자바를  C++와 비교하면 언어라고 하기 힘든 수준이었죠.

  •  자바의 어떤 면이 더 나은언어라 말씀하시는 건가요?, 링커나 단순화된 문법도 지원되지 않았는데요.
로드 : 문제를 일으킬만한 기능을 제거해 버렸다는 사실. 그로 인해 언어가 한결 나아졌어요.

  • 그렇군요. 다중 상속과 포인터를 제거해 버린 것 말이죠.
로드 :  그 전에는 없어도 될까 하는 의구심이 앞섰던 게 사실이죠. 또 어떻게 보면 왠지 어려운 것이 더 좋을 것이라는 생각도 그 배경에 있었던 것 같습니다.

  • 자동 가비지 컬렉션은 어떻게 보십니까
로드 : 전체 패키지의 일부 기능이죠. 가비지 컬렉션 관련 문제나 메모리 관리 문제로 어려움을 겪었던 기억은 거의 없습니다. 보통 문제라고 인식하지 못하는 범주의 문제들이 있습니다. 하지만 이 범주의 문제들을 제거하는 순간 엄청난 능률 향상을 얻게 됩니다.
생각해 볼꺼리. 다중상속을 제거해야 되는 이유에 대해 찾아보기

  • 이 경우 개발자들이 선언이나 Try, Throw, 예외 검출을 하면서 보내는 시간을 인식하고 있지 않다는 말인가요?
로드 : 저도 시간 사용에 대한 지각이 미미한 수준이기는 하지만 평균치 이상이라고 생각하고 있습니다. 이 작은 차이만으로도 많은 이득을 얻어 왔다고 생각합니다.

  • 시간을 어떻게 보내고 있는가에 관한 자각이 소프트웨어 개발자에게 있어서 중요한 특성이군요. 또 다른 면으로는 무지가 있을 텐데요. 자신의 무지에 대한 인식의 중요성에 대해서는 어떻게 생각하시죠?
로드 : 도움을 청해야 할 적절한 시기를 판단할 수 있어야 하기 때문입니다. 
도음을 받는 방법으로는 기술 지원 부서에 전화를 하거나 동료 또는 선/후배의 지원, 포럼에서 질의하는 방법 등이 있겠죠. 소프트웨어 산업에 종사하는 한 교묘하게 계속 고난을 회파하는 것은 불가능합니다.
<중략>
일종의 자기도취에 빠져서 자신도 한계가 있다는 것을 인지하지 못하고 있었습니다. 그 결과 그들은 이상한 일들을 서슴없이 하고 기본적으로 자신의 무지에 절대 맞서려 하지 않습니다.
 우선, 자신의 한계점을 모른 채 무엇을 개선할 수 있겠습니까? 나에게 부족한 것이 무엇인지 모른다면 아무것도 배울 수 없을 거라는 말입니다.





2016년 4월 11일 월요일

[인사이드 안드로이드] 1. 안드로이드 프레임워크 개요




안드로이드 구조 - 한글
android structure








  • 프레임 워크를 이해하면 좋은점 
    • 구조와 동작원리 파악 -> 안드로이드 프레임워크에 최적화된 S/W설계 가능


<안드로이드 주요 소스코드 구성>

  1. Kernel  
    • 안드로이드 리눅스 커널
  2. Bionic 
    • 인드로이드 표준 C 라이브러리
  3. Bootloader 
    • 참고용 안드로이드 부트로더
  4. Build 
    • 안드로이드 빌드 시스템
  5. Cts
    • 안드로이드 호환성 테스트 관련 소스
  6. Dalvik 
    • 달빅 가상머신
  7. External
    • 안드로이드에서 사용하는 오픈 소스
  8. Framework
    • 안드로이드 프레임워크
  9. Hardware
    • 안드로이드 HAL(Hardware Abstraction Layer) 소스
  10. Packages 
    • 안드로이드 기본 어플리케이션, 컨텐트 프로바이더 등..
  11. System 
    • 안드로이드 init 프로세스, 블루트스 도구 모음 등..


<안드로이드 부팅 과정>




Step으로 분류

Linux(embedded system) VS Android VS Linux comparing



  1. 리눅스 커널
    • 안드로이드 - 리눅스 기반 플랫폼
  2. init
    • init프로세스 - 각종디바이스 초기화, 안드로이드 프레임워크 동작에 필요한 각종 데몬, 컨텍스트 매니저, 미디어 서버, Zygote등을 실행하는 프로세스
  3. 컨텍스트 매니저
    • 프로세스, 시스템 서비스 관리(안드로이드의 시스템 서비스)
      • 모든 시스템 서비스는 부팅시 자신의 핸들정보를 컨텍스트 매니저에 등록해야 됨
    • 프로세스간 통신 - IPC(Inter-Process Communication) 바인더
  4. 미디어 서버
    • C/C++ 기반으로 작성돼 있는 네이티브 시스템 서비스를 실행하는 역할
      • ex) Audio Flinger(오디오 출력담당), Camera
  5. Zygote
    • 애플리케이션의 로딩시간을 단축시키기 위한 목적으로 사용됨
    • 자바기반 앱은 Zygote를 통해 fork된 프로세스 상에서 동작
  6. 시스템 서버
    • Zygote에서 최초로 fork된 애플리케이션 프로세스
    • 자바시스템 서비스를 실행하는 역할


리눅스 부팅과정
http://www.linuxlab.co.kr/docs/5-2.htm

http://else102.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EC%A0%84%EC%B2%B4-%EB%B6%80%ED%8C%85%EA%B3%BC%EC%A0%95%EC%9D%98-%EC%9D%B4%ED%95%B4


[인사이드 안드로이드] 1. 목차


1. 목차
  1. 안드로이드 프레임워크 개요
  2. 안드로이드 개발환경 구축
  3. init 프로세스
  4. JNI와 NDK
  5. Zygote
  6. 안드로이드 서비스 개요
  7. 안드로이드 바인더 IPC
  8. 안드로이드 서비스 프레임워크
  9. 네이티브 시스템 서비스 분석
  10. 자바 서비스 프레임 워크
  11. 자바 시스템 서비스 동작 분석
  12. 부록 - AIDL 언어의 문법


2015년 10월 23일 금요일

[에티카] 제 1부 신에 관하여

제1부
신에 관하여

1부 구성 - 정의 8, 공리 7, 정리 36, 부록

정의

  1. 자기원인
    1. 그것의 본질이 존재를 포함하는 것 또는 그것의 본성이, 존재를 제외하고는, 생각될 수 없는 것
  2. 유(類), 유한
    1. 동일한 본성의 다른 것에 의하여 한정될 수 있는 사물
    2. 본성
    3. 사유
    4. 한정
  3. 실체
    1. 그것의 개념을 형성하기 위하여 다른 것의 개념을 필요로 하지 않는 것.
    2. 독립적 개념, 그자체
  4. 속성
    1. 지각하는 것
  5. 양태
    1. 실체의 변용
  6. 신
    1. 제각기 영원하고 무한한 본질을 표현하는 무한한 속성들로 이루어져있는 실체
    2. 절대적으로 무한한 존재
  7. '자유롭다', '필연적', '강제적'
    1. 자유롭다 - 자신의 본성의 필연성에 의해서만 존재하며, 자기자신에 의해서만 행동하도록 결정되는 것.
    2. 필연적(강제적) - 일정하고 결정된 방식으로 결정하고 작동하도록 다른것에 의하여 결정되는 것.
  8. 영원성
    1. 존재가 영원한 것의 정의로부터만 필연적으로 나온다고 생각되는 한에 있어서, 그 존재 , 그 자체

2015년 10월 22일 목요일

[에티카] 독서 계획


에티카 - B.스피노자(지음), 황태연(옮김) [비홍출판사] 
G마켓 도서 : http://item2.gmarket.co.kr/Item/DetailView/Item.aspx?goodscode=514314930



  • 2015년 2월에 영풍문고(부산대NC점)에서 구입하였다.
  • 본래 책세상문고에서 발행한 에티카를 구입하기 위해 갔지만, 제고가 없어 다른 책을찾다 비홍출판사에서 발간한 에티카를 발견하게 되었다. 
  • 처음에 25,000원의 가격을 보고 구입을 망설였다. 책의 내용을 잠시 살펴보니 에티카 원본에 가까운 번역서여서 결국 구입을 하게 되었다.

  • 에티카를 블로그에 포스트하게 된 이유
    • 1,2학기를 정신 없이 보내면서 짤막하게 읽고 제대로된 생각의 정리를 할 시간이 없었다.  그래서 포스팅을 하며 생각을 정리하기 위해 블로그에 포스트를 계획하게 되었다.
  • 포스트 계획
    • 이 책이 철학책이며, 비전공자가 접근하기에는 많은 에로사항이 있다.
    • 우선 책의 내용을 충실히 이해하는 방향으로 글을 작성하고 추후에 생각의 정리를 하는 것이 옮다고 생각된다.
    • 책이 총 5부로 구성이 되어있으며, 1달에 1부씩 포스트를 할 것이다. (10월~2월)단 군대 입영일에 따라 계획이 변동 될 수도 있다.

[세상을 뒤흔든 프로그래머들의 비밀]

[세상을 뒤흔든 프로그래머들의 비밀] 

책을 읽은 동기 - 컴퓨터관련 실무작업이 궁금하여 이 책을 읽게 되었다.
블로그에 글을 작성하게 된 원인
1. 블로그에 글을 작성하며, 책에 대한 이해와 공감의 수준을 높이기 위함.
 현 프로그래머들의 이야기를 읽으며 무지의 한계로 이해를 하거나 공감을 하기 어려웠다.
블로그 포스트 계획
  1. 14개의 인터뷰를 1주에 2개씩 포스팅7주 : 10월 4째주 부터 ~  12월 1째주
글 작성 방향
  1. 책 내용 요약
  2. 용어 정리
홈