본문 바로가기

assembly language

[POCU 아카데미] COMP2300 어셈블리 프로그래밍 수강 후기

POCU 아카데미

컴퓨터 공학을 제대로 배울 수 있는 온라인 교육 기관이다. 자세한 설명은 아래 링크 참고.

https://pocu.academy/ko/About

 

POCU 소개 - POCU

유능한 소프트웨어 엔지니어 및 설계자이자, 유수 공사립 대학의 교수였던 김포프가 창립한 POCU는 탑 프로그래머가 평생 커리어를 유지하려면 반드시 알아야 하는 컴퓨터 공학 수업을 제공하는

pocu.academy

 

수강 계기

학교에서 '컴퓨터 구조' 수업을 들을 때 어셈블리 코드 예시를 많이 봤는데, 예시를 공부하면서 어셈블리 언어를 잘 이해하면 컴퓨터 친화적인 코드를 짤 수 있겠다라는 생각이 들었고 어셈블리 언어를 깊게 공부하겠다고 마음 먹었다.

마침 POCU 아카데미에서 어셈블리 언어 수업을 런칭하였다. POCU 아카데미에서는 'COMP2200 C 언매니지드 프로그래밍' 풀코스를 수강했었는데 매우 만족도가 높았다. 그래서 주저 없이 어셈블리 수업을 신청하였다.

 

소감

크게 6502 어셈블리와 X86 어셈블리를 배우는데 중간고사까지 6502를 배우고 그 이후에 기말고사까지 X86을 배운다.

포프 선생님께서 동영상에서 열심히 설명해주시고 다양한 예시가 있어서 공부하기 좋다. 그러나 동영상만으로는 어셈블리언어를 제대로 이해하기에는 개인적으로 부족하다고 생각한다. 가능하다면 풀코스를 수강하여 과제/실습/시험까지 보는게 좋다.

 

어셈블리를 공부하면서 느낀 것은 직접 문서를 찾고 읽어가면서 프로그래밍하기의 중요성이 크다는 점이다. (사실 대학 수업에서도 마찬가지). 내용은 엄청나게 방대하니 일일히 전부 수업에서 설명하는 것은 배우는 사람이나 가르치는 사람 양쪽 모두에게 비효율적이다. 큰 골격과 방향을 배우고 나서 세부적인 내용은 스스로가 찾아서 공부하는게 효율적이다.

 

COMP2300에서는 동영상 강의를 통해 어셈블리 언어에 대한 밑그림을 그릴 수 있다. 디테일을 그리고 색칠을 하는 것은 각자가 알아서 해야 하는데, 풀코스의 '실습 및 과제'가 이를 하도록 강제해주는 효과가 크다. 매주 실습이 나오고 3주 간격으로 큰 과제가 제시되는데 이것들을 기간 내에 끝마치려면 강제적으로라도 공부를 해야한다.  '강제성' 뿐만 아니라 올바른 방향까지 잡아주는 효과도 있다. 빌드봇을 통해 채점을 여러 번 받을 수 있는데 100점을 받을 때 까지 코드를 고쳐가는 과정을 통해 오해하던 개념이 바로잡힌다.

 

어셈블리 언어를 제대로 배우고 나서 바뀐 점

'빠른 코드를 짜기 위해서는 어떻게 해야할까?'를 고민할 때는 '어떤 알고리즘을 쓸까'를 주로 고민한다. 나 역시도 그랬고 많은 사람들이 그런 것 같다. 특히 취업을 할 때 알고리즘 코딩 테스트가 필수 관문으로 자리 잡히면서 주변 친구들만 봐도 알고리즘적 관점에서 고민을 많이 하는 것 같다.

 

물론 알고리즘도 중요하다. 하지만 다른 중요한 요소들도 많이 있다. COMP2300을 수강하고 나면 그 다른 '중요한 요소'들이 무엇인지 알게된다. 이렇게 시야가 트이고 나면 컴파일러가 빠른 코드를 생성하는 것을 방해하지 않기 위해 고민해야 하거나, 컴퓨터가 느리게 연산할 수 밖에 없는 부분을 피하는 방법을 생각하는 자기 자신을 발견하게 된다.

 

수료 기준

100점 만점에 과제가 25점, 실습이 25점, 중간고사가 25점, 기말고사가 25점이다. 과제와 실습은 물론이고 시험도 열심히 공부해야 수료할 수 있다. 수료 커트라인이 85점인데 과제와 실습을 전부 만점을 맞는다는 가정 하에 시험을 평균 70점을 맞아야 한다. 실습이나 과제를 할 때는 검색을 할 수 있지만 시험 때는 그 어떤 참고자료도 볼 수 없기 때문에 시험을 위해서는 중요한 개념은 외워서 숙지해야 한다. 나의 경우에는 중간고사를 아슬아슬하게 70점을 넘겨서 수료 점수를 넘기기 위해 기말고사를 좀 더 공부를 많이 했다. 

기말고사가 끝나고 확인한 점수창

 

후기를 마치며

과제 및 실습은 반드시 만점을 맞아야겠다는 마인드로 수업에 임했는데 거의 모든 실습, 과제가 정말 쉽지 않았다. 그럴 때마다 동료 수강생들과 토론을 하며 해결의 실마리를 찾았는데 유능한 동료들을 많이 봐서 동기부여되고 더 공부도 열심히 하게 되었다. 열심히 공부하여 성공적으로 수료하고 나니 더 좋은 프로그래머가 될 수 있겠다는 자신감이 생겨서 뿌듯하다. 


COMP2300에 대해 더 궁금한 점이 있으면 댓글 남겨 주시면 답변드리겠습니다.