2014. 5. 30. 15:01 독서 영역/Hanbit Readers
728x90



임베디드 리눅스 시스템

저자
안효복 지음
출판사
한빛미디어 | 2013-12-10 출간
카테고리
컴퓨터/IT
책소개
이 책은 임베디드 시스템을 시작하고 싶지만 어디서부터 무엇을 어...
가격비교 글쓴이 평점  


이번달 미션은 자유 미션으로 그동안 리눅스 관련된 책을 읽지 못하여 관련 책을 찾다가 [개정판]으로 재 출간된 "IT EXPERT - ARM으로 배우는 임베디드 시스템" 책을 선정하게 되었다.


첫인상

개인적으로는 IT EXPERT의 표지와 인쇄용지가 마음에 든다.

표지에서 언급했듯이 "CPU부터 안드로이드까지 총망라"라는 말처럼 목차를 보면 정말 많은 내용들을 수록했다는 느낌을 받고 지레 겁을 먹기 시작했지만 그래도 Reference Book으로 사용하면 된다는 마음가짐으로 책을 읽어보려 한다.


이전판과 개정판 차이

2006년 5월에 출판한 1판에 이어 이번에 2013년 12월에 출판된 개정판은 그동안 발전한 ARM 프로세서 명령어 부분에 대해서 내용들이 보강된 것 같아보이며 추가적으로 이제는 대세가 아닌 일상생활의 한부분으로 굳어진 안드로이드 대한 내용이 추가되었다.


목차

[1부 임베디드 시스템]

1장 임베디드 시스템의 개요
2장 임베디드 시스템의 설계

[2부 ARM 프로세서의 이해]

3장 ARM 아키텍처와 동작 원리
4장 프로그래머 모델
5장 ARM 프로세서 명령어
6장 예외 처리와 시스템 리셋

[3부 ARM 프로세서와 임베디드 하드웨어 설계]

7장 ARM 프로세서 코어
8장 ARM 프로세서
9장 SoC 구조
10장 임베디드 시스템 하드웨어 설계

[4부 임베디드 소프트웨어 설계]

11장 소프트웨어 개발 툴의 이해와 활용
12장 임베디드 C 프로그래밍과 소프트웨어 최적화
13장 시스템 리셋과 부트코드
14장 하드웨어 제어

[5부 임베디드 ARM 리눅스]

15장 개발 환경과 부트로더
16장 리눅스 커널
17장 디바이스 드라이버
18장 리눅스 파일시스템과 애플리케이션

[6부 커널 포팅 및 디바이스 제어]

19장 커널 포팅 준비
20장 커널 포팅
21장 루트 파일시스템
22장 디바이스 제어
23장 임베디드 리눅스의 활용

[7부 안드로이드 탑재와 활용]

24장 안드로이드의 이해
25장 안드로이드 빌드, 탑재 및 실행

저자의 서문에서...

저자의 "지은이의 말"을 읽으면서 정말 이 책을 통하여 정말 많은 사람들에게 임베디드 시스템 분야에 대해서 확실한 이해를 시켜주려고 노력하는 모습이 떠올랐다. 

이 책에서 저자는 임베디드 시스템의 개념부터 ARM프로세서의 동작 원리, H/W 설계 방법, 최적화 기법, 커널 포팅 방법, 드라이버 개발 방법, 안드로이드에 대한 내용 등 정말 방대한 내용들을 집대성해놓았다고 볼 수 있다. 

천천히 & 꾸준히 읽어보자!!

고등학교 시절 처음으로 프로그래밍이라는 것을 접하게 되는 시점에 1000페이지가 넘는 서적을 접하게 된적이 있다. 그 동안은 기껏해야 100~200페이지 정도 분량의 책들을 봤었던 나에게 정말 커다란 산을 만난 것 같았다. 그 책을 다 읽을 엄두도 나지 않았고 그 내용도 다 외울 수 있을까? 라는 생각이 앞서 포기하고 싶었을 때가 있었다. 

하지만 10년이 지난 후 다시 접해보는 이런 고용량의 책을 접하니 그때와는 또 다른 느낌, 자신감이 생긴다. 그떈 너무 급했고 단순하게 생각했었기 때문이다.

천천히 꾸준히 읽어서 완독하길 나에게 바란다. 

기본 개념이 필요하면 읽어보자!!

이 책은 정말 기본 개념에 대해서 자세히 설명하고 있는 책이다. 

임베디드 시스템 개요부터 천천히 읽다보니 꼭 대학교 때 들은 "컴퓨터 시스템 구조"라는 과목이 생각이 났었다. 그 말인 즉, 개념부터 아주 내실있게 내용이 정리되어 있다는 것이다. 아마도 그래서 이 책이 더 두꺼워지지 않았나 생각해본다. 핵심만 원하는 사람에게는 다소 지루할 수 있는 기본 내용이지만 처음 접하거나 개념이 필요한 사람에게는 충분히 좋은 내용들이라고 생각된다. 

정보가 필요할 때 찾아보자!!

5장 ARM 프로세서 명령어 부분을 읽다보면 이 책은 나중에 Reference 형태로 봐야겠구나 하는 생각이 들게 된다. MS에서 제공하는 MSDN처럼 ARM명령어에 대한 설명, 형식, 동작 방법, 사용 예 까지 체계적으로 정리되어 있기 때문이다. 그렇기 때문에 위에서 이야기 했던 내용 중 이 책을 무조건 외우려 하지 않고 필요할 때 찾아보자 라는 마음으로 읽으니 마음이 한결 편해졌다. 

심화 학습을 위한 발판으로 사용하자!!

위에 언급했듯이 정말 많은 내용을 알차게 담아내고 있다. 하지만 그 만큼 심도있게 파고 들지는 못한 부분들도 있는 것 같다. 사실 지금의 나는 ARM을 잘 알지 못하기 때문에 이정도도 심도는 있다고 생각한다. 그래도 내가 업무로 하고 있는 디바이스 드라이버 부분을 보자면 개념정도만 나와있으니 추가적으로 관련 서적을 찾아봐야 할 것 같기에 심화 학습을 위한 발판으로 사용하면 좋을 것 같다는 의견을 비춰본다. 


끝으로...

이 책을 한권 가지고 있다면 그냥 기분과 마음이 든든해지는 느낌이 든다.
전문분야의 책이기 때문에 모든 내용들을 이 서평에 언급하긴 어렵지만 ARM프로세서, 리눅스 커널, 안드로이드 등에 대한 개념 및 정보를 얻고 싶다면 이 책을 추천하고 싶어진다

"이 리뷰는 한빛리더스 8기 활동의 일환으로 작성되었습니다."

728x90
posted by acedon
2014. 4. 20. 11:38 독서 영역/Hanbit Readers
728x90

이번달은 프로그래밍 면접에 관한 유용한 내용들로 가득찬 책을 한권 소개하고 싶다.



프로그래밍 면접 이렇게 준비한다

저자
존 몽건, 에릭 기게리, 노아 수요야넨 킨들러 지음
출판사
한빛미디어 | 2014-03-03 출간
카테고리
컴퓨터/IT
책소개
- 프로그래밍 면접은 물론 IT 기업 취업을 위한 종합 안내서구...
가격비교 글쓴이 평점  


▷ 첫 인상!

이번에 한빛 미디어에서 출간한(개정판) "프로그래밍 면접 이렇게 준비한다(3판)"를 서점에서 처음 마주하였다. 

이전판과 비교해 보면 3판은 정말 깔끔하고 스마트한 느낌을 받았다. 이전판 같은 경우 빨간색의 표지로 강렬함과 더불어 외국사람들을 표지 모델로 사용하고 있었다. 


        


▷ 이전판과 개정판의 차이점

추가된 내용

  • Chapter. 정렬
  • Chapter. 디자인 패턴

보강된 내용

  • Chapter. 연결 리스트
  • Chapter. 그래픽 알고리즘
  • Chapter. 트리 알고리즘
  • Chapter. 지식 기반 문제

▷ 목차

  • CHAPTER 01] 구직을 시작하기 전에 
  • CHAPTER 02] 입사 지원 절차 
  • CHAPTER 03] 프로그래밍 문제 접근법 
  • CHAPTER 04] 연결 리스트 
  • CHAPTER 05] 트리와 그래프 
  • CHAPTER 06] 배열과 문자열 
  • CHAPTER 07] 재귀 호출 
  • CHAPTER 08] 정렬 
  • CHAPTER 09] 동시성 
  • CHAPTER 10] 객체지향 프로그래밍 
  • CHAPTER 11] 디자인 패턴 
  • CHAPTER 12] 데이터베이스 
  • CHAPTER 13] 기타 프로그래밍 관련 내용 
  • CHAPTER 14] 카운팅, 측정 및 순서 관련 퍼즐 
  • CHAPTER 15] 그림 및 공간 퍼즐 
  • CHAPTER 16] 지식 기반 문제 
  • CHAPTER 17] 기술과 무관한 질문 
  • APPENDIX A] 이력서 

▷ 책을 읽기 전 저자의 서문에서...

저자의 서문에서 아래와 같은 당부의 말이 있다.
"이 책에서 본전을 뽑고 싶다면 문제를 직접 풀어봐야만 한다."

1. 문제를 읽은 다음 바로 책을 덮어놓고 직접 문제를 풀어본다. 
2. 문제를 풀다가 막히면 풀이를 읽어본다. 이 책에서는 답을 풀이 시작 부분에서 절대 공개하지 않고 있기 때문에 풀이의 앞부분을 본다고 해서 바로 답을 알게 되는 것은 아니다. 
3. 풀이를 읽다가 필요한 힌트가 나왔다 싶으면 다시 책을 덮고 문제를 풀어본다. 
4. 위 과정을 반복한다. 

▷ 프로그래밍 면접 준비의 가이드라인

이 책의 독자층은 "프로그래밍 면접"을 준비하는 사람과 자신의 "능력(스킬) 확인 및 재정비" 할 목적을 가진 사람들이라면 즐겁게 심도 있는 내용과 재미있는 내용들을 읽어 내려 갈 수 있을 것 같다. 

위 독자층이 아닌 일반 독자층(비 전공: 프로그래밍 언어 지식 X)이라면 초반 Chapter 1,2,3  이후에는 따라가기 힘들 것으로 예상된다. 

책의 구성 및 내용은 정말 알차지만 심플하게 가져가려고 노력한 것 같아보인다. 

Chapter 1,2 같은 경우, 구직을 위한 기반 활동에 대하여 구체적인 방법을 제시하고 있다. 다만, 읽다보면 우리나라의 실정과는 거리감이 느껴지는 부분이 있기는 하지만 충분히 도움이 될만 하다. 

Chapter 3,4,5,6,7,8 같은 경우, 프로그래머가 주어진 문제를 해결해나가기 위한 방법에 대하여 C, C++, Java, C#등의 언어를 통하여 설명하고 있다. 입사 지원을 예정하고 실기 면접을 진행해야 할 경우라면 필수적으로 확인해보고 넘어가야 할 내용들이다. 문제를 제시하고 문제풀이 또한 같이 제공하기 때문에 많은 도움이 될 것 같다. 

Chapter 9,10,11,12,13 같은 경우, 기술적인 방법에 대해서는 앞에 설명한 자료구조, 알고리즘을 통하여 설명하였다. 이 부분에서는 조금 더 개념적인 부분에 대해서 공부하라는 내용을 전달하고 있다. 책 내용의 질문들 중에는 우리가 늘 알고 있다고 생각하고 있지만 답변을 하려고 하면 생각정리가 잘 안되는 내용들이 있으므로 자신의 지식을 잘 정리해둘 필요성을 느낄 수 있었다. 

Chapter 14,15,16 같은 경우, 퍼즐 관련 내용들로 굳어진 생각들을 말랑말랑하게 해주는 그런 문제들에 대해서 설명하고 있다. 상상하고 생각할 수 있는 시간을 갖는 좋은 내용들이 많았다. 

Chapter 17 같은 경우, "기술과 무관한 질문"은 회사에서 다른 직원들과 잘 어울릴 수 있는 경험과 능력을 알아보기 위함이라고 저자들은 이야기 하고 있다. 이 내용들은 기술면접 이후 임원진 면접에 갔을 때 나올만한 내용들로 구성되어 있다. 그 중 기억에 남는 내용은 "연봉은 얼마 정도 생각하십니까?"라는 질문이었다. 

▷ 끝 느낌!

이 책을 읽고나니 입사 준비하던 시기가 떠올랐다. 그 당시에는 이 책을 몰랐기에 C언어 관련 책 한권을 하루동안 쭈욱 훑고 갔던 기억이 난다.

이렇게 상세하고 재미있는 내용들(간혹 잘 모르는 파트는 어렵기도 했지만)로 구성되어 있는 책을 알았더라면 조금더 수월하지 않았을까? 하는 생각을 해본다. 

전체적으로 기술적인 내용들은 외국과 한국과의 차이는 없어보이지만, 구직관련 내용들에 관하여는 문화적 차이는 분명 존재하기에 감안하고 보면 좋을 것 같다!



"이 리뷰는 한빛리더스 8기 활동의 일환으로 작성되었습니다."


728x90
posted by acedon
2014. 3. 17. 21:01 독서 영역/Hanbit Readers
728x90

이번달은 개발의 즐거움동기부여를 책임져줄 책을 하나 소개하고 싶다.


개발자 행복지수 높이기 프로젝트 - 개발자, 나를 말하다 이다.

아래의 사진은 "개발자, 나를 말하다"가 EBook임을 알려주고 있으며, 다양한 단말(PC, 태블릿, 스마트폰)에서 이용 가능함을 보여주고 있다.

이 책은 제목에서 유추 할 수 있듯이 대한민국의 개발자로 살아가면서 자신이 걸어왔던 발자취를 되돌아보며 앞으로 걸어갈 길에 대한 포부를 밝히고 있다.


* 흥미롭고 볼만한 구성인가?

총 5가지 직업군에 총 22명의 개발자를 개발자(지은이)인 용영환씨가 인터뷰한 내용을 다루고 있다.

IT개발 범주에 있어서 세분화 하면 무수히 많지만 여기서는 [게임, 모바일, 웹, 시스템, DB]라는 5가지의 직업군에 종사하고 있는 개발자들에게 질문을 던지고 있다.

  • 개개인별 현 직업(직종)을 선택하게 된 계기는 어떻게 되는가?
  • 현재 또는 과거 자신이 진행했던 일들은 어떤 것들이 있는가?
  • 독자들에게 추천하는 서적은 어떤 것들이 있는가?
  • 개발자의 길을 걸으며 철학은 어떻게 되는가?

여러가지 질문들이 있었지만 공통된 질문은 위와 같다. 

각 질문의 답을 통하여 개발자들의 생각을 들을 수 있어서 좋았고, 질문 중 개발자들이 추천하는 서적의 질문은 매우 유용할 것 같다. 꼭 다 찾아보고 싶다.

항상 선배, 멘토 등의 나보다 먼저 접해보신 분들의 이야기를 듣는 것은 정말 행복한 일이다. 이 책 또한 그런 행복감을 충족시켜주기에 후배들에게 추천하고 싶어진다.


* 아쉽지만 기대되는 걸?


현재 이 책에는 주로 남성 개발자만이 소개되어 있다.

그나마 마지막에 여성 DBMS 개발자 한분이 소개되어 있었다.


이 부분이 바로 “아쉽지만 기대되는 걸?” 이라는 생각이 들게 된 대목이다.

즉, 이번 “개발자, 나를 말하다”는 남성편으로 생각이 들기도 하며, 마지막에 여성 개발자 한분을 소개하여 여운을 남기고, “(여성)개발자, 나를 말하다”편이 출간되지 않겠나? 하는 생각을 조심스럽게 해보게 된다.

내가 남성이라 그런지 여성 개발자들을 보면 정말 대단하다고 느껴지는 경우가 대부분이다. 여성들의 Rookie 시절 등의 에피소드들을 들어보고 싶어지기에 꼭 여성편도 만들어 주셨으면 한다.



* 책을 구매해볼까요?


"개발자, 나를 말하다"

* 한빛미디어

* 노란북 (최저가 검색)



"이 리뷰는 한빛리더스 8기 활동의 일환으로 작성되었습니다."


728x90
posted by acedon
2010. 7. 20. 17:53 과거 저장소/Device Driver
728x90

예전에 대충 알고 있었던 부분들을 이 책을 통하여 다시금 정리하고 있다.
오늘 읽은 페이지 : 1~107 page

- 유저모드 라이브 디버깅 정리

WinDbg를 이용하여 응용프로그램에 연결하는 방법 3가지
1.
WinDbg에서 응용프로그램 실행하기(Debugger에서 Debugee 실행)
  - File -> Open Executable메뉴를 이용하여 원하는 응용프로그램을 선택한다.
  - 선택 후 열기를 누르면 프로세스 초기화가 끝난 후 main()함수 진입전 한번 멈춘다.
  - 이때 원하는 함수에 BreakPoint를 설정 한 후 g or F5를 눌러 진행하게 된다.

2. 실행중인 응응프로그램에 WinDbg 붙이기(Debugger를 Debugee에 붙이기)
  - 주로 특별한 조건으로 실행된 상태의 응용프로그램을 디버깅해야 할 때나 서비스 프로세스를 디버깅해야 할 때 사용
  - File -> Attach to a Process메뉴를 이용하여 현재 실행중인 프로세스들 중 디버깅을 원하는 프로세스를 선택한다.
  - 다음은 프로세스 초기화 후 멈추게 되는데 여기선 main()함수는 이미 실행되어 지나간 후 라 어떤 부분에서 멈춘지는 알 수 없다.
  ※ WinDbg를 종료하면 실행중이던 응용프로그램도 같이 종료하게 된다. 이것을 막기 위하여 위 Attach 설정창엣 Noninvasive를 선택하면된다. WindowsXP부터는  Noninvasive모드를 사용하지 않아도 qd(Quit and Detach)명령을 이용하여 동일한 기능을 기대할 수 있다.

3. 응용프로그램 실행 중 문제가 발생했을 때 자동으로 WinDbg 실행하기
  - 위 말처럼 응용프로그램의 실행 중에 문제가 발생 시 알아서 자동으로 WinDbg를 실행해준다.
  - 이 기능은 레지스트리에 존재하는 AeDebug키를 이용한다.
    C:\Users\acedon>windbg -I

BreakPoint의 사용
  - bp(BreakPiont)라는 명령어를 사용하여 원하는 곳에 디버깅을 시작할 수 있다.
  - 사용 예) 0:001>bp MyApp!CMyAppDlg::OnBreakPoint
  ※가급적 MyApp처럼 모듈명을 적어주는 것이 명령 실행 시간이 줄어든다.
  - bl(BreakPoint List)라는 명령어는 Breakpoint걸린 목록을 보여준다.
  - 사용 예) 0:001>bl
                    0  e  00401b3e          0001   (0001)   0:**** MyApp!CMyAppDlg::OnBreakPoint
  - 맨 앞 0은 ID로서 0번 브레이크 포인트라는 의미
  - e 는 enable되어 있다는 의미
  - 00401b3e는 breakpoint설정된 주소값
  - 0001은 브레이크 포인트 패스 카운트로서 브레이크 포인터를 1번 만나면 정지해 달라는 의미! 0002였다면 첫 번째 BP가 걸렸을 때는 무시하고 두 번째 브레이크 포인트가 걸렸을 때 정지한다
  - ****은 스레드 지정을 표시함, 스레드 번호 없이 ****가 붙었으면 모든 스레드에 대해서 브레이크 포인트 적용!
  - 나머지 부분은 함수 이름이다.
  - be(Breakponit Enable), bd(Breakpoint Disable)를 이용하여 브레이크 포인트의 사용을 제어 할 수 있다. ex)bd 0  //disable , be 0  //enable
  - bc(Breakpoint Clear)를 이용하여 정의된 브레이크 포인트를 해제한다. ex)bc 0  //0번 브레이크포인트 해제, bc *  //모든 브레이크, bc 3-5, bc 2,7,8
  ** bu명령어는 bp명령어와 동일한 목적으로 사용되나 디버깅을 종료한 후 다시 시작할 때에도 브레이크 포인트가 유지된다는 사실이다.


Call Stack 확인
  - 디버깅 중 브레이크 포인트가 걸렸을 때 대부분 먼저 하는 일은 콜 스택(call stack)확인이다. 어떤 함수들이 어떤 순서로 해당 함수를 호출했는지 확인하는 것이 디버깅의 시작점이 되는 경우가 많기 때문이다. 콜스택을 보는 방법은 두가지가 있다.
  1. 콜 스택 창을 띄워서 보는 방법(File -> View -> Call Stack(ALT+6))
  2. 명령창에서 k명령(Display Stack Backtrace)으로 보는 방법

728x90
posted by acedon
2009. 3. 1. 20:29

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

2009. 2. 20. 15:52 카테고리 없음
728x90
오늘 생전 처음 교내에서 봤던 졸업인증시험 토익점수가 나왔다.
사실 이번에는 저번 모의고사때 보다 잘 봤다는 확신은 없었지만, 문법 부분은 조금더 신경을 써서 조금이나마 올랐겠지라는 생각을 가졌었다.

하지만 이런 나의 기대감은 무너지고 말앗다.
사실 뽀록이라도 나와서 600점이라는 컷트라인을 넘을줄 알았는데, 이건 무슨 얼마 나오지 않았던 모의고사보다도 몇십점이 떨어진것이다.

사실 점수를 보고 유쾌하지 못했다.
점수가 오르지 못한 부분에도 그랬었지만, 아마 리스트를 봤더니 성적순이였던것 같았다.
아마도 내 점수가 거의 끝이였던것 같았다.
내가 어찌됐던 거의 끝이라는 사실에 너무나도 얼굴이 화끈거렸다.

아마 이런 경험(거의 끝)을 해보지 못했기에 잠시 정신이 몽롱해져왔다.
허허... 이렇게 나의 토익신고식은 아주 호되게 끝이 나려 한다.

오늘 하루 우리 클래스는 모두들 200~300점의 오른 점수들을 가지고 기뻐하고 있었다.
하지만 난 그 사이에서 기뻐할 수 없었다.
과연 내가 무엇을 제대로 못했기에 남들과 같이 웃을 수 없는 것일까? 라는 푸념만 늘어놓게 된다.

이제 곧 이틀 후에 정규 토익이 있다.

지금의 신선한 충격이 나에게는 독기를 품게하고, 토익이란 녀석과 한판 붙고 싶다는 마음을 만들어 준것임에는 틀림이없다.

이런 내용을 쓰기에 너무나도 부끄러운 일이지만, 나에게 다시금 채찍질을 하기 위해 글을 쓰게 된다...



728x90
posted by acedon
2008. 12. 17. 21:23 과거 저장소/IT infomation
728x90
DebugLab을 오랜만에 들어가서 기웃거리다가 오래된 글 중에 codeproject에 올라온 기사를 링크해 놓은 것이 있어서 저 역시 링크를 걸어봅니다.

제목에서처럼 .NET에 대한 여러가지 TIPs입니다.


.NET Framework

1. How to get the path for "My Documents" and other system folders?
2. How to get the path to my running EXE?
3. How to determine which operating system is running?
4. How to get a file's name from the complete path string?
5. How to get a file's extension from the complete path string?
6. What is difference beween VB.NET and C#.NET?
7. How to find whether your system has mouse or the number of buttons, whether it has wheel, or whether the mouse buttons are swapped or size of your monitor and many such information?
8. What is the purpose of the [STA Thread] attribute for the Main method of a C# program?
9. How to import CSV data using .NET application?
10. How to find size of logical drives using .NET?
11. How can I get the index of substring in a sentence irrespective of it's case?
12. How to access value of internal property Rawkind in System.Drawing.Printing.PaperSource in .NET 1.1?

OOPS

1. What are Copy Constructors?
2. What are Read-Only Constants?

VS.NET IDE

1. How to manage code snippets in VS.NET IDE?
2. How to display Line Numbers in code editor?
3. How to change the color of the regions?

Controls

Forms

1. How to create a form with resizing borders and no title bar?
2. How to use XP Themes with Windows Forms using the .NET?
3. How to prevent a form from being shown in the taskbar?
4. How to open default E-mail client on your system with all parameters entered in it,like Outlook Express or Eudora, from your .NET windows or Web Application?
5. How to create Pop-Up Alert windows like messengers?
6. What is difference between Anchoring and Docking?

Buttons

1. How to set the default button for a form?
2. How to set the Cancel button for a form?
3. How to trigger a button click event?

Combo Box

1. How to fill a ComboBox with the available fonts?

Text Box

1. How to disable the default ContextMenu of a TextBox?
2. How to enter multiline text in textbox through code?
3. Some useful TextBox Validations
4. How to unselect the text in textbox after it receives focus?

DateTime Picker

1. How to make the DateTimePicker show empty text if no date is selected?

Data Grid

1. How to remove the indeterminate status of checkbox in datagrid?
2. How to group columns in DataGrid?

Panel

1. How to make a Panel or Label semi-transparent on a Windows Form?

WebBrowser Control

1. How to print the contents of Web Browser control?
2. How to assign custom Header and Footer and other page settings while printing the contents of Web Browser control?

ADO.NET

1. How to bind two controls to the same DataTable without having changes in one control also change the other control?

Crystal Reports

1. How to hide the status bar of Crystal Report in Report Viewer?
2. How to generate PDF version of Crystal Report programmatically?
3. How to select a printer while printing through Crystal Report programmatically?

Deployment

1. How to install database while deploying .NET application ?
2. How to install MSDE while deploying .NET application?
3. How to create conditional shortcuts while deploying .NET application?

Add ins

1. How to get a reference to usercontrol in CreateToolWindow2()?

Miscellaneous

1. How to enable the mnemonics (underline) being displayed when an application is launched
2. An easy way to build connection string.
3. How to add a custom or destination folder to SendTo menu?
728x90
posted by acedon
2008. 12. 11. 03:26 과거 저장소/Something New
728x90
오늘 마지막 시험을 앞두고, 싱숭생숭한 맘을 달래기 위해 친구와 함께 글을 써보았습니다.

친구 作

달밤에 뻘짓 - 김인규 -

시간은 어느덧 새벽 3시를 향해 질주하는데,,
아직 이곳은 학교,,
낯설고 어색한 빈 강의실에
지못난 줄 모르고 까부는 두 녀석들..
공부 핑계삼아.. 외로움을 달랜다..
 
칠흙같은 어둠밤 사이로 고요한 노래한곡조에
목소리에 힘준만큼 어울리는 멋진 글써내라..
머리를 조아리는 모습이.....
천진한 웃음을 띄운다
 
젊음을 불태우는 이놈들은..
10년, 20년 시간이 지나도..
때묻지 않은 지금의 순수함은
고스란히 지워지지 않는 자국처럼 남겠지..

나의 作

초조함속에 평온함이란 - 유형진

이제 나의 시간도 끝나간다.
곧 나의 시간도 끝나간다.

내일이면 이런 초조함도 끝이난다.
현재의 초조함속에 난 평온함을 느낀다.

다가오는 평온함속에 묻혀 초조함을 기다린다.

벌써 3시11분 - 유형진

난 오늘도 너를 향해 달린다.
달리다 보니 벌써 3시11분이다.

아직 시작도 못했는데 벌써 3시11분이다.
오늘도 너를 향해 달리다 멈춘다.

어김없이 내 앞에 멈춰버린 시간,
벌써 3시11분이다.


728x90
posted by acedon
2008. 11. 16. 10:27 과거 저장소/Something New
728x90
선배 블로그에 MBTI라는 검사를 할 수 있는 곳을 링크 해주셔서 한번 해보았습니다.

검사하러가기


나의 MBTI 검사 내역!

▩ ESFP 사교적인 유형 ▩

사교적이고 활동적이며 수용적이고 친절하며 낙천적이다.
현실적이고 실제적이며 친절하다. 어떤 상황이든 잘 적응하며 수용력이 강하고 사교적이다. 주위의 사람이나 일어나는 일에 대하여 관심이 많으며 사람이나 사물을 다루는 사실적인 상식이 풍부하다. 물질적 소유나 운용 등의 실생활을 즐기며, 상식과 실제적 능력을 필요로 하는 분야의 일 즉, 의료, 판매, 교통, 유흥업, 간호직, 비서직, 사무직, 감독직, 기계를 다루는 분야를 선호한다. 때로는 조금 수다스럽고, 깊이가 결여되거나 마무리를 등한시하는 경향이 있으나, 어떤 조직체나 공동체에서 밝고 재미있는 분위기 조성 역할을 잘한다.

▒ 일반적인 특성 ▒

  • 타인을 기쁘게 해줄 깜짝쇼를 준비하면서 즐거워한다
  • 내 자신의 이야기를 상대방을 가리지 않고 아무에게나 잘 털어놓는다
  • 자신에게 너그럽고 다른 대외적인 책임감이 따르는 일은 열성을 가지고 일한다
  • 무계획적이고 충동적인 여행을 즐긴다
  • 발등에 불이 떨어져야 행동에 옮긴다
  • 직설적으로 말하고 흥분을 잘하며 목소리가 크다
  • 집에 있으면 무기력한 느낌이 들고 쉬는 날은 거의 외출
  • 청소나 빨래를 제시간에 하지 않고 몰아서 꼭 해야 할 때 한다
  • ‘내일은 내일의 태양이 뜬다 ’
  • 싫고 좋은 사람이 분명하며 표정에 나타난다
  • 정이 많고 건망증이 심하다
  • 거절을 잘 못한다
  • 잘 먹고, 잘 자고, 생각이 단순하다. 고민하다가 그냥 잠든다
  • 혼자 있는 것을 힘들어한다
  • 조직생활 보다는 자유로울 때 능력을 발휘한다
  • 정작 하고 싶은 말은 못한다
  • 기분파, 돈 있으면 일단 쓰고 본다
  • 이야기 할 때 요점과 더불어 부연 설명을 많이 덧붙인다
  • 귀가 얇다.( 상황에 따라, 주위 사람들의 반응에 따라 잘 변한다.)
  • 틀에 박힌 것 싫어하고, 계획에 따라 하는 것 힘들어한다

    ▒ 개발해야할 점 ▒

  • 의끊고 맺는 것을 개발 할 필요가 있다
  • 계획성 있는 일처리 방식이 필요
  • 가끔 혼자서 자기의 내면을 성찰의 시간이 필요
  • 728x90
    posted by acedon
    2008. 11. 16. 02:25 과거 저장소/Device Driver
    728x90
    아~ 황금같은 주말, 비는 오긴 했지만 참으로 유익한 시간을 보내고야 말았습니다.

    오늘은 숭실대에서 KOSR세미나가 있었습니다.
    총 3개의 세션으로 아래와 같이 구성되어 있었습니다.

    1. 행사 일정

    시간

    윈도우 커널 이야기

    실행파일 분석기법

    윈도우 드라이버 이야기

    13:00 ~ 13:25

    세미나실 입장

    13:25 ~ 13:30

    개회사 및 강사 소개

    13:30 ~ 15:00

    1. Windows Interrupt의 비밀
    2. Windows I/O의 비밀-1

    1. PE 구조 학습

    1. USB 장치와 디바이스 스택 분석

    15:00 ~ 15:30

    Break Time

    15:30 ~ 17:00

    2. Windows I/O의 비밀-2
    3. Windows Socket의 비밀

    2. 디버깅 툴을 이용한 실행파일 분석

    2. USB Request Packet(USBDI) 분석과 IRP

    17:00 ~ 17:20

    Q & A

    17:40 ~

    세미나 뒷 이야기 


    원래 계획은 동아리 동기와 후배들 모두 참가하여, 각각 하나의 세션을 듣고나서 다시금 우리들끼리 작은 세미나를 갖자는 목표로 참가하였는데 약간의 miss가 생겨버렸습니다.

    다름 아닌, 모두다 세미나 시간이 되도 안오길래 전화를 해봤더니 그제서야 일어나 버린것입니다. ㅡ0ㅡ;;

    그래서 동기에게는 강요하지 않았고, 후배들에게는 생각보다 다른 세션이 좋은 내용이 많아서 듣기를 권장하여 뒤늦게라도 도착하여 듣게 되었습니다.

    전 3개의 세션들 모두 다 듣고 싶었지만, 몸이 한개인지라 USB디바이스 드라이버쪽을 들었습니다. 사실 디바이스 드라이버에 대한 지식은 거의 문외한이라고 해도 과언이 아니지만, 예전 방학때 동아리 선배가 강의해주셨던 그 기억과 내용들이 그나마 이번 강의를 듣는데 있어서 엄청난 도움이 되었습니다.

    하지만 워낙 어려운 내용들과 함께 너무나도 짧은 시간에 대량의 내용들을 습득, 이해하기에는 조금에 무리가 있었던건 사실입니다. 그래서 지금도 최대한 기억을 되살리고 있는중입니다. ^^ 그래서 아마도 글 쓴 내용들 중에는 엉뚱한 부분이 있을 수도 있습니다.;;

    일단 시작전에 이봉석 선배님이 3~4시간안에 USB드라이버에 대한 내용을 모두다 강의하긴 어렵고, 아마 개요정도가 되지 않을까 싶다고 말씀하셨습니다.
    사실 저한테는 오히려 이런 개요가 더 좋을 수 있을거란 생각을 해봤습니다. 아무것도 모르는 사람이 기술적인 것을 바로 보는것보다 가이드라인을 잡을 수 있는 편이 더 나을거란 생각말입니다. 하지만 실상 내용은 결코 쉽지 않았습니다. 어느정도는 이해가 갔지만, 점점 H/W적인부분의 내부로 들어갔던 부분에 대해서는 많이 와닿지는 않았습니다.

    일단 제일 처음 USB드라이버 강의에 들어가면서 USB가 관여하는 부분에 있어서 H/W부분과 S/W부분을 나눠서 설명해주셨습니다.
    S/W부분에서 USB드라이버를 제어하기위해 개발자가 만드는 부분은 Client Driver정도라고 하셨습니다. 나머지 부분들은 이미 MS에서 제공을 하고 있다고 했습니다.

    그 다음으로 가장 중요한 부분이 바로 USB열거자와 PNPID라고 합니다..

    USB열거자는 새로운 장치를 찾은 경우, 자신만의 고유한 방식(VID, PID)을 사용하여 새롭게 찾은 장치에 대한 고유한 PNPID를 윈도우게 등록하게 됩니다.

    PNPIDHardwareIDCompatibleID등의 종류를 가지게 되며, 각각의 ID모두를 등록 할 필요는 없으며, 2가지 이상의 PNPID가 등록될 수 있다고 합니다.

    USB열거자(USBHUB.SYS)는 장치(Device)의 ID를 들어내는 역할을 합니다.
    HardwaredID : USB\VID_1234&PID_5678
    HardwaredID : USB\VID_1234&PID_5678&MI_00
    CompatibleID : USB\Class_01&SubClass_02
    CompatibleID : USB\Class_03
    CompatibleID : USB\Class_FF&SubClass_FF&Prot_00

    위와 같은 HardwareID, CompatibleID 유형을 하고 있습니다.
    여기서 중요한 부분이 바로 HardwareID 2개의 차이가 중요하다고 하셨습니다.
    위 2개의 차이점은 MI_00이 있고 없고의 차이입니다.

    여기서 MIMutil Fucntion Interface 라고 합니다.
    이 말은 보통 USB장치가 하나의 작업만 하는 것이 아니라 다수의 작업을 하기위해 구성된 복합장치일 때 구별하기 위한 부분이라고 생각하면 될 것입니다.

    HardwareID는 VID(VendorID), PID(ProductID)를 사용하여 생성한다.
    CompatibleID는 Interface Class, SubClass를 사용하여 생성한다.

    아 오늘은 여기까지 글을 써야겠습니다. 너무나도 졸린 나머지, 계속해서 강의때 들었던 내용들을 되새김질 하며 글을 쓰도록 하겠습니다.
    728x90
    posted by acedon