VEDA에서 공부하면서 시간이 굉장히 빠르게 지나가는 것을 느낀다. c언어와 c++을 배우고 눈을 뜨니 벌써 한달이 흘렀다. 한 달의 교육 동안 개념을 정리하고 새로운 것을 받아들이는 준비를 했다고 생각된다. 빠른 진행의 강의 속에서 점점 이해도가 높아지는 것을 느낀다.
4주 차 회고
VEDA 4주 차에는 Qt Framework에 대해 배웠다. Qt는 C++을 기반으로 하는 크로스플랫폼 개발 프레임워크이다. 추후 있을 임베디드 시스템에 프로그램을 상상하며 Qt 애플리케이션을 만들며 교육을 받았다. notepad 애플리케이션을 발전시켜 나가면서 moc개념, object API, signal/slot, dialog 등등 Qt에서 사용하는 개념과 상속 관계를 배웠다. 다행스러운 것은 Windows API와 MFC를 다뤄본 경험이 있어 Qt 프레임워크도 금방 익힐 수 있었다. 동기들의 질문과 버그를 잡아주며 부족한 개념을 보충할 수 있었다. 정확한 용어와 개념을 확실히 설명해 주기 위해 고민하는 건 최고의 공부법이다.

새로 배운 내용
- 알고리즘 풀이: jungol사이트의 Beginner 등급 문제를 전부 풀었다. Intermediate 단계를 들어가며 자료구조와 정렬 등의 개념이 나오면서 풀이 시간이 조금씩 길어진다.
- Qt, Signal & SLot: Qt 프레임워크는 Signal과 Slot을 상호 관계없는 객체 간 통신을 지원한다. Signal은 이벤트나 상태 변경을 나타내며, Slot은 signal을 처리하는 함수나 메서드를 말한다. Qt는 이런 통신방식으로 사용자가 TCP 또는 UDP인지 몰라도 통신하는데 이상이 없도록 지원하며, 이를 Network transparency라고 한다.
- Qt, Widget & Gadget: Qt는 개발에 필요한 미리 만들어둔 Toolkit을 제공한다. Widget은 Button 또는 EditText 같은 화면에 보이는 객체로 컨트롤을 제공하는 인터페이스이다. Gadget은 LayoutManager와 같이 화면에 보이지 않는 것을 의미한다.
- Qt, 상속구조: Qt는 많은 toolkit을 제공하는 만큼 상속 관계를 적극 활용할 수 있다. QObject를 상속받는 QWidget, QLayout, QDialog 등등 사용해 본 경험이 있다면, 빠르게 구현할 수 있다.
- 팀별 미니프로젝트: 세 명이 하는 프로젝트로 1주일간 설계를 했다. 한 개의 UML로 설명하기가 어려워 상속 관계도와 관계 Diagram으로 나누어 이해가 쉽도록 작성한다.
프로그래밍에 들어가니 설계에서 부족한 부분과 이해가 어려운 부분이 보인다. 불필요한 기능은 제거하고 꼭 구현해야 하는 기능은 순수 가상함수로 설계하여 코드가 매뉴얼이 되도록 했다.

앞으로 해야할 내용
- 알고리즘 풀이: 매일 꾸준하게 문제를 풀고 있다. Intermediate단계로 들어간다. 문제를 보면 알고리즘이 떠 오르도록 연습하자.
- 책, 자료구조와 함께 배우는 알고리즘 입문: 강사님이 추천해 주신 알고리즘 책이다. 들고 다니며 읽긴 힘들겠지만, 알고리즘을 못 하니 하라는 대로 하자.
- 한화 비전 홈페이지 둘러보기: 한화 비전의 제품, 기술력, 업무 형태에 대해 알아보자. 추후 새로운 내용을 배울 때 최고의 성장을 위해, 호기심을 미리 만들어 두자.
이번 주를 마무리하며
간만에 공부에 집중할 수 있어서 머리가 맑아지는 것 같다. 알고리즘은 매일 풀고 있지만 아직 갈 길이 막막해 보인다. Qt는 눈에 보이고 처음 접하는 프레임워크라서 개발을 즐길 수 있었다. 동기의 질문에 대답을 해주며 개념을 확실히 잡을 수 있었고 다양한 버그를 발견할 수 있었다. 확실히 같이해야 더욱 재미있고 빠른 성장이 가능하다. 교육장 분위기가 따듯해서 다행이다.