본문 바로가기

2018/016

2017년 임베디드SW기사 실기 (4회차) 기사 시험 자체가 인지도가 너무 없는건지...이 분야에 사람들이 관심이 없는건지...내가 시험본 고사장에는 임베디드기사를 보는 수험자는 나뿐이었다.합격률이 이번에는 40~50%정도 되는듯 하다. 시험문제 난이도가 좀 낮아졌나? 어쨋든 시험을 준비하는 수험자들을 위해서 기억 나는대로 문제 복기하여 적어본다.아래 답중에 애매한게 1~2개 있는데 답을 아시면 댓글로 달아주세요 1. C 언어에서 공용체란? - union2. 다음 회로도는?? (회로도 그림이 있고 그림을 보고 어떤 회로도인지 찾추는문제) - XNOR3. 운영체제에서 프로세스관리, 디바이스 관리 등을 하는 곳 - 커널4. 상속받아서 함수 재정정의 해서 쓰는거? - 오버라이딩5. 상태다이어그램6. 가상 주소를 물리 주소로 변환, 메모리 보호 기능 -.. 2018. 1. 23.
[Effective C++] 항목 22 ~ 25 항목 22. 데이터 멤버가 선언될 곳은 private 영역임을 명심하자. 캡슐화(encapsulation) class SpeedDataCollection{public:void addvalue(int speed); // 속도값 수집double averageSoFar() const; // 평균값 반환...} 첫 번째 방법 : 지금까지 수집한 속도 데이터 전체의 평균값을 담는 데이터 멤버를 클래스 안에 넣어 둠. averageSoFar() 호출될 때마다 멤버의 값을 반환하기만 하면 끝.두 번째 방법 : averageSoFar() 호출할 때마다 평균값 계산. 정답은 없다 : 메모리 불충분, 평균값 그다지 필요하지 않은 환경 -> 두 번째 메모리가 충분하며 평균값을 빈번히 사용하고 속도가 중요 -> 첫 번째 접근.. 2018. 1. 23.
[Effective C++] 항목 18 ~ 21 항목 18 : 인터페이스 설계는 제대로 쓰기엔 쉽게, 엉터리로 쓰기엔 어렵게 하자class Date { public: Date(int month, int day, int year); ... }; - 매개변수 전달 순서 오류 - 숫자 범위 오류 1) Wrapper Type을 구현하여, 오류를 막자struct Month{ explict Month(int m) : val(m) {} int val; }; class Date { public: Date(const Month& m, const Day& d, const Year& y); ... }; Date d(Month(1), Day(3), Year(2018)); 2) 유효한 값의 범위를 제한하자 - enum 활용 => 타입 안전성? - 유효한 값의 집합을 미리 정.. 2018. 1. 23.
[Effective C++] 항목 13 ~ 17 항목13. 자원 관리에는 객체가 그만! Class Investment {...}; // 투자를 모델링한 최상위 클래스Investment * createInvestment // Investment 클래스의 객체를 얻는 팩토리 함수 void f(){Investment *pInv = createInvestment(); //팩토리 함수 호출...delete pInv;} 위 상황에서 여러가지 경우의 수에 의해 delete 가 호출되지 않을 가능성이 존재한다. (return, continue, goto, exception등)해결 방법 : 자원을 객체에 넣고 그 자원 해제를 소멸자가 맡도록 하며, 그 소멸자는 실행 제어가 함수를 떠날 때 호출되도록 만드는 것 (스마트 포인터 사용) void f(){std:auto_p.. 2018. 1. 23.