저는 커리어 시작을 닷넷으로 시작했고 지금은 코틀린 스프링 프레임워크로 바닥부터 플젝을 짜고 있어서, 제가 그 과정에서 느낀 점들을 조금 더 구체적으로 설명드려보겠습니다. 결론부터 말씀드리자면 다른 분들 답변과 유사하게 닷넷에서 자바로, 또는 그 반대로 전환하는것은 언제든 가능하다는 생각입니다. 결국 웹 기술을 개발하기 위한 소프트웨어적 패러다임의 큰 틀은 유사하다고 생각하고, 그 구현의 형태가 조금 다르다는 생각이에요. 그런 구현에서의 차이점들을 공부하고 경험하는게 다른분들 답변에서처럼 익힐 때 시간과 노력을 소모하게되는 부분인 것 같아요. — 구체적으로는 언어 단위 비교와 프레임워크 단위 비교로 나눌 수 있을 것 같아요. 먼저 언어로 비교하자면 자바 아니면 C#이냐 일 것 같습니다. 둘 다 강력한 객체지향 언어이고, 핵심 패러다임을 모두 구현할 수 있습니다. 개인적 취향으로는 같은 로직을 짤 때에 C#이 자바보다 코드양이 훨씬 적게 짜게되어서 더 선호하는 편입니다. Extension이나 async await 등 언어적으로 지원(Syntatic Sugar)하는 기능들이 많은 것 같아요. kotlin이 이런 부분이 또 강력해서 저는 java가 아닌 kotlin 스프링을 사용하게 되었어요. 프레임워크로 보면 스프링 계열이냐 닷넷 프레임워크 계열이냐 인데, Spring이나 ASP.NET이나 웹 개발의 핵심 패러다임들을 비슷한 방식으로 구현할 수 있습니다. 다만 위에서의 언어적 차이나, 구현 방식의 컨벤션이 다른 점들이 있는 것 같아요. 물론 코어 VM이 다른 방식으로 작동하기 때문에 운영단에서 필요한 경험치들도 조금 다른 것 같습니다. 이 부분은 어쩔 수 없이 부딫히면서 경험치로 쌓아가야 하는 부분인 것 같아요. 또한 라이브러리 생태계에서 조금 큰 차이가 있는 것 같은게, 닷넷의 경우는 많은 코어 라이브러리들을 마이크로소프트에서 직접 개발해놓은 경우가 많고, 이에 따라 문서도 마이크로소프트 문서 시스템에서 꽤 편하게 찾을 수 있었습니다. 반대로 스프링은 태생이 오픈소스에서 시작한 친구라 그런지 다양한 라이브러리들을 여기저기서 찾아서 넣어야 하는 경우가 많았던 것 같아요. 이에 따라 문서들도 각 라이브러리를 만든 주체별로 따로 있고 따라서 스프링으로 작업하면서 깃헙 등에서 오픈소스를 찾고 직접 까보는 능력이 조금 더 많이 필요했던 것 같아요. 써드파티 라이브러리가 많다 보니 연동할 때에 트러블슈팅하는 경우도 많이 있었던 것 같습니다. — 따라서 어느 것을 선택하시던 개발하시면서 ‘돌아가게 만드는 것’에 집중하시는 것 너머 해당 프레임워크나 같이 사용하는 기술의 코어 패러다임을 이해하시려 노력하신다면 스프링이나 닷넷 뿐만 아니라 다른 프레임워크를 사용하시게 되더라도 빠르게 전환할 수 있는 힘을 기를 수 있을 것 같습니다.

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2022년 12월 10일 오후 4:51

댓글 0