ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [풀스택 데브코스 후기] 비전공자 출신이지만 데브코스를 통해 많은 걸 얻었어요. - 1기 수료생 이호성 님
    교육 이야기/인터뷰 2024. 6. 10. 11:27
    Summary

    데브코스 수료생 이호성 님의 풀스택 데브코스 후기 인터뷰입니다. 호성님은 비전공자 출신으로, 평소 개발 역량을 기르는 데 도움을 받았던 프로그래머스에서 부트캠프를 진행한다는 모집 글을 보고 데브코스에 지원하게 되었다고 하는데요. 이호성 님의 데브코스 후기가 궁금하신 분들은 아래 인터뷰를 끝까지 읽어보시길 추천드립니다.

     

     저는 Hello World 한 줄도 작성해 본 적 없는 비공전자 출신이지만,
    데브코스를 통해서 이루고자 했던 목표는 대부분 이루었어요.
    스스로 학습, 교류하여 성장하고자 하는 의지가 있다면
    데브코스에서 저처럼 많은 것들을 얻어가실 수 있을 것입니다.



    안녕하세요. 자기소개 부탁드립니다.

    안녕하세요. 저는 교육대학교 (초등)를 졸업한 후, 개발자로 진로를 변경한 이호성입니다.
    현재 프로그래머스 웹 풀스택 데브코스 1기를 수료 후, 백엔드 개발자로 취업을 준비 중에 있습니다.


    데브코스는 어떻게 알게 되셨나요?

    독학을 하던 도중 제 3의 유튜브를 통해 프로그래머스도 데브코스를 운영한다는 소식을 접했고, 
    상세 운영 내용은 프로그래머스 사이트의 광고를 통해서 알게 되었습니다.

    타사도 있지만 프로그래머스를 선택하신 이유가 있을까요?

    저는 앞서 언급대로 비전공자입니다. 처음 시작을 했을 때는 Hello World 한 줄도 작성해 본 적이 없었습니다. 
    제 개발자가 되기 위한 첫걸음은 고향 옆 지방 국비 학원에서 자바, 스프링 부트 웹 풀스택 과정을 수료하는 것으로 시작되었습니다. 다만 여건 상 배운 기술 스택이 조금 오래되었고, 충실히 배운 부분도 많았지만 부족한 부분도 있었습니다.

    제 첫 프로그래밍 언어는 자바였는데, 강의 외적으로도 더 공부하고 싶어서 프로그래머스의 코딩 테스트를 적극 이용했었습니다.  프로그래밍 언어를 다루어 문제를 해결한다는 것은 이런 것이구나 하며 많은 도움을 얻었고 코딩, 개발 역량을 기를 수 있었습니다.
    전에 다닌 국비학원 수료 후에는 비교적 최신 기술 스택에 대해 무지하고 개발에 대한 앎과 능력이 아직은 부족하다고 느꼈습니다. 그래서 해당 과정 중에 없었던 리액트 독학을 하고 있었고, 이후 프로그래머스의 데브코스 모집 사실을 알게 되었습니다. 

    📌이러한 배경에서 제가 프로그래머스를 선택한 이유는 다음과 같습니다.

    첫째, 코딩 테스트 서비스 제공으로 제 성장에 많은 도움을 주었던 기관에서 개최한다는 점
    둘째, 배우고 싶었던 비교적 최신의 기술 스택들을 다룬다 는 점
    셋째, 기존의 자바, 스프링 부트 과정과 달리 타입스크립트 한 언어로 풀스택을 경험할 수 있다는 점
    넷째, 이전에 경험해보지 못한 CI/CD, 배포를 강의 중에 다룬다는 점.


    5개월 동안 데브코스를 진행하면서 무엇이 가장 기억에 남나요?

    멘토링, 리액트 강의 그리고 팀 프로젝트가 가장 기억에 남았습니다.
    앞의 두 항목은 이후의 질문에서 언급하고 여기선 팀 프로젝트에 대해 이야기하겠습니다.

      1) 데브코스 이전 국비 학원에서는
    두 팀 프로젝트에서는 제가 모두 팀장 역할을 하면서,

    구상부터 프론트와 백엔드 코드 작성을 지나 마무리까지 안 관여한 곳이 없을 정도로 정신이 없었습니다. 
    그래서 그런지 동작은 하지만 객체 지향적, 클린 코드와는 거리가 멀고 유지 보수가 힘든 코드가 작성되었습니다.
    또 과정은 풀스택이지만 강사님들이 현직에 계셨을 때 전부 백엔드 개발자셨어서 
    프론트엔드 쪽 배움이 상대적으로 부족한 것과 사용한 기술 스택들이 오래되었다는 점 등이 아쉬웠습니다.

      2) 데브코스에서는
    이 아쉬움을 해소하기 위해서 스스로 노력했습니다.

    특히 과정 중 코드를 작성할 일이 많았는데 이때 강의를 따라가기보다는 
    주제와 요구 사항 등 큰 틀만 보고 프론트, 백엔드 코딩을 따로 2, 3회 차 진행하면서 주도적으로 학습하였습니다.
    이를 통해 테스팅, 디자인 패턴 등등 새로 배운 점들을 팀 프로젝트에도 적용함으로써 이전보다는 어느 정도 발전하고 성장했다고 생각합니다. 
    실제로 제가 취업 후 직장에서 팀원과 역할을 분담하고 협업해서 일을 한다는 느낌으로 임해서 실전감도 기를 수 있었던 것 같습니다.

    개발에 관심이 많고, 서로 지지해 주는 환경이라
    학습의 단초가 되는 키워드를 많이 얻을 수 있었어요

     

    데브코스를 하면서 성장했다고 느꼈던 계기가 있다면?

    동기님들부터 개발에 관심이 많고 이를 지지해 주는 분들이 계시는 환경이어서 학습의 단초가 되는 키워드를 많이 얻을 수 있었습니다. 
    특히 제 나름대로의 백엔드 코드 구조와 패턴을 조직하고 통합 테스트를 연습하는 등 혼자 공부한 내용들을 스프린트 내내 그리고 팀 프로젝트에도 적용시킨 게 좋았습니다. 
    이뿐만 아니라 프로젝트 진행 도중 누가 요구하거나 문제 되지 않았음에도 유지 보수와 성능 최적화 측면에서 스스로 고민하고 코드를 더 개선했던 점도 제가 성장했다고 느꼈습니다.

    어려운 과제를 극복하고 기술적으로 성장한 경험이 있다면 이야기해 주세요.

    팀 프로젝트 중에 트러블 슈팅한 경우가 많았는데요 그중에서도 기억나는 것들을 이야기해 보겠습니다.

      1) 라이브러리 이슈 해결
    자주 사용하던 라이브러리 express-async-errors가 팀원들과의 개발 환경 조율로 인한 버전업 때문인지 작동하지 않았을 때, 래퍼 함수를 이용한 클로저 패턴으로 수동으로 구현했습니다.
    이를 통해 백엔드의 모든 지점에서 어떤 에러가 발생하든 공통으로 에러 처리에 대응할 수 있었습니다.


      2) Express와 Socket.IO 구조 조정
    Express 구조와 채팅을 담당한 Socket.IO의 레퍼런스 구조가 맞지 않을 때, 따로 클래스를 선언하거나 구조를 조금 바꿔서 코드 패턴을 맞췄습니다.
    이전에 경험해 본 프로젝트에서도 외부 API를 활용할 때 해본 것이지만, 개발을 하다 보면 레퍼런스 문서가 제공하는 정보 그 이상의 구조나 기능 커스텀을 하고 싶을 때가 많습니다. 이번 팀 프로젝트에서도 해당 경우에 기초가 튼튼하다면 얼마든지 커스텀해 내가 원하는 목표를 달성하기 위해 사용할 수 있다는 자신감이 상승했습니다.

      3) 프론트엔드 팀과의 협업
    프론트엔드 분들이 제공된 API 활용에 어려움을 겪을 때, 백엔드 담당이어도 프론트 분들이 작성할 코드 구조나 방식을 구상해서 제안하거나 테스팅을 거친 코드더라도 문제가 발생했을 시 무엇이 원인인지 파악해 해결했습니다.
    피어 리뷰에서도 해당 경험을 장점으로 언급해주셔서 고마웠습니다.

      4) 추가 변경 사항 대응
    프로젝트 진행 중 액세스 토큰만 발급하던 구조에서 리프레시 토큰도 함께 발급해야 하는 추가 변경 사항이 생겼습니다. 이미 엑세스 토큰만을 발급하는 것을 기준으로 작성된 프론트엔드와 백엔드 코드가 많았지만, 명세화된 API 문서와 코드를 검토하여 수정할 부분을 파악하고 모두 수정했습니다. 프론트엔드 팀과도 소통하여 필요한 변경 사항을 함께 논의한 결과, 문제없이 리프레시 토큰을 활용하도록 프로젝트를 성공적으로 변경할 수 있었습니다.

      5) 배포 단계 문제 해결
    개발용 테스트 서버에서는 문제가 없었지만, 빌드 후 배포 단계에서 문제가 발생했습니다.
    원인은 태그 관련 연산을 최적화하기 위해 미리 생성해 둔 인덱스 파일이 빌드 시 누락된 것이었습니다.
    인프라를 담당하셨던 팀원분께서 자신이 문제의 원인이라고 생각하시고 해당 문제를 혼자서 3일 동안 고민하셨습니다.
    마감일이 다가오자 저에게 문제를 공유했고, 여러 방면으로 문제 지점을 좁혀나갔습니다.
    최종적으로 try-catch 구문을 추가해 에러를 콘솔에 표시한 결과 문제를 발견하고, 인덱스 파일을 빌드에 포함시켜 문제를 해결했습니다.

      6) 30분의 원칙
    저는 이전 프로젝트에서부터 팀원분들과 함께 강조하는 저만의 원칙이 있는데 그것은 30분 원칙입니다.  
    작업할 때 30분 이상 막히는데 해결 방법에 대해 감을 못 잡고 있거나, 자신의 문제라고 여겨지더라도 항상 협업하는 다른 사람과 문제 상황에 대해 소통해야 된다는 것입니다. 
    그 막힌 부분의 내용이 어떤 것이든 서로 협업해서 문제를 해결하고 목표를 달성하기 위해서는, 
    혼자서 고민하는 거보단 여럿이 고민하고 문제 상황을 해결함으로써 함께 성장할 수 있다고 믿기 때문입니다. 
    물론 저도 이 30분을 넘어서는 경우가 많지만 원칙을 지키고자 노력하고 있습니다.

      7) 멀티태스킹 능력
    위에서 본 바에서 이야기되지 않은 문제 상황에서의 저의 강점 중 하나는 
    상황이 동시에 발생하더라도 프로젝트의 전반적인 구조와 개발 방향성을 온전히 이해하고 있기 때문에 동시에 대처하면서 자신의 본 개발 업무도 처리하는 멀티 태스킹 능력이라고 생각합니다. 이번 프로젝트에서 이 강점을 좀 더 강화할 수 있었던 것 같습니다.

    허나 제일 좋은건 구상, 기획, 설계, 명세화 단계에서 좀 더 세심하게 고려해서 애초에 저런 문제 상황들이 발생하지 않도록 하는 것이 최선이라고 생각하며 수료 후에도 이를 위해 계속해서 노력할 것입니다.

     

    믿고 맡길 수 있는 동료가 있고,
    제 파트에만 온전히 집중할 수 있는 환경이 굉장히 좋았습니다.



    최종 프로젝트는 무엇을 만들었나요?

    SNS 나 데이팅 앱이 범람하는 요즘 사진, 동영상 등 자기 자신을 어필해야 되는 포인트가 너무 많고 복잡하다는 문제의식에서 저희 프로젝트는 출발했습니다.
    그래서 저희 조는 전통적이면서도 강력한 자기 어필의 수단이 될 수 있는 텍스트 미디어인, 일기를 소재로 한 일기 기반 소개팅 웹 어플리케이션을 개발하였습니다.
    바로 (마음을) 연 다(이어리)라는 캐치 프레이즈에서 따온 "연다 Yeonda"입니다.

    • 좋았던 점은 조원분들이 담당하신 부분을 믿고 맡길 수 있었고, 대부분은 백엔드 개발에만 온전히 집중할 수 있었다는 것.
      조원분들과 교류하면서 새로이 배우고 얻어가는 점이 많았다는 것. 그리고 기존 프로젝트로 익숙하던 기술 스택이 아닌 새로운 기술 스택들을 따로 열심히 공부해서 프로젝트에 적용할 수 있었다는 점이 좋았습니다.

    • 아쉬웠던 점은 구상, 기획, 설계, 명세화가 세밀하지 못해서
      프로젝트 도중에 변경 사항에 대응하고 다른 조원분들께 수고로움을 들게 할 일이 있었던 것.
      Github Action 등을 사용하여 CI/CD 파이프 라인을 온전히 구축하면 좋았을 것.
      그리고 실 서비스를 가정하고 테스트해보는 기간과 CI/CD, 배포와 관련된 피드백이 프로젝트 완료와 별개로 따로 주어졌으면 했다는 것입니다.

    호성님 최종 프로젝트



    데브코스를 통해 이루고자 했던 목표가 있었나요? 어느 정도 이뤘다고 생각하세요?
      

    제가 이번 프로그래머스 데브코스를 통해서 이루고자 했던 목표는 대부분 이루었습니다.
    과정 내외에서의 배움을 체화해서 개발자로서의 취업의 마지막 걸음에 도달하는 것이 그 목표입니다.

    아쉬웠던 점은 대부분의 다른 동기분들과 마찬가지로 CI/CD 배포 학습 과정에서 많은 어려움을 겪었던 것이고,
    프로젝트에서 역할, 시간 상의 이유로 적용해 볼 법한 아키텍처를 온전히 적용하지 못한 것입니다.

    강의 덕분에 어느 정도 구조에 대한 개념은 잡혔지만 강사님께서 실습하시는 환경과 많이 달라서,
    스스로 설정 파일 코드라든지 세팅 등을 따로 해서 진행했어야 했는데요.
    마지막 연결 과정에서 발생한 문제를 해결하지 못했고 이에 대한 도움을 적극적으로 요청하지 못한 게 아쉬웠습니다.



    십수 년 경력의 현직자 강사님이 기본기를 다루고
    자주 사용하는 실사용 예제를 보여주셨을 때,
    정말 많은 것을 배웠습니다.

     

    기억에 남는 강사님이 있다면? 이유는?

    저는 현재 백엔드 개발자를 지망하고 있지만 취업 후 프론트, 데브 옵스와의 원활한 소통 및 협업을 위해서 
    그리고 회사 사정상 풀스택 개발자를 요구할 경우에 대비해서 데브코스에 지원하기 전 리액트, CI/CD 와 관련해서 배우고 싶은 게 많았습니다. 

    그래서 그런지 특히 멘토링까지 겸임하시면서 리액트를 강의해주신 문윤기 강사님의 강의가 너무 좋았습니다.
    십수 년의 경력이 훌쩍 넘어가시는 현직자신 문윤기 강사님께서 하나의 주제로 프론트 코드를 구현하시면서,
    기본기를 다루고 자주 사용하는 실 사용 예제들을 보여주셨는데 이때 배운 게 정말 많았습니다
    덕분에 리액트를 잘 알지 못한다고 생각했던 제가 이후 팀 프로젝트를 할 때, 기존부터 리액트에 익숙했던 프론트 분들과의 소통과 협업이 매우 원활했습니다.


    함께 스터디한 동료는 어땠나요?  수료 이후에도 커뮤니티를 통해 소통하고 있나요?

    총 세 번의 조 (스프린트 과정 중 두 번의 조 그리고 팀 프로젝트 조 한 번) 구성이 이루어졌었는데요
    첫 번째 조에서 자체적으로 진행한 리팩토링, 클린 코드 그리고 타입스크립트 스터디는 도움이 되었습니다.
    개발에 관심이 있고 적극적인 조원분들이, 진로가 크게 바뀌어서 성장의 단초가 될 키워드를 혼자서 파악하기 힘든 저에게 영감을 많이 주셨습니다.

    팀 프로젝트 조에서는 서로 간에 손발도 잘 맞고 소통과 협업도 잘 이루어져서 좋았습니다.
    이 인터뷰 내용을 작성하는 시점 바로 전에 조원분들과 함께 프로젝트 이후 뒤풀이도 재밌게 하고 왔습니다.
    데브코스 이후에도 동기분들과 계속 교류하면서 함께 개발자로 취업 및 성장하고자 합니다.

     

    스스로 개발자로서 역량에 대한 의문이 많았는데,
    현직자인 멘토님들에게도 긍정을 받으니
    비로소 제 의문에 확답을 받은 것 같았어요.


    멘토링이 꾸준히 진행된 것으로 아는데, 기억에 남는 멘토링 시간이 있다면?

    프론트엔드에 문윤기 멘토님이 계셨다면 백엔드에선 마르코 멘토님이 열정적으로 소통하시고 코드 리뷰까지 해주셨습니다. 데브코스 도중 저는 스프린트별 주제와 관련된 백엔드 코드를 3번씩 개인적으로 따로 작성하면서 제 나름대로 배운 것을 코드로 조직화했습니다.
    이때 제가 따로 요청하지 않았음에도 마르코 멘토님이 코드 리뷰를 해주셨습니다. 개선하고 배워야 할 부분을 점검받고, 괜찮은 부분은 긍정해 주셨습니다.

    이전 국비 학원을 다닐 때에도 코드 리뷰를 받은 적이 많았습니다. 
    그러나 팀 프로젝트 코드는 현업에서 물러나신 지 오래되신 강사님들께서 에러 해결과 관련해서만 리뷰해 주셨고, 
    현업에서 물러나신지 얼마 안 되신 강사님께서 리뷰해 주신 코드는 자료 구조 스스로 구현이나 토이 프로젝트 등 기초와 관련된 코드였습니다. 

    그래서 정말 내가 개발자로서 필요한 역량이 있는 건가, 취업해서 담당 일을 할 수 있을까 하는 자기 의문이 많이 있었습니다.  하지만 환경도 다르고, 개발과 관련된 분들이 많이 모인 데브코스에서 현직자인 멘토님들에게도 긍정을 받으니 비로소 의문에 확답을 받은 거 같아 좋았습니다.

     데브코스 수강을 고민하고 있는 분들에게 데브코스를 추천한다면 어떻게 이야기해주고 싶으신가요?

    자신이 최소한의 개발 기초가 있고 스스로 학습, 교류하여 성장하고자 하는 의지가 있다면 데브코스에서 저처럼 많은 것들을 얻어가실 수 있을 것입니다. 그리고 모든 과정이 온라인으로 진행되는 특성상 필수 참여가 요구되는 코어 타임을 제외하면 오프라인에서 빡빡한 일정을 소화하기에는 개인 사정 등으로 여유가 없으신 분들에게 최적입니다.


    앞으로 어떤 개발자가 되고 싶으세요?

    개발과 관련이 없던 진로를 걸어왔던 제가 선배, 동료 개발자님들께 도움을 받아 한 사람의 개발자로서 성장하고, 그동안 사용자의 입장에서 이용하기만 했던 도움이 되는 서비스들을 이제 직접 개발하여 제공하기를 희망하듯이 후배 개발자들과 제 개발의 결과를 사용할 사람들에게 이로운 경험을 드릴 수 있는 선배 개발자가 되고 싶습니다.


    후배 수강생들에게 응원의 한 마디나 조언을 아낌없이 전달해 주세요.

    console.log("Hello Juniors! You've got this!");

    댓글

Programmers