개발자가 정처기... 굳이? (2024 1회 정보처리기사 후기)

우디·2024년 4월 30일
0
post-thumbnail

요약

  • 지난주 토요일 정보처리기사 실기 시험을 보고 왔다
  • 정처기 공부를 통해
    • 실무에서 했던 경험을 확장할 수 있어서 유익하다.
    • 개발자로서 놓치고 있던 부분을 보완할 수 있어서 유익하다.
  • 비전공 개발자분들이나 개발자 준비생분들께도 추천한다.

들어가며

지난주 토요일 오전에 정보처리기사(이하 '정처기') 실기 시험을 보고 왔다.

개발자가 정처기를 준비한다는 것은 주위에서 많은 말들을 만들어내는 것 같다.
실제로 그동안 정처기 공부를 하면서 '아무 의미 없다', '개발만 잘 하면 되지 그게 뭐가 중요하냐' 등등의 이야기들을 많이 들었다.

이런 말들을 들으면서 '진짜 의미 없는 행동을 내가 하는 건가?'하는 걱정이 들기도 했지만, 그래도 열심히 공부한 결과 개인적으로 많은 것들을 배우고 얻을 수 있었다.

그래서 혹시 정처기 공부를 시작할지 고민 중이신 분들께 도움이 되지 않을까 하여 어떤 점을 배우고 얻었는지에 대해 기억나는 것 위주로 간략하게 공유하고자 한다.

1. 실무 경험에 더해지는 정처기 지식들

약 3년간 개발자로서 실무를 경험했기 때문에, 이번에 정처기를 공부하면서 이전 실무 경험이 많이 떠올랐다.

그 예시는 아래와 같다.

  • IPC
    IPC는 Inter Process Communication으로 프로세스들 사이에 서로 데이터를 주고받는 행위 또는 그에 대한 방법이나 경로를 의미한다.
    프로세스란 OS가 프로그램에 CPU나 메모리 등 필요한 자원을 할당해 준 실행 중인 프로그램이다.
    이전에 React+Electron으로 데스크톱 앱을 개발했을 때 리액트 부분인 렌더러 프로세스와 일렉트론 부분인 메인 프로세스 사이의 통신을 위해 ipcMain.on(), ipcRenderer.on()을 사용했었다. 이전에 해당 모듈을 사용했을 때는 그냥 일렉트론의 모듈인 줄 알았다. 하지만 이번에 정처기에서 운영체제를 공부하며 이 개념이 일렉트론에 국한된 것이 아니라는 것을 알게 됐다.
  • 자료구조
    이전에 실무에서 실행 취소(Ctrl+Z) 기능을 구현할 때 자료구조의 스택 관련하여 공부한 적이 있었다. 반면 다른 자료구조는 접할 기회가 적었다. 그런데 이번에 정처기에서 자료구조 파트 공부를 하면서 그래프, 트리, 데크 등 여러 자료구조에 대해 공부하며 이전에 스택을 공부했던 것에서 개념을 확장할 수 있었다.
  • 알고리즘
    실무에서 기능 구현을 위해 코드를 작성하며 재귀 형태로 함수를 작성한 적이 있었는데, 정처기의 알고리즘 파트를 공부하면서 재귀를 비롯하여 정렬, 시간복잡도, 빅오 표기법 등 여러 가지 개념을 배울 수 있었다.
  • 데이터베이스 관련 지식들
    실무에서 프론트에서 서버와 통신하며 데이터를 받아오고 업데이트하는 작업은 많이 했었다. 그런데 정작 어떻게 DB에서 쿼리문이 조작되는지는 전혀 알지 못했다. 그런데 이번에 정처기의 데이터베이스 파트를 공부하며 직접 쿼리문을 작성해 보고 다양한 방식으로 데이터를 조작하면서 DB에서 어떻게 쿼리문이 작성되고 데이터가 저장되는지 등을 배울 수 있었다. 사실 이런 부분을 몰라도 전혀 문제없다고 생각할 수도 있다. 하지만 개인적으로는 그동안 프론트 개발자로서 그려지지 않던 그림을 그릴 수 있게 된 것 같아서 매우 유익했다.

..등등 공부하다가 '아하!'하고 실무 경험이 떠오른 순간들은 매우 많았지만, 일단 이 정도만 적어본다.

놓치고 있었던 부분들 보완

정처기를 공부하며 또 하나 좋았던 점은 어떠한 이유로든 놓치고 있었던 부분들을 보완할 수 있었다는 점이다. 정처기 과목은 광범위한 내용을 다루고 있기 때문에, 개념은 알고 있었는데 활용할 기회가 적었거나 아예 모르고 있었던 개념들을 보완할 수 있었다.

  • 개념에만 익숙했던 객체지향
    프로그래밍을 공부하고 개발팀 코드 리뷰 및 스터디 세션을 진행하며 객체지향이라는 것을 알고 있었는데, 이번에 정처기를 공부하며 왜 객체지향이 등장했으며 코드에서 어떻게 구현되는지를 구체적으로 배울 수 있었다. 대표적인 객체지향 언어인 Java, Python을 실무에서 다룰 경험이 없었는데, 직접 코드 실행 과정을 손으로 따라가며 객체지향 개념을 익힐 수 있어서 매우 유익했다.

  • 실무에서 다뤄보지 못했던 프로그래밍 언어
    정처기 프로그래밍 파트에서는 C, Java, Python을 다루고 있다. 실무에서는 JS를 주로 다뤘는데, 다른 언어들도 배울 수 있어서 너무 유익했다. 배열, 문자열, 함수 등 동일한 개념을 언어별로 정리하며 언어별 차이를 배웠는데, 기존에 알고 있던 JS와 비교되면서 재미있었다.

  • 네트워크, 보안 관련 다양한 지식들
    그 동안 프론트 개발을 하며 관심은 있었지만 자주 접하지 못했던 네트워크, 보안 관련 지식들을 이번에 정처기를 공부하며 배울 수 있었다. OSI 7계층, SSL, HTTPS 등 실무에서 많이 들어서 익숙하지만 잘 몰랐던 부분들을 보완할 수 있었다. 이러한 부분들

...등등 방법론, 프레임워크, 역사적 맥락 등 여러 재밌는 개념들을 배울 수 있었다. 소프트웨어 개발에 있어서 전체적으로 개념을 배울 수 있어서 앞으로 더 열심히 공부해야겠다는 동기부여가 되었고, 앞으로 어떤 분야를 공부하든 그 분야에서 한 단어 정도는 정처기에서 들어본 개념이라서 보다 친근하게 개념을 뻗어나갈 수 있게 된 것 같다. 뿐만 아니라 '아는 만큼 보인다'는 말처럼 앞으로 실무 개발을 하면서 관련 개념이 나오면 한 번쯤 들어본 개념이기 때문에 더욱 잘 공부할 수 있는 바탕을 마련한 것 같다.

마치며

앞서 언급한 점들이 쓸데없다거나, 그럼에도 정처기는 굳이 필요 없다고 하는 분들이 있을 수 있다. 그리고 정처기를 취득하는 것도 개인의 자유이다.
또한 정차기를 통해 엄청난 지식을 습득할 수 있는 것도 아니다.
하지만 정처기를 통해 그동안의 경험을 확장할 수 있었고, 놓치고 있던 부분을 보완할 수 있었으며 앞으로 개발 공부를 해나갈 수 있는 발판을 마련한 것 같아 개인적으로 매우 유익했다. 그래서 만약 내 가족이 개발 업무를 하고 있거나 준비 중이라고 하면 정처기를 꼭 취득하라고 추천하고 싶다.
더불어 컴퓨터 전공이 아니거나 개발자를 준비하고 있는 분들에게도 충분히 유익한 경험일 것이기 때문에, 취득을 고려해 보면 좋을 것 같다.

profile
넓고 깊은 지식을 보유한 개발자를 꿈꾸고 있습니다:) 기억 혹은 공유하고 싶은 내용들을 기록하는 공간입니다

0개의 댓글