안녕하세요. 저는 2년차 리액트 웹 개발자입니다.
이번에 React Native 강의를 듣게 되었습니다. 이미 리액트를 다루고 있던 상태에서 모바일 개발이 처음이라 많은 기대와 함께 강의를 수강하게 되었는데요. 강의가 끝나지 않았지만, 현재까지의 학습 경험을 바탕으로 느낀 점과 앞으로의 목표를 정리해 보았습니다.
React와 React Native의 차이점
리액트를 이용한 웹 개발에선 주로 HTML, CSS, JavaScript를 사용하며 DOM을 직접 조작하는 방식으로 UI를 다룹니다. 그러나 React Native는 웹 브라우저 대신 모바일 장치에서 동작하는 앱을 만들기 때문에, 플랫폼별 네이티브 컴포넌트를 사용해야 합니다. 처음에는 React에서 사용하던 DOM 요소들이 React Native에서 어떻게 변환되고, 각 플랫폼에 맞는 네이티브 컴포넌트를 어떻게 활용해야 할지에 대한 이해가 부족했습니다.
예를 들어, React에서 자주 사용하는 <div>, <button>과 같은 요소들은 React Native에서는 <View>, <Text>, <TouchableOpacity>와 같은 컴포넌트로 대체됩니다. 또, 스타일링도 다소 다릅니다. 웹에서는 CSS로 스타일링을 하지만 React Native에서는 JavaScript 객체 형태로 스타일을 적용합니다. 스타일링에 있어서 flexbox 레이아웃은 공통으로 사용되지만, 웹에서의 브라우저 호환성 문제나 다양한 CSS 속성들을 신경 쓸 필요가 없다는 점에서 다소 단순하지만 그만큼 모바일 환경에 맞는 최적화가 중요하다는 점을 배웠습니다.
강의 내용에 대한 피드백
패스트캠퍼스 'React Native를 활용한 빠르고 완성도 높은 앱 개발 with 21프로젝트' 강의는 React Native를 기반으로 21개의 프로젝트로 모바일개발을 하면서 지식을 습득해가는 강의입니다. 제가 좋아하는 방식인, 실습 위주로 구성되어 있어 실무에 바로 적용할 수 있는 기술들을 빠르게 익힐 수 있었습니다. 각 프로젝트마다 다양한 기능을 구현하면서, 앱의 성능을 고려한 최적화 방법과 함께 실제 앱 개발에서 흔히 마주치는 문제들에 대한 해결책을 배우게 되었습니다.
React Navigation, Redux, 모바일 성능 최적화 등 다양한 중요한 주제를 다루면서, 모바일 앱 개발에 필수적인 요소들을 배울 수 있었습니다. 이 과정에서 React와 React Native의 구조적 차이점 외에도, 모바일 환경에서의 앱 성능과 사용자 경험(UX) 최적화에 대한 깊이 있는 지식도 다룰 수 있었습니다.
특히나, React에서 사용하던 개념들이 React Native에서 어떻게 다르게 적용되는지 체감할 수 있었습니다. 예를 들어, 상태 관리나 컴포넌트 재사용 등의 개념은 비슷하지만, 네이티브 모듈을 다루는 방법이나 플랫폼별 최적화 전략을 추가로 배워야했습니다. React에서 쌓은 경험이 React Native로 이어지는 점에서, 그동안 쌓은 지식이 모바일 개발에서도 충분히 활용 가능하다는 점을 깨닫게 되었고, 확실히 React 개발자라면 React-Native기반 모바일 앱도 조금의 노력(?)으로 개발을 할 수 있다는 생각을 하게되었습니다.
프로젝트 실습
위에서도 언급했다시피 프로젝트 중 UI 디자인과 애니메이션 구현부분에서는 이미 알고있는 내용들을 활용하는 부분이었기에 너무 편하게 들을 수 있었지만, React Native에서 다루는 모바일 네이티브 API나 성능 최적화와 같은 부분은 웹 개발과는 확연히 다른 점이었고, 이를 따라해보고 강의에서 해결해주지않는 궁금증등은 구글링으로 해소를 했습니다. 알림 기능, GPS, 카메라, 배터리 사용 최적화 등 모바일 특화된 기능을 추가하는 법을 배울 수 있었고, 하드웨어와의 연동이나 플랫폼 최적화에 대한 지식도 습득 할 수 있었습니다.
반성 및 부족한 점
네이티브 기능 활용에 대한 부분에서는, Android와 iOS 플랫폼에서 각기 다른 방식으로 구현해야 하는 점들이 매우 복잡하게 느껴졌습니다. 예를 들어, 알림 기능, 카메라 액세스, GPS 등을 다루는 데 있어, React Native의 네이티브 모듈을 사용해야 하므로 각 플랫폼에 맞는 세부적인 설정과 조정이 필요합니다. 이 부분에 대한 이해도가 아직 부족한 상태라, 추가 학습이 필요하다고 느꼈습니다.
또한, React Native에서의 디버깅이 웹에서의 React보다 조금 더 까다롭다는 점을 느꼈습니다. 모바일 디바이스에서 발생하는 문제를 해결하려면 실시간으로 디바이스에서 테스트를 해야 하므로 웹 개발에 비해 디버깅이 다소 번거로웠습니다. 하지만 이는 모바일 개발의 특성상 중요한 부분이기도 하므로, 점차 적응해 나가야 할 부분이라고 생각합니다.
앞으로의 목표와 포부
2025년 상반기에는 패스트캠퍼스 React Native 강의를 완강하고, 생각하고 있던 아이디어를 실제 프로젝트에 적용해보는 것을 목표로 삼고 있습니다(2025년 9월까지는 출시하는게 목표). 특히, 기존에 웹에서 쌓은 경험을 모바일 앱 개발에 어떻게 응용할 수 있을지에 대한 전략을 세우고, 좀 더 효율적인 코드 작성과 성능 최적화를 통해 완성도 높은 앱을 만들 수 있도록 노력할 것입니다.
또한, 크로스 플랫폼 개발을 통한 시간 절약과 효율적인 앱 개발이 가능하다는 점을 고려하여, React Native의 멀티 플랫폼 지원을 최대한 활용하는 방법에 대해 더 깊이 연구할 계획입니다. iOS와 Android에서 동일한 코드베이스로 앱을 만들 수 있다는 점은 큰 장점이기 때문에, 이를 활용한 협업이나 프로젝트 관리에 좀 더 집중해보고 싶습니다.
마지막으로, UI/UX 최적화를 더욱 신경 쓸 예정입니다. 웹에서의 경험을 바탕으로, 모바일 환경에 적합한 사용자 경험을 제공할 수 있도록 디자인 패턴과 최적화 기법에 대해 연구하고, 앱을 빠르게 개선하는 능력을 더 키워나가고 싶습니다.
전체적으로 패스트캠퍼스 React Native 모바일 개발 강의를 통해 React Native의 기초적인 부분부터 고급 기술까지 배울 수 있었고, 이를 통해 모바일 개발으로의 새로운 도전에 대해 자신감을 가지게 되었습니다. 강의가 끝난 후에는 실무에서 다양한 모바일 앱을 개발하고, React Native를 활용한 앱 성능 최적화, UI/UX 개선 등을 통해 더 나은 개발자가 될 수 있도록 노력할 것입니다.
2025년은 React Native를 기반으로 웹과 모바일을 넘나드는 개발자로 성장하고 싶습니다.
본 게시물은 패스트캠퍼스 후기 이벤트 참여를 위해 작성되었습니다.
'내돈내산' 카테고리의 다른 글
여성러닝화 뉴발란스 프레쉬폼 1080v13 와이드 베이지브라운 커플러닝화 Fresh Foam 1080 v13 wide Beige Brown (5) | 2024.09.14 |
---|---|
벤쿠버에서 에어프라이어 사고 취미로 홈베이킹, 에어프라이어팁(깨찰빵, 블루베리파이, 치킨) (8) | 2024.09.06 |
애플워치 배터리교체 업글을 해준다고? 애플워치4 벤쿠버에서 애플워치 배터리교체 가격 (2) | 2024.09.01 |
[벤쿠버는 지금]캐나다 스타벅스 별 모아서 뭐해? 공짜로 1100별 받아서 컵 사는 방법, 7년만에 출시된 쿨라임 (0) | 2024.08.18 |
[테니스신발/테니스화] 그레이덕후 새로 산 뉴발란스 코코에디션 남녀공용 테니스화, 발목 잘 잡아주는 테니스화 Coco CG1 Slate Gray (0) | 2024.08.17 |