때는 2021년 1학기, 전공 수업으로 "소프트웨어 설계 PBL"(이하 소프)을 들을 때였다. 소프는 수업을 듣는 학생끼리 팀을 꾸려서 한 학기동안 프로젝트를 진행하는 PBL(Project-Based Learning) 수업이다.
나는 17학번 동기 2명을 포함하여 총 3명이 같은 팀으로 함께하게 되었다. 프로젝트 주제 선정까지 마쳤고, 어떤 언어와 프레임워크를 사용할지 정해야 했다. 당시 프로젝트 경험이라고는 들이받다싶이 한 안드로이드(Java) 개발과 2학년 과목인 웹 프로그래밍(HTML + CSS) 밖에 없었다. 개발에 익숙하지 않았기에 능숙하게 다루는 언어나 프레임워크 또한 없는 상태였다. 또 다시 들이받아야하는 건 마찬가지였기 때문에 어떤 것을 선택하던지 상관이 없었다.
그러던 중, 작년(2020년)에 나와 친한 동기 형 한 명이 React가 떠오르고 있다며 한번 알아볼 것을 권유 했던 것이 생각났다. 하지만 우리는 웹이 아닌 앱을 만들 예정이었기에 다른 대안을 찾으며 고민하고 알아보던 중에, React-Native라는 신문물을 접하게 된다.
프로젝트의 개발도구로써 React-Native (이하 RN)를 채택하기 전에, 테스트겸 미리 프로젝트를 생성해보고, 간단하게 구글링한 자료를 토대로 코드를 적어보았다. 너무나 놀랐다. 우와 이거 왜 이렇게 빠르냐?
그 당시 내가 가장 최근에 했던 앱 개발에서는 안드로이드 스튜디오를 활용했었다. 내가 안드로이드를 안하게 된 이유는 빌드 과정이 너무 느려서였다. 어떤 날은 내 짱친 중길이와 함께 카페에서 앱 개발을 했었다. 17년도식 LG 그램을 사용했었는데, 당연하게도 빌드가 너무나 오래걸렸고 렉도 심하게 걸렸었다. 그래서 한 번 많은 양의 코드를 수정하고 빌드를 했는데 15분이 걸린적이 있었다. 그래서 너무나 짜증났었던 기억이 있다.
그런데 RN는 웹 개발할 때처럼 그냥 저장만하면 변경사항이 반영되었다. 빌드로 인한 시간소모를 너무나 아까워했던 내겐 너무나 매력적인 프레임워크였다. 그렇게 우리 팀은 소프를 진행할 프레임워크로 RN을 채택하게 되었고, 시행착오는 있었지만 성공적으로 프로젝트를 마칠 수 있었다.
2021년 2학기가 시작되었고, 콘솔로그라는 동아리에서 활동을 하게되었다. 콘솔로그는 웹 개발 동아리였는데, 동아리 활동으로 팀을 꾸려 프로젝트를 진행하게 되었다. 주제는 CATLAS. 이것이 나의 첫 번째 React 웹 프로젝트이다. 하지만 생각보다 동아리 활동이 원활하지 않았고, 결국 프로젝트는 주제 선정과 UI 와이어프레임 설계까지만 진행되고 팀은 파투 났다.
그 뒤로 다른 학업을 하며 시간을 보내다가, 이전에 설계해놓은게 너무 아까워서 나 혼자 프로젝트를 진행했다. 당연하게도 React를 선택하게 되었고, 무작정 설계대로 View만 따라 만들었다. 컴포넌트화, 상태관리와 같은 기법들이 모두 적용되지 않은 진정한 날 것이었지만, 바로바로 결과가 보이는게 너무 신기해서 재미를 느꼈다.
그러던 중, 학과에서 진행하는 소프트웨어 공모전(이하 소전) 행사 접수 공고가 올라왔다. 기껏 많이 만들어놓은 CATLAS를 그냥 썩혀놓기도 아까워서, 소프를 함께 했던 동기 형한테 소전에 나갈 것을 권유했다. 너무 좋다며 함께 CATLAS 프로젝트를 만들어갔고, 전체 12팀 중 4등을 하게되었다. 정말 뿌듯했다.
React를 계속 공부하다보니, 신경쓸 것이 한 두개가 아니었다. React 외에도 생각보다 많은 라이브러리와 도구들이 연계되어 반 필수적으로 사용되고 있었고, SSR, Error Boundary 등 아직 접하지 못한 개념들도 너무나 많았다. 공부할 것이 파면 팔수록 계속 나온다. 물론 처음 시작할 때보단 월등히 성장하였으나, 아직 내가 알고 있는 지식은 새 발의 피이자 빙산의 일각인 것 같다.
항상 그래왔듯이, 이렇게 저렇게 시도해보면서 계속 성장하고 나아갈 예정이다.
미루고 미루다 시작하는 리액트 포스팅이니 만큼, 더더욱 꾸준히 적어봐야겠다. 화이팅 !