네, 강의 들은 후기가 아니고 진행 후기 입니다. (광고아님)
늦었지만, 간략한 강의 후기와 제 생각을 적어보고자 합니다. 😃
사실 이번 진행이 처음은 아니었습니다. 작년 7월에도 주제는 다르지만 같은 챌린지를 진행했거든요. 당시에는 회사에서도 개인적으로도 너무 바빴어서 별다른 글을 작성해보지는 못했네요.
항상 블로그, 아티클, 강의를 진행하고 나면 부족함을 느낍니다. 지금 말하려는 강의도 마찬가지 였구요.
이번엔 2월 원티드 프론트엔드 프리온보딩 챌린지를 진행했습니다. Next.js 확실히 알고 레벨업하기
라는 굉장히 거창한 주제로 말이죠.
여기서 짚어야 할 부분은 확실히 안다는 것의 의미는 완벽
이 아닌 모호하지 않음
이었습니다. 이는 제가 아티클을 작성할 때, 강의를 진행 할 때, 그리고 개발을 할 때 최대한 지키려고 하는 점이 반영되었다고 생각해주시면 됩니다. 조금 더 자세히 들어가볼게요.
확실히 안다는 건 뭘까요?
이것을 정의하기 위해서는 반대 상황이 뭔지 생각해 보아도 좋을 것 같습니다. 개인적으로 생각했을 때 확실히 모르는 것은, 다른 누군가에게 어떠한 방식으로 매끄럽게 설명하지 못하는 것 이라고 생각합니다.
많은 사람들이 (저 또한) 어떤 지식에 대해 확실히 안다고 생각하고 어물쩍 넘어가는 경우가 많지만, 막상 누군가에게 아티클이나 말로 설명하고자 하면 말문이 막힐 때가 있습니다.
즉, 확실히 안다고 착각
하고 있다는 것이죠. 저는 제가 주니어 대상의 강의에서는 최대한 이런 부분을 다시 짚고 넘어가도록 합니다. 제가 공부할 때 이런 안좋은 버릇이 저에게 더 많은 공부 시간을 할애하게 했거든요. (지금도 남아있습니다)
제가 준비했던 주제는 Next.js에 관한 내용이었습니다. 이 글을 읽으시는 분 중에 강의를 들으신 분이 계실 지 모르겠지만, Next.js에 대한 어떤 실무적인 화려한 기술이나 도구가 아닌 조금 더 이론적이고 원론적이며 심지어 React에 대한 내용이 다수 들어가 있었습니다.
사실 Next.js를 설명하며 React의 동작 원리나 업데이트, 앞으로의 방향성에 대해서 언급되는 것은 당연합니다. Next.js는 React의 Framework이기 때문이죠. Next.js 있고 React 있는게 아닌, React 있고 Next.js 있다는 말이죠.
그런데 이렇게 간단하게 설명해서 끝날 내용인가요? 조금 더 생각해봅시다. 그럼 Next.js가 React Framework 인거랑 그거랑 무슨 상관일까요. 이를 설명하려면 React가 무엇인지 알아야 하고, Framework와 Libray의 차이점을 알아야 합니다. 방금 어물쩍 넘어갈 뻔 했다는 거죠.
설명하기 어려우셨나요? React가 뭔지는 (구) 공식문서에 너무나도 명확하게 적혀있습니다. 구글에 검색만 해도 알려주죠.
사용자 인터페이스 (UI)를 만들기 위한 JavaScript 라이브러리
명확하죠? 조금 더 아래쪽을 읽어볼까요?
정리해보자면, React는 상호작용이 많은 UI를 만들 때 생기는 어려움을 줄여주는 선언형 UI 라이브러리 라고 할 수 있습니다. 이제 React를 명확히 알았습니다. 그럼 Next.js가 React의 Framework 라는 건 무슨 의미일까요?
기본적인 내용이고, 저보다 잘 정리해 주시는 분들께서 많으니 강의 자료 중 일부를 발췌하는 걸로 축약 하겠습니다. 자세한 내용은 한번 찾아보심이 좋습니다.
이야기가 조금 길어졌습니다만, 전달하고 싶은 건 당장의 구현에 급급하지 말자 입니다.
프론트엔드 생태계는 정말 빠르게 변화하는 특성을 가지고 있습니다. 6개월 전 코드만 해도 레거시 취급을 받기 때문이죠. 백엔드와 비교해 보자면 그 차이점을 확실히 느낄 수 있습니다.
이러한 특성이 주니어 개발자들의 눈을 멀게 합니다. 기술의 근본에 접근하지 못하고 (접근할 생각을 시작하기 못하고) 자꾸 새로운 기술, 더 화려하고 좋다고 하는 기술만을 찾아 헤맵니다. 하지만 결국 그러한 기술들은 똑똑한 개발자들이 추상화해서 제공하는 것일 뿐, 결국 그 내부는 우리가 작성하는 코드로 이루어져 있습니다. 나중에는 우리도 만들 수 있어야 한다는 거죠.
- 왜 React는 RSC라는 걸 만들었을까요?
- React는 왜 계속 버전을 올리며 어떠한 기능을 추가하고 있나요?
- 더 나아가서 React라는 건 왜 탄생하게 됐을까요?
Web 이라는 것이 세상에 탄생하며 React가 동시에 만들어진 건 아니니, 분명 어떤 필요에 의해서 생겨났을 겁니다.
결국 개발자는 끊임없는 의문을 가지고 이를 알아가고자 해야 한다고 생각합니다. 현재의 기술이 완벽한데 새로운 기술이 나올리가 없습니다. (생각해보세요. 굳이 지금이 최곤데 왜 만드나요 귀찮게)
새로운 기술은 결국 이전의 어떠한 불편한 점을 해소하기 위해서 나타나는 것이기 때문이죠.
강의 후기를 빙자한 제 생각을 조금 적어보았는데요. 결국 프론트엔드를 시작하는 분들에게 제가 말 하고 싶은 건 이거였습니다.
FE 라고 FE 만 공부하지 말고, 동작원리나 CS도 공부해야한다.
단기적으로는 결과물을 빠르게 만들어 내는 것이 장점이라고 생각할 수 있지만, 스텝업을 하기 위해서는 전반의 지식을 알아야 할 것입니다. 사실 FE/BE 라는 개념이 생긴 것도 오래되지 않았기 때문이죠. 이전의 개발자 분들은 이 전반의 내용을 모두 알고 계십니다.
조금 더디게 느껴질 수도 있지만, 그러한 지식들이 결국 또 다른 기술을 이해하는데 훨신 도움을 줄 것입니다.
잘난 듯 작성했지만 저 또한 이를 다 실천하지 못하고 부족함이 많습니다. 같이 화이팅 입니다!
감사합니다.
+ 읽어주셔서 감사합니다.
+ 오타, 내용 지적, 피드백을 환영합니다. 많이 해주실 수록 제 성장의 밑거름이 됩니다.