2021년 8월 30일(월)부터 약 한 달간 '숨고(Soomgo)'에서 기업 협업으로 프로젝트를 진행할 수 있는 기회가 주어졌다. 새로운 환경의 현업에서 개발자로서 프로젝트에 참여한다는 것은 프로그래밍을 배운 순간들 중 가장 의미있는 날들이 되지 않을까 생각했다.
숨이 차도록 언어를 배우고 프로젝트에 몰입하던 두 달이 훌쩍 지나가고, 기업 협업이라는 새로운 도전을 앞둔 나는 지난날의 경험과 미래의 꿈을 위해 기업 협업에서 이루고자 하는 목표를 정했다.
이는 지난 두 번의 웹 사이트를 구축하는 프로젝트에 참여했을 때 프로젝트 시작 전 '프로젝트의 성공'이라는 공동 목표 외에 개인적으로 가져가고 싶은 목표를 분명히 해야 한다는 것을 깨달았기 때문이다. 가령 누군가는 '프로젝트에서 최대한 많은 기능을 구현하는 것'이 목표인 반면 누군가는 '하나의 기능을 구현하더라도 스스로 코드를 짜고 내 것으로 가져가는 것'이 목표일 수 있기 때문이다. 목표를 분명히 하고 표명하는 것은 원활한 협업과 공동의 목표를 이루는 데 있어 무엇보다 중요한 부분이었다.
넓고 자유로운 분위기, 숨고 키 컬러인 에메랄드 녹색이 포인트로 들어간 사무실 분위기에 우리 팀은 모두 압도당했다. (그리고 좀 쫄았다..😅)
테크 리크루터 Glenn님의 진행으로 긴장하지 않고 첫째날 일과를 마칠 수 있었다.
숨고에서는 React Native와 TypeScript를 이용해 앱 어플리케이션을 만드는 프로젝트를 진행할 예정이다.
React Native는 React를 사용해 iOS와 안드로이드(Android) 모바일 어플리케이션을 만들 수 있는 앱으로, JavaScript가 native code로 변환되어 구성되기 때문에 호환성이 좋다는 장점이 있다.
그러나 React 버전이 17 이상인 반면 RN은 아직 0.65에 불과해 꾸준히 업그레이드 되고 있지만 여전히 불안정한 상태라고 할 수 있다.
클래스 컴포넌트를 쓰는 것이 유일한 방법이었으나, React HOOK API의 발전으로 state, 함수형 컴포넌트를 추가할 수 있게 되었다.
JavaScript를 나의 플랫폼 API와 React component에 연결할 수 있다.
<View>
: Web의 non-scrolling <div>
와 같은 역할, UI를 구성하는 가장 기본적인 컴포넌트<Text>
: Web의 <p>
와 같은 역할, 텍스트를 디스플레이 하는 컴포넌트<Image>
: web의 <img>
와 같은 역할, 이미지를 디스플레이 하는 컴포넌트.<ScrollView>
: web의 <div>
로 다중 컴포넌트와 뷰(view)*를 관리하는 스크롤링 컨테이너를 제공.<TextInput>
: web의 <input type="text">
으로 키보드를 통해 텍스트를 입력하는 컴포넌트.Agile하게 일한다는 것에 대해. 프로젝트를 하며 어렴풋이 감을 잡을 수 있었는데, 실제로 현업에서 일하는 모습을 보니 진짜 프로젝트를 한다는 것이 무엇인지 느낄 수 있었다. 앞으로 개발자 분들이 일하는 모습을 바로 옆에서 지켜보며 후덜덜한 현장감을 느낄 수 있을거란 생각에 설렜다.
React Native 환경 셋팅을 하며 왜 이걸 설치해야하는지 모른채 프로그램들을 막 설치했다. 그리고 에러에 봉착했고 빠져나오지 못했다.. 조금 더 생각하며 급할수록 차근차근 하나하나 다시 해보자.