일어나라, 블로그야
마지막으로 블로그에 작성된 글이 1년 전이라니, 정말 놀랄 노자다. 물론 그동안 글을 하나도 쓰지 않았던 것은 아니다. 벨로그 말고 좀 더 힙한 블로그를 사용해 보고 싶어서 Notion 기반의 블로그인 morethan-log를 활용한 블로그에도 글을 적었고, 몇 달 전에는 블로그를 내가 직접 만들어서 써야겠다는 오기에 Supabase와 Next.js를 사용해 개인 블로그를 직접 만들기도 했다.
그렇게 개인 프로젝트를 하나 얼추 마무리하고-사실 프로젝트에 마무리가 어디 있겠느냐만은-내 빈약한 포트폴리오를 채우기 위해서 무얼 해야 하나 고민하고 또 정보를 찾아봤다. 그렇게 알게 된 프로그램이 [유데미x스나이퍼팩토리] 프로젝트 캠프 : Next.js 3기였다.
상세 정보를 읽어보고 지금의 나에게 필요한 프로그램이라는 확신이 들었고, 간단한 면접을 본 뒤 지난주 금요일부터 오프라인에서 사전직무교육을 받기 시작했다. 오늘의 회고는 지난 일주일 동안의 이야기이다.
교육 시작 전만 해도 '그래도 이 정도는 아는데 수업 내용이 생각보다 쉬우면 어떡하지?'라는 생각이 들었다. 그렇게 추석을 쉬기도 했고. 그 생각은 정확히 교육 2일차에 산산조각 났고, 지금은 매 수업 시간이 자기 객관화의 시간처럼 느껴진다. 아마 도라에몽의 책상 타임머신이 있었다면 당장 타고 교육 시작 전 과거의 나에게 찾아가 뺨아리를 올려버렸을지도 모른다.
그나마 다행이었던 것은 TypeScript, React, Next.js가 내가 생판 처음 보는 친구들은 아니었다는 점 정도. 하지만 제대로, 심도있게, 주도적으로 공부하진 않았기에, 지금도 수업시간마다 세 친구들과 가까워졌다 멀어졌다를 반복하고 있다. 구교환 배우의 남친짤을 본 팬들이 이런 기분이었을까.
TypeScript는 JavaScript를 기반으로 구축된 강력한 타입의 프로그래밍 언어로, 모든 규모에서 더 나은 도구를 제공합니다.
먼저 타입스크립트를 학습하기 전, ES6의 핵심 문법에 대해서 다시 한 번 짚고 넘어가는 시간을 가졌다. JS의 역사를 간단하게 살펴 보기도 했는데, 오늘날의 웹 개발 환경에 이르기까지 JS가 어떤 변화를 거쳤는지 알 수 있었다.
그리고 타입스크립트를 본격적으로 톺아봤다. 사실 예전에 타입스크립트를 책으로 공부한 경험이 있었는데, 그때는 아직 리액트와 JS를 잘 다룰줄도 몰랐던 시기라 타입스크립트의 필요성을 느끼지 못했기에 학습에 어려움을 겪었다. 그러나 이번에는 각 타입에 대해서 어떤 경우에 사용해야 하는지, 그리고 JS 코드를 기반으로 이를 TS로 변경해보는 실습을 거치면서 그 필요성과 활용 방법에 대해서 점차 알아가고 있다.
React를 사용하게 되면 우리가 고려하고 있는 디자인이나 만들 앱들에 대한 생각을 바꿀 수 있습니다. React로 사용자 인터페이스를 빌드할 때, 먼저 이를 컴포넌트라는 조각으로 나눕니다. 그리고 각 컴포넌트의 다양한 시각적 상태들을 정의합니다. 마지막으로 컴포넌트들을 연결하여 데이터가 그 사이를 흘러가게 합니다.
기존에도 리액트에 대해서 잘 알고 있다고 생각하지는 않았는데, 이번주차 교육을 통해서 내가 헷갈렸거나 잘 학습하지 않았던 개념에 대해서 다시한번 짚고 넘어갈 수 있어서 만족스러웠다. 특히 단순하게 컴포넌트를 구성하는 것 이상으로 리액트의 렌더링 순서와 방식, 다양한 컴포넌트에서 이벤트를 다루는 방법들에 대해서 자세하게 알아볼 수 있었다.
특히 리액트에 대해 공부하면서 '기본 기능을 확장하거나 대체하는 다양한 라이브러리와 훅'의 등장 배경에 대해서 알아볼 수 있어서 좋았던 것 같다. 무슨 이야기냐면, 예전의 나는 기존 기능을 대체할 수 있는 라이브러리가 있다면 좋은게 좋은거라고 생각하며 깊게 생각하지 않고 해당 라이브러리를 즉시 사용하기만 했다. 그러나 이번에는 그러한 도구의 등장 배경과 필요성을 이해하기 위해, 리액트의 근본적인 작동 원리를 깊이 있게 학습하는 시간을 가질 수 있었다.
웹을 위한 React 프레임워크. 세계 최대 기업들 중 일부가 사용하는 Next.js는 React 컴포넌트의 강력한 기능을 활용하여 고품질 웹 애플리케이션을 만들 수 있게 해줍니다.
Next.js에 대해서 본격적으로 알아보기 전, Next.js가 어떤 특징을 가지고 있는 프레임워크인지에 대해서 간략하게 살펴보았다. 사실 앞서 언급한 Next.js 개인 블로그는 공식 튜토리얼 문서를 읽고 보일러플레이트를 기반으로 각종 자료를 참고해 구현했기 때문에 '일단 돌아는 간다' 수준이었기 때문에 Next.js에 대한 이해가 부족한 상태에서 탄생했다. 얼마 전에도 코드리뷰를 받았을 때 저땐 왜 저렇게 코드를 짰지 싶은 부분이 한두가지가 아니었다.
이번 주에는 과거의 웹 페이지와 CSR의 등장, 그리고 그러한 CSR의 단점을 개선하기 위한 SSR의 등장과 이를 활용한 프레임워크인 Next.js가 더 나은 SSR을 위해서 어떤 기능들을 지원하는지 간단하게 살펴보았다. 다음주부터 본격적으로 Next.js에 대해서 공부하게 될텐데, 벌써부터 흥미롭달까 😁
사실 이번 프로젝트 캠프를 시작하면서 세웠던 목표가 하나 있다. 바로 생성형 AI에 너무 의존하지 않는 것이다. 예전에는 생성형 AI의 유료 플랜까지 결제하면서 뇌를 AI에 위탁시키는 수준으로 개발을 해왔고, 그러다보니 결과가 나와도 정작 그 결과에 대해서 내가 잘 설명할 수 없는 시기가 있었다. '그럼 나는 AI가 없다면 뭘 할수 있지?'라는 생각이 머리를 스쳤고, 그래서 교육 시작 이후로는 유료 플랜을 내려놓고 일부러 족쇄를 찼다. 무료 플랜을 사용하더라도 질문하기 전 최대한 고민을 해보려고 했고, 정말 끙끙 앓다가 문제가 해결되지 않으면 그제서야 사용했다. 사용하더라도 단순히 'A 기능을 코드로 구현해줘'라고 질문하지 않고, 'A 기능을 구현해야 하는데, 어떤 식으로 접근해야 할지 알려줘'와 같이 최대한 돌려서 질문하고 있다.
🥺: "강사님은 이해 못 해요. 이건 제 전부라고요. GPT 없인 전 아무것도 아니에요."
🙅🏻: "GPT 없이는 아무것도 아니라면, GPT를 사용해선 더더욱 안 돼."
예전에 잠깐 루틴을 만들겠다고 열심히 노력해본 적이 있으나, 일주일도 못 가서 다시 오후에 일어나 새벽에 잠드는 올빼미형 인간이 되어버렸던 기억이 있다. 다행히 이번 프로젝트 캠프에서 나는 오프라인 대상자였고, 덕분에 06시 칼기상 22시 칼취침이라는 아름다운 삶을 보내고 있다.
'무언가 주도적으로 학습해 본'경험이 적은 나에게는 적잖이 어려운 목표였지만, 언제까지나 수동적인 삶을 살 수는 없었기에 지난 Next.js 개인 블로그 구현을 기점으로 정보를 받아들이고 학습할 때 꾸준히 생각이라는걸 해 보려고 노력하는 중이다. 요컨대 학습을 하는 과정에서 'A란 것은 B를 말하는 것이다'라는 개념이 주어지면, 이제는 단순히 '그렇구나'하고 넘어가기보다는 왜 그런 것인지, 이를 어떻게 활용할 수 있을지 생각해본다. 사실 이게 참된 개발자의 모습이 아닌가 싶다. 꾸준히 고민하고 또 고민해 더 나은 코드를 작성할 수 있는 능력 향상 따위의 것 말이다.
사실 핑계에 가깝긴 하지만, 일주일동안 교육을 오프라인으로 들으면서 직장인에 대한 존경심이 샘솟기 시작했다. 어떻게 그 고통스러운 출퇴근길을 버티며 일을 하고, 퇴근해서는 운동과 공부까지 진행하는지 말이다. 예전에는 시간이 모자란것과 체력이 모자란것은 별개라는 생각이 들었으나, 이제는 후자가 전자에 영향을 미친다는게 확실하게 느껴진다. '졸리다' → '수업시간에 집중을 못한다' → '내용을 확실하게 이해하지 못한다' → '추가적인 공부 시간이 소요된다' → '시간부족' 이라는 결과로 이어진다.
결국 어떻게든 체력을 늘리는 것만이 살길이라고 생각해서, 2달만에 헬스장을 재등록하고 수업이 끝나면 꾸준히 운동을 다니고 있다. 물론 운동을 한번 갈때마다 체력이 좋아지는게 눈에 보이는건 아니지만, (사실 그랬으면 좋겠다. 웹소설처럼 상태창!이라고 외치면 허공에 능력치가 뜨면 얼마나 좋을까) 안 하는것보다야 훨씬 나으니까.
살짝 삐그덕거리긴 한 것 같지만, 아무튼 그렇게 6주짜리 기차는 출발했다. 목적지가 어디가 될지는 아직 모르겠다. 하지만 매 순간마다 최선의 노력을 다하며 캠프가 끝난 뒤에는 잘 마무리된 프로젝트를 가지고 내가 가고싶은 회사에 지원하는 나의 모습을 꿈꾸고 있다. 밖은 어둡고 춥지만, 나 혼자 가는 길이 아니니까 쉽사리 지치고 싶지는 않다. 다음주도 화이팅! 🔥
본 후기는 본 후기는 [유데미x스나이퍼팩토리] 프로젝트 캠프 : Next.js 3기 과정(B-log) 리뷰로 작성 되었습니다.
#유데미 #udemy #웅진씽크빅 #스나이퍼팩토리 #인사이드아웃 #미래내일일경험 #프로젝트캠프 #부트캠프 #React #리액트프로젝트 #프론트엔드개발자양성과정 #개발자교육과정