My Dev Log(부제 : 영화학도는 왜 웹 개발자가 되었나)

Sia Hwang·2022년 11월 15일
2

My Dev Log

목록 보기
1/4

2022년 11월 현재는 직업전환에 성공해 웹 개발자로서 근무하고 있다. 이 글을 쓰는 이유는 하던 일 그만두고 왜 개발자라는 직업을 가지고자 했고, 그것을 가지기 위해 뭘 해왔는지 정리하고 싶어서이다.

Why I choosed SW developer?

약 2년 전 우연히 접한 코딩... 예전 직업에 비하면 내 성향과 적성에 잘 맞는 부분이 훨씬 많아서 업으로 삼고자 결심하게 되었다.

  1. 생각할 시간이 충분하다.

    • 프로그래밍은 아주아주 급박하게 돌아가지 않는다는 느낌을 많이 받았다. 어떤 기능을 구현해야 할 때 어떤 방식으로 구현할 것인지 생각할 시간이 꽤 충분한 편이고 구글에 검색하면 자료도 많다. 그래서 쫓기듯이 작업하지 않아도 되는 것이 맘에 들었다.

    • 나는 예전에 약 5년 간 상업영화촬영팀 스태프로서 근무했었다.

    • 영화촬영은 1분 1초가 촉박하게 이뤄지는 경우가 종종 있어 정말 쫓기듯이 일을 하는 경우가 많았다.(예를 들면 해 지기 직전까지 찍고 있는 야외 낮씬) 찰나의 순간에 빠르게 판단한 후 돌발상황에 대처하는 것이 많이 요구되는 직업이었고, 그러다보면 실수를 하게 되거나 결과가 나쁘지 않았다 해도 과정이나 결과물이 좀 아쉬울 때가 종종 생겼다. 이렇게 했으면 더 잘 나왔을텐데... 같은.

    • 그 시절에 비하면 프로그래밍은 더 나은 결과물을 위해 고민할 시간이 있는 것이 좋았다.

  2. 작업물을 수정할 수 있다.

    • 오늘 작성했던 코드에 대해 더 좋은 개선방향이 떠올랐다면 내일 그렇게 수정할 수 있다. 그래서 맘먹으면 이 과정을 통해 내 실력을 빠르게 향상시킬 수 있다.

    • 이것 또한 전 직업의 단점과 대비되는 장점인데, 예전 업무에선 작업물에 대한 수정이 불가능했다. 그 순간에만 만들어낼 수 있는 결과물이고 같은 사람들과 같은 장소에서 기계적으로는 같은 세팅으로 찍는다 해도 이미 지나가버린 시간을 되돌릴 수는 없기에 항상 조금씩 결과물이 달라지게 된다. 그리고 이 결과물이 맘에 들고 안 들고는 굉장히 주관적인 영역이기 때문에... 모두가 맘에 들어하는 결과물이 나왔는데 내가 거기서 실수를 해서 그걸 못 쓰게 된다 그러면 나는 대역죄인이 되는 것이다...

    • 그렇기 때문에 촬영을 진행할 때 구성원들이 대체로 예민하고 거친 편이고 나도 그 시절엔 참 예민했다.

    • 그에 반해 코드는 나중에 수정할 수 있는 기회가 있기 때문에 지속적으로 돌볼 수 있는 느낌이 들어 좋았다. 그렇기 때문에 이제 더이상 예민하게 굴지 않아도 된다! 그래서 그런지 회사에 다녀보니 사람들이 하나같이 순하다는 생각이 정말 많이 들었다.

  3. 더울 때 시원한 곳에서, 추울 때 따뜻한 곳에서

    • 실내 근무인 점이 최고 장점이 아닐까 싶다.

    • 전 직장에선 실외 근무도 많았기 때문에 더울 때 더운 곳에서, 추울 때 추운 곳에서 일했고 근무 스케줄도 들쭉날쭉하고 일 근무 시간이 대체로 길었다. 그러다보니 몸이 조금씩 낡아가는 것이 느껴졌다.

    • 그래서 처음 회사 출근했을 때엔 9 to 6로 고정된 근무시간이 조금 낯설게 느껴졌지만 적응되니까 규칙적인 생활을 하게 되고 좋다.

  4. 새로운 걸 꾸준히 공부하는 것이 재밌다.

    • 일하면서 늘 공부하는 느낌이라 재밌다. 계속 같은 일만 하면서 머리가 굳어가는 느낌을 받는 것을 참 싫어하는데 개발은 그렇지 않아서 재밌다.

    • 이것 또한 전 직장을 관두게 되었던 이유 중의 하나였다.

이 외에도 여러가지가 있지만 가장 크게 느끼는 장점들을 적어 보았다. 그럼 이제부터 본격적으로 옛날 이야기 시작...

in 2020

  • 캐나다 워홀 중 C언어를 접하게 된다.
  • 본격적으로 개발 공부를 하려고 2020년 11월에 귀국한 후 자가격리 기간동안 아이패드 앱인 플레이그라운드 스위프트로 코딩을 이렇게 하는거구나를 배웠다.
    • 캐릭터를 움직여서 목적지에 도달하게 하는 코드를 작성하면서 메서드 작성법과 배열 인덱스가 0부터 시작한다는 것도 배우고 재밌었다.

자세한 TMI가 궁금하다면 아래 링크에서...
https://velog.io/@miro7923/개발자가-되기까지-2020년에-했던-것들

in 2021

  • 2020년 12월부터 게임 클라이언트 개발자를 목표로 전문 학원에 등록하고 코딩 공부를 시작했다.

  • 약 1년 간 C/C++, C# Unity 등 게임 개발에서 주로 사용되는 프로그래밍 언어와 프레임워크를 배웠다.

    • 이 때 배웠던 C/C++이 앞으로의 개발 공부에 많은 도움이 되었다. 이후 어떤 새로운 언어를 배우더라도 동작 원리를 이해하기 쉬웠다.
  • 1년 후 취직을 준비할 때 게임 클라이언트 개발자로서의 앞날에 의문이 들었다.

    • 게임 업계의 규모가 생각보다 작다는 생각이 들었다.
      • 전 직장 역시 산업 규모가 엄청 크지 않고 한 다리 건너면 서로 알 정도로 좁은 업계였는데 거기서 내가 좀 질린 면이 있었다. 그래서 게임 업계에 대한 매력을 하락시키는 요인으로 작용했다.

    • 게임 클라이언트 개발자의 공급은 많았기 때문인지 수요가 엄청 많다는 느낌을 받기 어려웠다. 때문에 경쟁률이 높아 보였다.
      • 상대적으로 게임 서버 개발자의 수요는 많았지만 공급이 적다는 느낌을 받았다.

    • 게임 클라이언트 개발 위주로 배웠다 보니 게임 개발을 하지 않으면 다른 분야에서 써먹기 어렵겠다는 생각이 들었다. 서버라면 좀 더 범용성이 있을거도 같은데 안타깝게도 내가 다녔던 학원은 클라이언트 개발만 가르쳤다.
      • 안 그래도 효율성을 중시하는 성격이라 좀 더 범용성 있는 기술 스택을 가지고 싶었다.

위에서 언급한 단점들을 상쇄시키면서 개발도 계속 할 수 있는 직업이 웹 백엔드 개발자라는 생각이 들어 웹 개발 공부를 시작했다.

자세한 TMI가 궁금하다면 아래 링크에서...
https://velog.io/@miro7923/개발자가-되기까지-2021년에-했던-것들

in 2022

  • 2021년 12월부터 6개월 과정으로 진행 되었던 국비지원 웹 개발자 양성 과정에 등록하고 웹 개발 공부를 시작했다.

  • Java, Spring framework, RDBMS(MySQL, Oracle), MyBatis, HTML/CSS, JavaScript, JQuery, JSP, Linux, Github들을 활용한 웹 개발을 배웠다.

  • 배웠던 기술들이 다소 레거시이긴 했지만 게임 학원에 다닐 때에 비하면 CS 지식들을 자세히 알려줘서 좋았다.

    • 컴퓨터 공학 전공자들이 공부하는 수준의 지식을 습득할 필요가 있겠다는 생각이 들어 온라인에 무료로 오픈된 전공강의들을 수강했다.
  • 공부한 내용들을 복습하고 나중에 다시 보고 싶어서 기술 블로그 운영을 시작했다.

    • CLI 환경에서의 Github 사용에 익숙해지려고 일부러 깃헙 블로그를 사용했었다.
    • 잔디 심는 것이 굉장한 성취감이 있어서 1일 1포스팅 하고자 노력했었다.
    • 작성 중인 포스트의 미리보기가 불편해서 지금은 벨로그로 넘어오게 되었다.
  • 본격적으로 코딩테스트 공부를 시작했다. 하지만 여전히 어렵다.

  • 개발 공부를 시작하고나서는 처음으로 팀 프로젝트를 해 보았다.

    • 팀을 이루고 영화촬영을 해 본 경험은 많지만 개발 프로젝트를 하는 건 처음이라 궁금하고 걱정되기도 했다.
      • 팀장으로서 프로젝트를 이끌어가게 되었는데 생각보다 재밌었다.
      • 그렇다. 나는 내 생각보다 훨씬 많이 리더로서의 책임과 관심을 즐기는 사람(관종)이었던 것이다...

    • 당시 부팀장을 담당했던 친구와 프로젝트에 사용될 데이터베이스 설계를 했었는데 프로젝트의 설계에 대한 이해도를 높이는 데 많은 도움이 되었다.
      • 처음 기획단계에서 의견을 많이 내고 굉장히 적극적으로 참여를 했었기 때문에 프로젝트의 설계를 완전히 이해했다고 생각했는데 알고보니까 아니었던 것이다. 직접 기획했지만 50-60% 정도만 이해한 것이었고, 데이터베이스를 설계하면서 비로소 우리 프로젝트를 완전하게, 100% 이해할 수 있었다.
      • 이 경험 이후로 입사 후 프로젝트에 투입이 된다면 그 프로젝트의 데이터베이스 설계부터 분석하는 것이 빠르게 적응할 수 있는 길이겠다는 생각이 들었다.

    • 팀원들과 서로 감정이 상하지 않고 프로젝트를 끝까지 무사 수행하는 것을 1순위 목표로 정하고 이루기 위해서 정말 많이 노력했다.
      • 당시 사회적 거리두기 해제 전이라 다들 재택으로 수업을 들을 때였다. 그래서 비대면으로 할 수 있는 소통 수단 내에서 오해가 생기지 않게 하려고 굉장히 노력했다.
      • 가장 기본적인 소통은 카카오톡 단체 채팅방으로 했으며, 각종 공지사항, 수정사항, 부탁 등은 바로바로 단톡방에서 공유했다.
        • 특히 빠른 코드리뷰를 위해 새 Pull Request가 올라오는 등 코드 상의 수정사항이 생기면 바로바로 단톡방에서 공지했다.(메일을 확인하지 않는 사람도 많아서...)
      • 일주일에 한 번씩 화상회의를 진행했다.
        • 직접 얼굴을 보지 않고 텍스트로만 대화하다 보면 오해가 생길 수 있기 때문에 얼굴을 보게 될 때엔 많이 웃으면서 먼저 말을 걸고, 말을 많이 하고 분위기를 부드럽게 만들고자 노력했다.(원래 말이 많은 성격이 아니지만 주어진 책임에 맞게 가면을 조금 썼다)
        • 팀장이었기 때문에 회의가 지루해지지 않고 집중력있게 진행될 수 있도록 이번 회차 회의 내용과 방향을 미리 시뮬레이션을 해 온 뒤 회의에 참여했다. 그리고 빠르게 진행시켰다.
        • 오해가 생기지 않게 어떤 행동을 하거나 부탁을 하게 되면 그 이유를 최대한 상세히 설명했다.
      • 프로젝트 진행 중 나의 진행 방식에 아쉬운 점이 있거나 기분 나쁜 점이 생기면 바로 수정할테니 꼭 말해달라고 부탁했다. 단톡으로도, 화상회의 때에도 가장 많이 했던 말 중에 하나였던 것 같다.
      • 다행히 팀원들도 모두 좋은 사람이었기 때문에 노력이 통했고 프로젝트는 무사히 마쳤다. 지금도 서로 안부 물어보면서 사이 좋게 지낸다.
  • 6월 초에 학원을 수료하고 6월 중순에 SI 회사에 취직이 되어 현재 재직중이다.

    • 현대모비스가 주 고객사여서 여기로 파견오게 되었다. 건물 시설이 좋다.
    • JAVA 개발자를 채용한다 하여 입사했으나 풀스택 개발을 지향하는 사내 분위기라 처음에 원했던 백엔드 개발만을 할 수는 없었기 때문에 백엔드 개발자로서의 전문적인 커리어를 쌓기 어려워 보였다.
    • 때문에 입사 후 투입된 첫 프로젝트에서는 JavaScript와 함께 프론트엔드 개발을 하게 되었다.
  • 레거시 위주인 백엔드 기술스택을 갱신하고자 인프런에서 유명한 강의 우아한형제들 최연소 기술이사 김영한의 스프링 완전 정복김영한의 스프링 부트와 JPA 실무 완전 정복 로드맵 강의 수강을 시작했다.

    • 그 때문이었을까...? 인프콘 2022 참가자 추첨에 당첨이 되어 참가하게 되었다.

    • 이런 추첨류 이벤트에서 당첨이 되어 본 적이 처음이라 신기했고, 개발자 컨퍼런스 참가도 처음이라 신기했다.

    • 요즘 IT 회사에서 쓰는 기술스택과 추구하는 방향등에 대한 키워드를 얻을 수 있어 좋았다. 비슷한 목표를 가진 사람들을 많이 보니까 취직 후 적당히 현실에 안주하려던 마음을 다잡는데 도움이 되었다.

    • 그래서 처음 웹 개발을 시작했던 때의 목표대로 백엔드 개발자로서 전문적인 커리어를 쌓아야겠다고 결심했다.

  • 인프콘에서 결심한 것의 시작점으로 프로그래머스에서 [스터디/14기] 단순 CRUD는 그만! 웹 백엔드 시스템 구현(Spring Boot) 과정을 수강했다.

    • Spring Security, JWT를 활용해 사용자 인증/인가 처리를 하는 로직을 배웠다.
      • 학원에서 이것들의 존재를 알려준 적이 없어서... 이번에 처음 알았는데 오래 전부터 사용되어 오고 있던 기술들이라 더 충격이었다.
      • 현재 진행 중인 토이 프로젝트(소비일기)에 적용해 보면서 인증/인가 과정과 코드 작성법을 더 이해할 수 있었다.

    • 자바 제네릭 활용법을 배웠다.
      • 이것 또한 학원에서 자세히 알려주지는 않아서 ArrayList를 사용할 때 자료형을 지정해주는 정도인가 보다~로 알고 있었는데 전혀 아니었다.
      • 제네릭 클래스를 만들 수 있다는 것도 알게 되었고, 이걸 잘 활용하면 훨씬 가독성 높은 코드를 작성할 수 있다는 것을 알게 되었다.
      • 제네릭이 궁금해서 더 공부해 봄 : https://velog.io/@miro7923/JAVA-제네릭Generics과-와일드카드Wildcard

    • Restful API 작성 시 ApiResult<T>와 같이 리턴 타입을 통일해 주는 기법을 배웠다.
    • 예외처리 클래스를 custom으로 작성하는 방법도 배웠다.
    • AWS S3를 활용해 클라우드 환경으로 파일 업로드를 하는 방법을 배웠다.
    • KAFKA로 푸시 알림 기능을 만들 수 있다는 것을 배웠다.

자세한 TMI가 궁금하다면 아래 링크에서...
https://velog.io/@miro7923/개발자가-되기까지-2022년에-했던-것들

To be continued...

profile
당면한 문제는 끝까지 해결하기 위해 노력하는 주니어 개발자입니다.

0개의 댓글