본문 바로가기

전체 글

(81)
늙고 노련한 개발자가 되고 싶다.... 지금 나의 꿈이다. 늙고 노련한 개발자... 꿈은 항시 변한다. 그리고 구체적이고 세부적으로 그려내기가 쉽지 않다. 내 기준에선 그렇다. 현재 나는 늙고 노련한 개발자를 꿈꾼다. 어떤 분야, 어떤 개발 환경 이러한 부분들은 잘 모르겠다.(이게 나의 문제점 같다.) 다만 눈을 감고 미래의 내 모습을 생각할 때 나는 컴퓨터 앞에 앉아 보다 나은 프로그램을 만들기위해 고민하는 늙고 노련한 개발자가 되어있길 바란다. 다만 한가지 조건은 매일매일 밤새 초췌한 개발자가 아닌 여유있는 개발자이고 싶다. 이러한 얘길 친구들과 나누다보면, 우리나라에선 힘들다고 한다. 특히 여유있는 개발자란 존재할 수 없다고 한다.... 다들 프로그래머를 하다가 프로젝트 매니저로 넘어가던가, 기술 영업으로 넘어가던가 한다고... 진정 이..
__cplusplus_4 프로그래밍 집중도 안되고, AVR 관련 업무는 잠깐 대기 중이라... C++ 책을 다시 읽었다. 아래는 오늘 읽은 내용의 정리이다. 객체를 사용하기 전에 반드시 그 객체를 초기화 하자. 1. 기본 제공 타입의 객체는 직접 초기화. 2. 초기화 리스트를 사용하여 초기화 하고, 선언된 순서와 동일하게 초기화 하자. 3. 비지역 정적 객체에 대한 초기화 순서 문제는 피해서 설계 하자. 컴파일러가 자동으로 기본 생성자, 복사 생성자, 소멸자, 복사 대입 연산자를 암시적으로 만들 수 있다. 컴파일러가 자동으로 생성되는 기능을 막으려면 대응되는 멤버 함수를 private으로 선언만 하면 된다.
ISP mode error 요즘 회사에서 AVR 부트로더 제작관련 업무를 맡고 있어서... C++ 책 진도가 안나가고 있다. 큰일이다. 이러다가 또 C++ 책읽기를 중도에 그만두는 것은 아닐까? 하는 걱정이 앞선다. 그 보다 오늘 ISP mode error 를 경험했다. hex 파일을 AVR studio4.0을 이용해서 flash를 했는데 그 도중에 ISP mode error라는 팝업창이 나왔다. 갑작스런 error 팝업으로 당황을 했다. 문제는 erase device before flash programming 체크 박스를 체크 하면 ISP mode error가 발생하지 않고, erase device before flash programming을 체크 안하면 ISP mode error가 발생하는 경우다. 원인은 부트로더 프로그램..
C 에서 C++ 메소드 호출 하기~ 자신이 C 프로그램을 짤 경우, 어쩔수 없이 C++ 메소드를 호출 해야 할 경우 아래와 같이 작성하면 된다. 1. class 헤더 파일 extern "C" : c++ 컴파일러에게 c언어 함수라고 알려주는 지시자 extern "C"를 사용하여 전역 함수를 선언합니다. 2. class 소스 파일 class를 구현 하고 헤더파일에서 선언한 전역 함수를 구현 합니다. 3. C 소스 파일 헤더 파일에서 선언해 놓은 Class 헤더 파일을 include하고 전역 함수를 사용합니다. PS : 좀 더 정리 필요.
선점형 & 비 선점형 에 대한 메모 선점형 : 프로세스의 CPU 점유를 OS에 의해 제어 됨. 비선점형 : 프로세서의 CPU 점유를 프로세스 자체에 의해 제어 됨. 사실 선점형, 비선점형에 대해서는 아직까진 완벽히 이해 되지 않는다. 다만 어렴풋이 선점형 시스템이란 의미는 OS에 의해 관리 당하게 되고 비 선점형 시스템은 프로세스 자체가 관리를 한다. 정도로 이해 중이다. 아!....난 왜 이해력이 이정도 일까...하고 자책하면서....포스팅 중..ㅋㅋ
__cplusplus_3 멤버함수에 붙는 const 키워드의 역할 - 해당 멤버 함수가 상수 객체에 대해 호출될 함수이다.라는 사실을 알려줌. 상수 멤버 함수가 중요한 이유 1. 클래스의 인터페이스를 이해하기 좋게 하기 위해서. 2. 상수 객체를 사용할 수 있게 하자는 취지. const 키워드가 있고 없고의 차이만 있는 멤버 함수들은 오버로딩이 가능. 상수 멤버 함수의 의미 1. 물리적 상수성[physical constness] 혹은 비트수준 상수성 [bitwise constness] - 어떤 멤버 함수가 그 객체의 어떤 데이터 멤버도 건드리지 않아야 한다. 단, 정적 멤버는 제외. 2. 논리적 상수성[logical constness] - 일부 몇 비트 정도는 바꿀 수 있되, 그것을 사용자측에서 알아채지 못하게만 하면 상수 멤버..
__cplusplus_2 금일 본 내용을 정리 하기에 앞서 용어 정리를 해야겠다. 오버로딩 (Overloading) - 한 클래스내에 동일한 이름을 가지고 인자값의 수나 종류가 다른 메소드가 존재하는 경우 서로 오버로딩 (Overloading)관계에 있다고 한다. - 같은 기능을 수행하지만 인자 타입이 다를 경우 메소드를 오버로딩하여 사용한다. ex: class Test { Test (); ~Test (); int sum (int a, int b); float sum (float a, float b); }; 오버라이딩 (Overriding) - 상속관계의 클래스 간에서만 일어나게 된다. - 하위 클래스에서 상위클래스의 메소드를 재정의해서 사용하는 것이다. ex: class Parent { Parent (); ~Parent ();..
__cplusplus_1 C++ 공부를 위해 블로그에 가끔씩 현재 보고 있는 책의 내용을 정리 하기로 했다. 책의 제목은 Effective C++... 이 책에 대한 내용을 정리하면 저작권 침해인가???? 흐음...갑자기 두려운데..ㅡㅡ;;;; 금일 본 내용 정리 1. C++은 네가지 하위 언어들의 연합체 - C 언어 - 클래스 개념을 가지는 객체 지향 개념의 C++ - 일반화 프로그래밍 부분의 템플릿 C++ - STL 2. 전처리기 보다는 컴파일러를 가까이 하자. - #deifne을 상수로 교체 시 유의점 ( 참고 : 상수 정의는 대개 헤더파일에 넣는 것이 상례) 1. 상수 포인터를 정의 하는 경우 포인터 및 포인터가 가리키는 대상 까지 const로 선언. ex : const char * const test = "Let's s..

반응형