신기술 도입시 유의사항

회사에 처음 입사해서 회사의 기술스택을 보고 놀라지 않을 수 없었다. JSP는 학교 수업에서조차 다루지 않을 정도로 레거시 기술이었고 우리는 프론트엔드 개발을 꿈꾸면서 회사에 입사했으니깐.

낯선 개발환경 속에서 학습 과정은 필요했고 JSP, JSTL, EL, Vue.js 등을 공부하면서 회사 기술 스택에 익숙해지는 중이다. 이 과정에서 내가 어떤 감정과 생각이 드는지 그리고 어떤 마음가짐인지가 중요할 것 같은데, 결론을 먼저 말하자면 꽤 긍정적이다.

우선 회사에서 일을 하는 것은 내게 재미있다. 그게 가장 크고 중요한 부분이다. 코딩이 재밌냐고 물어보면 아직 확실하게 답변하지는 못한다. 하지만 회사에서 코딩하는 것은 확실히 재미있다.

회사 코드에는 문제가 정말 많다. 구체적으로 말하자면 기술적 부채의 크기가 크다. 의존성이 심하고 컨벤션이 지켜지지 않아 가독성은 떨어지고 코드양은 어마어마하게 방대하다. 이런 기술적 부채는 현재는 큰 문제가 되지 않을 수 있지만 새로운 기능들을 추가하고 신규입사자가 들어오면서 계속해서 문제들은 커져만 갈 것이다. 코드가 복잡하다면 새로운 기능을 개발하는 시간이 계속 늘어져 갈 것이고 유지보수도 어려울 것이다. 기술이 계속해서 레거시가 된다면 더는 해당 기술을 사용하는 신규 인력을 채용할 수 없을 수도 있다. 채용하더라도 사내 업무에 적응하는 시간과 공수가 많이 들 것이다.

이는 미래 회사의 발전에도 중요한 문제가 된다.

이런 환경 속에서 내가 꽤 긍정적인 생각이 들었던 이유는 개선점들이 많이 보였기 때문이다. 개발자는 기술을 통해 문제를 해결하는 사람이고 그것에서 일의 보람과 즐거움을 찾는다. 나는 현재의 회사의 환경 속에서 그런 보람과 즐거움을 충분히 찾을 수 있다고 느꼈다. 또한 이미 많은 고객을 보유하고 있는 프로덕트를 개발한다는 점도 좋았다. 실제 고객이 사용하는 서비스를 개발하는 것은 언제나 재미있고 보람을 느낄 수 있는 일이다.

내가 생각하는 개선점은 아직 조금 더 회사 기술에 익숙해지고 공부를 더 했을 때 구체화 될 것 같다. 또한 업무 프로세스에 익숙해지는 것과 회사에서 사용하는 프레임워크들에 대한 분석도 더 필요할 것 같다.

그 이후에 생각하는 개선점은 크게 2가지로 나누어진다.

1. 현재 기술 내에서 개선점 찾기

2. 새로운 기술의 도입

오늘 내가 가져온 글은 2번 항목에 대한 글이다. 글을 읽어보고 새로운 기술을 도입할 때 어떤 유의 사항이 있을지 정리하고 앞으로 회사에서 어떻게 적용하면 좋을지 생각해보았다.

신기술 잘 골라 쓰는 개발자가 되려면, 퍼플아이오 CTO 김충섭

글에서 인상깊게 읽은 문장 + 생각을 정리해보았다.

  • 적정기술은 해당 지역의 인프라나 사용자를 고려해 만든 기술을 의미한다.
  • 회사의 적정기술을 찾는 것이 가장 중요한 포인트이다.

적정기술을 찾을 때 고려해야할 사항을 정리해보자.

  • 팀원들의 공감을 얻을 수 있는 기술인가

    • 회사, 의사결정자가 기술에 대해 부정적인가
    • 설득은 쉽지 않다. 철저히 준비해야한다.
    • 신기술을 테스트하고 도입할 수 있는 여유가 있는가? 회사일이 너무 바쁘면 레거시 개선과 인력 충원에 집중해야할 수 있다.
    • 다들 반대하면 회사 대표 또는 팀장이 되면 된다.
    • 단 팀원과 소통 없는 일방적인 도입은 독이다.
    • 잘하는 팀원이되어 기술 이해도를 높이고 팀 내 기술 평판을 좋게하자
    • 관성은 논리로 설득하기 어렵다.
    • 비효율적으로 하던것 -> 효율적이라고 생각하는 것을 도입했을 때 오히려 더 불편하게 느껴질 수 있다.
  • 그냥 쓰고 싶어서 기술을 도입하는 것은 아닌가
  • 많이 쓰고 있는 기술인가
  • 기술을 도입했을 때 큰 이점이 있나 (리스크 < 이점, 리스크 - 수많은 트러블슈팅)

    • 회사에 도움이 되는가?
    • 새로운 기술도 언젠가는 레거시가됨
    • 신기술 도입은 회사 브랜딩에 도움이 됨
    • 회사의 성장은 -> 개인의 성장이 될 수 있음
    • 빠르고 안정적인 아웃풋이 필요함 (정해진 기간, 정해진 예산으로 결과물을 도출해야함)

일개 팀원인 내가 신기술을 도입하는 방법

  • 기술 검토 - 스터디 - 사이드프로젝트 - 사례 공유 / 공감대 형성 - 일부 적용 - 적용 확대 (점진적 도입)
  • 실패하기

    • 새로운 기술을 성공적으로 도입할 확률은 높지 않다
    • 실패를 가정하고 대비해야한다.

프론트엔드 개발자 이지원입니다.@thinkanddoit
🍎 경험주의자 입니다. 🙋🏻‍♂️ 함께 성장하는 것을 좋아합니다. 📈 꾸준히 성장하기 위한 습관을 들입니다. 🤔 프로세스 고도화에 관심이 있습니다. 🗣 스몰톡을 좋아합니다. ☕️ 커피를 좋아합니다. ⚽️ 축구를 좋아합니다.

GitHubVelogResume