본문 바로가기

IT/개발상식

[개발상식] 완벽한 프로젝트와 기술 스택

안녕하세요. 반가워요. 요즘 참 날이 변덕스럽죠. 언제는 더웠다가 언제는 춥고, 비도 자주오는 것 같구요. 이런 변덕스러운 날씨에 영향을 받아 블로그를 작성하게 됐어요. 이번 주제는 꽤나 무거운 주제일 수도 있어요. 그리고 누군가에게는 예민한 주제일 수도 있구요.

아, 저의 근황이 궁금하시다구요?

저는 최근, 새로운 환경에 적응하랴, 개발하랴, 바쁘게 살아가고 있답니다. 그런 영향에서인지, 제 개인 깃헙에 기여할 시간이 많이 나지 않는 느낌이에요. 매우 아쉽네요. 해보고 싶은 개인 프로젝트 및 공부가 많았는데, 최근에 새로운 환경에 적응하느라 최선을 다하고 있어요.

아무튼 저는 이렇게 살아가고 있어요. 이번 주제는 프로젝트와 기술스택에 대한 이야기에요. 사실 이전 포스트와 내용이 다소 겹치는 부분이 있을 수 있으나, 그래도 꾹 참고 읽어주세요. 일부분 다른 부분이 분명 존재할 것이거든요. 이번 게시글이 개발상식 카테고리에 포함되는 것이 맞나? 싶은 생각도 조금 있지만, 지금 현재 저의 블로그는 개발상식만 주기적으로 업데이트 되므로, 여기에 올리기로 결정했어요.

..어쩔 수 없어요. 물론 이것도 제 마음이에요;;


기술스택

여러분은 주로 어떤 기술을 사용하여 개발을 하시나요? 먼저 저부터 소개를 드릴게요. 최근 저는 아래와 같은 기술스택으로 개발하고 있어요.

React18

Next14

TypeScript

Spring Boot

Kotlin

JPA

크게 적어보면 위와 같아요. 물론 그 안에 상세히 더 적을 수도 있지만 대략적으론 위와 같습니다. 저는 FullStack으로 개발을 이어나가고 있기 때문에, 저렇게 다양한 스택을 접해볼 기회가 꽤 있는 것 같아요. 조금만 더 구체적으로 이야기를 드리자면, FrontEnd의 경우에는 react-query를 주로 사용하고 있습니다. 스택 자체로만 본다면 정말 아름다운 조화인 것 같아요. React 자체만으로 극복하기 어려운 것들을 Next로 보완하고 있고, 캐시와 auto-fetch와 같은 것들을 기존의 axios만으로는 보완하기 어렵기에 react-query를 도입하여 같이 사용하고 있으니, 꽤나 합리적이고 안정적인 것처럼 보이기도 합니다. 괜찮죠?

서버의 경우엔 주로 Kotlin과 Spring Boot, JPA를 사용하고 있어요. 이것 또한 매우 안정적입니다. 한국에서 많이 사용되고 있는 Spring Boot와 프로시저와 다른 도메인 주도 개발을 가능하게 해주는 JPA ORM을 사용하니깐요. 더불어 이와 함께 MSA환경으로 구축되어 있어요. 이것 또한 꽤나 괜찮죠?

위와 같은 기술 스택이라면 완벽한 프로젝트의 구성이 가능할 것만 같은 설렘이 가득합니다.


프로젝트

여러분. 결론부터 말씀드리자면 저는 스택이 프로젝트의 완성도를 결정짓는다고 생각하지 않아요. 심지어 프로젝트의 경우 한 번 만들어 두면 꽤나 오래 사용할 것이기 때문에, 지속적인 관리가 필요해요. 따라서 개발자의 주 업무는 버그 분석 이후 이슈 해결이 주가 됩니다. 매번 신상품을 개발하는 법은 없어요. 기존의 프로젝트를 오래 이끌어 가면서 운영 및 유지보수를 통해서 지속적인 관리가 필요해요. 즉 제가 드리고 싶은 말씀은 여러분이 한 번 코드를 작성하는 순간 그 프로젝트는 레거시가 됩니다. 그리고 기술스택에 따라 프로젝트의 안정성이 달라지는 것이 아닌, 지속적인 리팩토링을 통한 안정화를 통해 서비스가 비로소 안정기에 접어든다고 생각해요.

근데 요즘 보면 참 안타까운 경우들이 많습니다. 기업뿐만 아니라 프로그래밍을 공부하시는 대부분의 사람들이 기술스택을 처음부터 정해놓고 가는 경우가 대다수인 것 같아요. 물론 프레임워크와 같은 것들은 미리 정해놓을 필요는 있겠죠. 하지만 최근에 나온 기술스택을 도입한다고 해서 그 프로젝트가 완벽하게 완성되리란 보장은 없는 것 같아요.

사실 스택이 뭐가 중요한가요. 막말로 매일매일 관리해준다는 보장하에 HTML로 사이트를 관리해도 전혀 문제 없죠. Docker와 같은 컨테이너가 왜 필요한가요. 솔직히 매일매일 배포할때마다 수동으로 배포해도 전혀 문제가 없어요. 프로젝트의 완성은 기술이 아닌 저희의 노력입니다. 그리고 저희의 노력을 덜어주기 위해서 기술이 존재한다고 생각해요.

근데 참 안타까운 것은 이러한 기술을 모른다고 해서 한 개발자를 배척하면 안된다고 생각해요. 기술이야 필요하면 배우면 되는 것이고, 본인의 편리함을 위해 이것저것 마구잡이로 끼워넣어서도 안된다고 생각합니다. 이야기가 길어졌는데, 그냥 속상해서 그래요.

최근 취업시장을 보면 기술이 너무 정형화된 느낌을 많이 받습니다. 서버를 한다 그러면 무조건 Spring Boot, Java or Kotlin뿐이고 프론트엔드를 한다고 하면 무조건 React만 선호하는 것 같아요.


결론

그냥 속삼함에 제 개인 이야기를 적어봤어요. 여러분 생각은 어떠신가요?
그럼 이번에도 급하게 마무리 하도록 하겠습니다.

'IT > 개발상식' 카테고리의 다른 글

무엇이 개발자를 힘들게 할까  (0) 2024.06.30
[개발상식] 라이브러리와 프레임워크에 관한 건  (0) 2024.04.06
프론트엔드, 백엔드  (0) 2024.03.26
의존성 주입  (0) 2024.02.25
Class  (0) 2024.02.06