본문 바로가기

일상

[일상] 개발 업무하면서 드는 생각과 고민...

컴퓨터 공학과를 나와서 개발자를 꿈꾸고 현재는 다행히도 취업을 해서 업무를 진행하고 있습니다.

 

현재 직장을 처음 지원할 때에는 전산관리라는 직무 이름 때문에 걱정을 많이 했습니다... 컴퓨터 하드웨어 쪽으로 많은 업무가 생기면 어떻게 하지..? 모르는 게 많아서 일이 어려울 수도 있겠다... 등 여러 걱정과 고민이 있었습니다.

 

실제 입사를 하고 업무를 알게 되면서 조금 안심했던 부분은 하드웨어적인 업무가 아닌 소프트웨어 개발을 한다는 점이었습니다.

 

물론 소프트웨어 개발이라고 해서 바로 안심할 수 있었던 것은 아니었습니다. 그 이유는 사용해보지 않았던 툴과 언어를 새로 익혀야 했습니다. 웹 쪽으로 관심이 있어서 javascript와 typescript를 공부했지만, 현재 직장에서는 delphi와 pascal이라는 한 번 들어만 보거나 들어보지 못한 것들이었습니다. delphi는 들어보지도 못했지만 특히 pascal은 C언어를 대학생 시절에 수업을 들으며 역사에 관한 파트에서나 어렴풋이 들었던 기억이 있어 조금 겁을 먹었습니다.

 

현재는 업무를 맡아서 진행한 지 4개월 정도 지나서 그런지 결국 delphi는 IDE이고, pascal은 프로그램 언어일 뿐이고 모르는 부분은 인터넷을 찾아보거나 LLM 친구들(ChatGpt, Gemini)에게 물어보면서 크고 작은 문제를 해결하고 있습니다.

 

기능을 추가하거나 수정하면서 실제 업무에서 중요한 건 기존에 동작하던 프로그램에서 에러가 나지 않도록 해야 된다라는 점입니다. 가독성이 좋은 코드, 확장성을 고려한 코드 등 코드를 작성할 때 중요한 부분들이 많지만 우선 기능이 동작을 해야 의미가 있는 것 같습니다.

 

그렇다고 다른 부분을 무시해도 괜찮은가?라는 질문에는 절대 아니다라고 말할 것 같습니다. 이 부분은 기존에 작성되어 있는 코드를 보면서 느낀 점입니다... 아직 아는 부분이 많은 건 아니지만 가끔 이 코드는 왜 이렇게 구현했을까 하는 의문이 듭니다. 하나의 기능을 이해하기 위해서 너무 많은 파일을 옮겨 다니는 부분도 불편함을 느꼈습니다. 이런 부분을 느낄 때마다 클린 코드라는 단어가 왜 나왔고 책까지 있는지 알 것 같은 느낌이었습니다. 하지만 실제로 업무를 진행하면서 정해진 시간 내로 문제를 해결하기 위해서는 신경 쓰지 못하는 경우도 있는 것 같습니다.

 

코드 작성에 대해서 또 다른 생각은 요즘은 AI가 코드를 짜는 역할을 많이 한다고 하는데, 프로젝트의 규모가 커질수록 가독성을 얼마나 신경 써줄 수 있을까 하는 의문도 들긴 합니다. 물론 사람이 얼마나 프롬프트를 통해서 일을 잘 시키느냐도 중요하겠지만 말입니다...

 

AI에 대해서 얘기가 나와서 잠깐 하고 넘어가면... 해외는 잘 모르겠지만 아직 한국이라는 나라에서 대놓고 AI에게 회사 내부의 코드를 다 넘겨주고 어떻게 해달라고 하기가 조금 부담스러운 느낌이 있습니다. 제가 약간 보수적인 생각을 가지고 있을지는 모르겠지만, AI를 활용하려면 결국 보안이 중요한 부분인데 이를 어떻게 해결할 수 있을지 모르겠습니다...

 

이야기가 이리저리 흩어진 느낌이 있지만... 이 또한 제 심리를 나타내주는 것 같아서 나쁘지 않은 것 같기도 하네요. 아무튼 업무적인 고민으로 넘어가 보겠습니다.

 

읽으면서 참고하셔야 될 부분은 문제를 인식하고 있지만 해결 방법은 고민 중에 있습니다. 해결 방법은 없고 불평만 한다고 답답하게 느껴지실 수도 있습니다.

 

저만의 생각이고 제 첫 직장이다 보니 느끼는 부분일 수도 있지만, 제가 일을 하는 곳은 본인이 각자 맡은 부분에 있어서 디자인, PM(project manage), 기획, 개발, 유지보수를 진행하는 느낌입니다.

디자인에 대해서는 내부 프로그램이라 덜 신경 쓴다고 생각해서 넘어가겠습니다. 실제로 프로그램이 이쁠 필요는 없기도 하고 Delphi로 얼마나 예쁘게 할 수 있을까라는 생각도 있습니다. 제가 사용하는 Delphi의 버전이 낮아서인지 아니면 제가 모르는 기능이 더 많은지는 아직 모르겠습니다... 인터넷에서도 정보를 찾기가 쉽지 않아서요... 이런 부분은 React를 사용하다 보니 검색하면 하나 정도는 있었던 부분에 너무 익숙해져 있을지도 모르겠습니다. 그렇다고 UX 측면에서 전혀 고민이 없는 게 아닙니다...

 

PM과 기획에 대해서는 업무에 대한 요청이 오면 요청자와 대화를 하며 요구사항을 정리하고 프로그램에 있어서 제한 사항은 어떤 것인지 요청에 대해서 전체적으로 관리합니다. 그런데 여기서 드는 생각은 공통적으로 통일되는 느낌이 부족하다는 것입니다. 모든 부분을 다 통일시킬 수도 없고 개인적으로 모든 부분을 통일시켜서도 안된다고 생각합니다. 하지만 각자 개발자의 성격에 따라 요청을 받는 방법부터 요청을 받아들이는 방식이 다르다는 점은 문제라고 인식이 됩니다. 제가 생각했을 때 방식이 달라진 가장 큰 이유는 형식적인 문서라고 생각합니다. 회사 업무를 하다 보면 느끼는 점은 문서는 공유되어야 하는 것이 아닌 윗사람들이 보기 위함이 큽니다. 공유의 목적보다 보고의 목적이 크다 보니 딱딱해지고 간단한 문서도 시간을 많이 들여서 작성하게 되니 이 과정을 줄이기 위해서 개인적으로 요청을 받다 보니 이러한 문제가 생겼다고 생각이 듭니다. 어떻게 해결해야 할지 고민해 보고 AI도 적극적으로 활용해 보도록 하겠습니다.

 

개발 및 유지보수 파트는 저희는 업무의 난이도와 규모를 구분하고 연차에 따라 업무를 배정합니다. 그렇기 때문에 보통 신입이 들어오면 업무가 변경되게 됩니다. 이로 인해서 어쩔 수 없이 발생하는 문제도 있다고 생각이 듭니다. 하지만 제가 생각하는 부분은 우선적으로 코드 스타일이 너무 다르다고 생각합니다. 저는 기본적으로 회사 전체는 어렵더라도 팀의 코드 스타일은 비슷해야 한다라고 생각합니다. 그래야 다른 사람이 작성한 코드를 읽더라도 이건 변수고 이건 상수, 저건 함수구나 하는 생각으로 읽을 수 있기 때문입니다. 또한 개인적으로 Git을 사용하면서 든 생각은 코드 스타일뿐만 아니라 최종적으로 저장되는 format도 같아야 한다고 생각합니다. 왜냐하면 git을 사용하는 이유가 버전 관리인데 format이 다른 순간 변경된 코드뿐만 아니라 변경하지 않았던 부분까지 변경된 것으로 보이는 문제가 발생하는 것 같습니다.

 

마지막으로 AI가 개발자를 대체하고 다른 일자리 또한 대체한다고 하는데 그냥 취업하기도 힘든데 어떻게 해야 AI에게 대체되지 않을 수 있는지 개발자가 아닌 다른 직종으로 옮겨야 하는지 이런저런 생각이 많이 드는 것 같습니다... 위에서 고민하던 문제에 대한 해결책이 생기거나 새로운 고민이 생기면 다시 글을 적어보겠습니다.

 

길고 정신없는 글을 끝까지 읽어주셔서 감사합니다.