brunch

You can make anything
by writing

C.S.Lewis

by 체영 Nov 03. 2021

컴퓨터 학과로 전과하려 합니다.

1) 전과 사유

  

      전과 사유는, 너무나 듣고 싶은 수업들을 자유롭게 듣기 위해서입니다. 1학년 2학기 때 '정보적 사고'라는 강의를 들었습니다. 당시 비전공자인 선배들이 소프트웨어 벤처를 창업해 자신의 기업을 자신감 있게 소개하는 모습에 반해, 무작정 스타트업들의 문을 두드려 보기 시작했습니다.


      운 좋게 겨울 방학 내내 저를 머물게 해 준 회사에서 하루 종일 개발 공부를 했고, 코드를 짰습니다. 1학기 동안 기본적인 웹 개발의 기본을 다지며, Django를 이용해 서비스를 제작해 배포하기도 하는 경험을 했습니다. 생각하는 대로 서비스를 직접 만들어 내는 개발이 너무 재미있어 밤을 새워가며 개인 프로젝트도 진행했습니다. 


      여름 방학이 되자 본격적으로 React.js를 이용해 실제 유저 만 명이 이용 중인 학교 연계 프로젝트 '수강신청 알리미' 개발을 하며 리팩토링과 유지보수를 경험했습니다. 서버와의 통신, 함수의 재활용 등에 관심을 가지며 '클린 코드'와 같은 책을 찾아 읽으며 좋은 코드에 대해 계속 고민하게 되었습니다. 1학기 때 들었던, 컴퓨터 프로그래밍 수업에서 배운 c언어가 모든 언어들의 근간이 된다는 점이 다른 언어를 접할 때마다 느껴졌습니다. 단순 실무적인 기술보다 근본적인 컴퓨터 지식이 필요하다는 생각이 들었습니다. 


       '컴퓨터 학과' 전공수업을 듣고 싶었습니다. 전공 수업을 듣기 위해 소프트웨어 벤처 융합전공 진입에 성공했고, 2학기에 알고리즘, 데이터 통신 과목을 들으며 정말 감격했습니다. 


       코딩 테스트 문제들을 풀면서 풀이에 사용되는 알고리즘과 자료구조들을 독학하면서 이해했었는데 정통 교재인 'introduction of algorithm '을 통해 수업하는 교수님의 설명을 들으며 왜 worst case와 average case를 고려하는 것이 중요한지, loop invariants의 고려는 어떻게 할 수 있는지 등 모든 것이 너무나 명확하게 보이기 시작했습니다.


        또한, 프론트엔드 개발을 하며 그동안 단순히 피상적으로 암기하여 크롬의 Network 탭을 사용하며 서버와의 통신을 확인했었습니다. '데이터 통신' 수업을 들으며 결국 그 서버와의 통신은 어떤 layer를 거쳐서 전송이 이루어지는지, localhost:3000처럼 매일 보던 포트번호의 진정한 의미가 무엇이었는지 등과 같이 그 내부적이고 깊이 있는 통신과정이 너무나 명확하게 보였습니다.


        단순 '코더'가 아니라 정말 '개발자'가 되려면 Computer Science 지식은 선택이 아니라 필수라는 것을 저는 컴퓨터 학과 전공과목을 수강하면서 확신이 들었습니다. 사실 이번 학기에 '데이터 베이스' 강의를 정말 듣고 싶었습니다. 간단하게 ERD를 짜 보고 디비 구조를 고민해보며 벡엔드와 데이터 베이스의 심도 깊은 학습에 항상 목말라있었기 때문입니다. 하지만 컴퓨터 학과 본 전공생들만 그 강의를 들을 수 있었기에 신청할 수 없었습니다. 아직도 정말 듣고 싶고 궁금한 강의들이 많습니다. 


       저는 학습하고 싶던 수업들을 자유롭게 수강하고 싶었기에 전과를 신청하게 되었습니다. 


2) 학업계획


    당장 다음 학기부터, 컴퓨터 학과 전공생 분반에 해당하는, 너무나 듣고 싶었던 전공 수업들을  들을 것입니다. '데이터 통신' 과목을 들으며 OSI 7 layer에 대한 이해를 통해 '데이터 통신' 과목이 하부 layer에 좀 더 집중한 과목이라는 것을 알았고, 저는 상부 layer의 통신에 대한 학습을 원합니다. 따라서 다음 학기에는 '컴퓨터 네트워크' 과목을 들으며 client와 server 사이의 보다 실무적인 통신 기반에 대해 배우고 싶습니다.


     또한, 앞선 전과 사유에 언급했던 '데이터 베이스' 과목 역시 수강할 것입니다. 소프트 웨어는 하드웨어를 기반으로 만들어졌기에,  하드웨어에 대한 고민이 좋은 소프트 웨어를 만드는 데에 필요하다고 생각합니다. 그렇기에 '논리설계' 과목과 '컴퓨터 구조' 과목을 수강하며 이에 대해 배우고 싶습니다.


     학업 교과목 외의 학업 계획에 대해서는, 기존에 웹 프론트 커리어를 쌓아나갔었지만, 이제는 모바일 개발자로서 공부할 것입니다. 이에 대한 이유로는, 앞선 생각과 연결되어있습니다. 저는 소프트웨어는 소프트웨어 그 자체로 독립적이기보다 이를 기반으로 하는 하드웨어와의 운용성이 중요하다고 생각이 들었습니다. 그 점에서 모바일 기기에 대한 하드웨어적인 컨트롤이 상대적으로 훨씬 자유로운 모바일 개발이 너무나 매력적으로 느껴졌습니다. 


      또한 저는 실제 사용자들이 사용하는 서비스를 개발하는 데에는 UI/UX가 정말 중요하다고 생각하며 '사용자를 끌어들이는 UX/UI의 비밀'처럼 관련 책을 찾아보며 관심을 가지고 있습니다. 사용자들과 매시간 함께 존재하는 모바일 기기와, 모바일에서 지원하는 직관적인 인터페이스와 UI/UX 는 제가 웹을 개발하며 느꼈던 한계를 극복하기에 충분했습니다.


     그렇기에 전과 이후의 제 학업계획은 IOS 개발자로서 개인 공부와 전공과목들을 수강하며 애플리케이션 근간의 동작원리나 과정에 대한 이해를 병행할 것입니다. 이후 현장 실습을 통해 방학 때 인턴 활동을 하며 실무적인 경험을 할 것이며, 좋은 사람들과 아이디어 디벨롭이 된다면 창업에도 도전할 것입니다. 관심이 있었지만 제대로 알지 못한 분야들 '딥러닝', '인공지능', '보안' 분야도 재학하는 동안 관련 과목들을 수강할 것입니다. 


     궁극적으로 제 계획은 T자 역량을 갖춘 개발자입니다. 웹, 모바일, 인공지능, 보안, 게임 등 사용자와 소통하는 다양한 종류의 소프트웨어, 관련된 기획이나 UI/UX 등 여러 분야에 관심을 가지며 적극적인 자세로 찾아보며, 동시에 제가 정말 매료된 하나의 분야 (현재는 IOS개발입니다) 는 깊이 공부하며 더 효율적이고 더 좋은 코드를 고민하는, 그런 역량을 갖춘 개발자가 되는 것이 제 학업 계획입니다.   

    


작가의 이전글 이틀 만에 만든 성격 유형 테스트 프로젝트
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari