dev-yakuza / dev-yakuza.github.io

8 stars 9 forks source link

[Flutter] build_runner와 Mockito를 사용하여 lib 폴더에 Mock 파일 생성하기 - build_runner와 Mockito 패키지를 사용하여 lib 폴더에 Mock 파일을 생성하는 방법에 대해서 알아보도록 하겠습니다. #84

Open utterances-bot opened 1 year ago

utterances-bot commented 1 year ago

[Flutter] build_runner와 Mockito를 사용하여 lib 폴더에 Mock 파일 생성하기 - build_runner와 Mockito 패키지를 사용하여 lib 폴더에 Mock 파일을 생성하는 방법에 대해서 알아보도록 하겠습니다.

build_runner와 Mockito 패키지를 사용하여 lib 폴더에 Mock 파일을 생성하는 방법에 대해서 알아보도록 하겠습니다.

https://dev-yakuza.posstree.com/ko/flutter/make_mock_in_lib/

Dev-FaithH commented 1 year ago

안녕하세요. 포스팅 즐겨보고 있는 독자입니다. 다름아니라 개요 밑 패키지 이름이 잘못 올라와서 알려드립니다 항상 좋은 글 감사합니다^^

dev-yakuza commented 1 year ago

@Dev-FaithH

안녕하세요. 피드백을 주셔서 정말 감사합니다.

패키지 이름이 잘못되지 않았는데 지적해주신 것처럼 오해를 살 수 있어서 내용을 변경하였습니다.

피드백을 주셔서 다시 한번 감사드립니다. 앞으로도 더욱 좋은 글로 또 찾아뵙겠습니다.

감사합니다. 🙇

parkjm7 commented 1 year ago

안녕하세요^^ 오래전(?)에 DeKu님의 react-native 개발 관련 글에 많은 도움을 받아 앱을 출시했던 애독자입니다. 그 떄 당시 크로스플랫폼 개발을 처음 시도하는 것이어서 한참 대세였던 RN과 이제 막 1.2 버전 출시 했었던 플러터 중 어느 것으로 시작을 해야할 지 많은 고민 후 RN으로 개발을 하기로 정했고, dev yakuza님의 React Native에 대한 잘 정리된 글이 정말 많은 도움이 되었습니다. (정말 감사드립니다^^)

그런데 그 후 플러터가 점점 자리를 잡아가고 DeKu님께서도 플러터에 관한 글을 게시하시기 시작하셨는데, 최근에는 RN 관련 글보다 플러터에 관련된 글이 더 많이 게시되는 것 같고 출시하신 단어 학습 앱들도 플러터로 제작을 하셨는데, 혹시 어떤 부분에서 플러터에 대한 매력(?)을 느끼셔서 비중이 높아지셨는지 고견을 여쭐 수 있을까요? 바쁘실텐데 짧게라도 답변 주시면 정말x10 감사하겠습니다!

(최근 앱개발을 다시 시작하게 되었는데 RN이 최근 New Architecture를 발표하였으나 성능 벤치마크 결과가 기대보단 저조했고, 플러터 개발자가 많아지고 국내 대기업들도 채택이 늘어가면서 플러터로 전향을 해야하나 고민입니다. 아무래도 주어진 시간이 한정되어 있다보니 좀 더 유망한 것에 집중하고 싶은 욕심이네요.)

항상 많은 도움이 되는 글들 정말 감사합니다 :) 언제나 행복하세요!

(ps. 이 포스팅 주제와 관련 없는 댓글을 올려 죄송합니다.. )

dev-yakuza commented 1 year ago

@gmongs 안녕하세요. 제 글이 다른 분들께 조금이나마 도움이 되고 있는거 같아 너무너무 기쁘네요.

주제와 관련이 없지만 답변을 드리겠습니다. 이 답변은 어디까지나 개인적인 의견임을 먼저 알려드립니다.

  1. Flutter와 React Native는 태생이 다르다. React Native는 웹 기술인 React를 사용하여 앱을 개발하는 것을 고민하여 탄생했습니다. React Native는 웹 기술이 선행되었고(웹앱) 이를 활용하면 앱을 개발할 수 있다는 생각에 탄생했습니다. 하지만, Flutter는 처음부터 크로스 플랫폼을 고려하여 만들어졌습니다. 다시 말하면 React Native는 웹의 기술을 활용하여 앱을 개발할 수 있게 무리해서(?) 만들어졌고, Flutter는 처음부터 크로스 플랫폼을 겨냥해서 만들어졌습니다.
  2. 크로스 플랫폼 이슈 React Native는 네이티브 코드를 활용합니다. 자바스크립트(JSX)로 만들어진 코드를 네이티브 코드와 매칭시키는 방식이라 퍼포먼스도 좋고, 네이티브 코드를 작성하는 것과 흡사합니다. 하지만 이로 인해, 안드로이드와 iOS에서 다르게 동작하는 경우가 발생합니다. 그래서 진정한 크로스 플랫폼이라고 말할 수 있는지 의문점이 듭니다. Flutter는 게임 엔진과 같은 구조를 제공하므로, 안드로이드와 iOS에서 동일한 화면과 동일한 동작을 수행하게 됩니다.
  3. 원 소스 멀티 유즈 React Native는 Learn once, write anywhere.입니다. 즉, 리액트라는 기술이 동일한 것이지 코드를 동일하게 사용할 수 있는 것이 아닙니다.(화면 부분의 이야기입니다. 비즈니스 로직 등 화면과 관련이 없는 JS는 웹과 앱에서 동일하게 사용이 가능합니다.) 하지만, Flutter는 크로스 플랫폼을 겨냥하여 만들어졌기에 동일한 소스코드로 웹, 앱, PC용 앱 등 제작이 가능합니다.(물론 문제점이 존재합니다만) 따라서 좀 더 멀리 보았을때, Flutter가 가능성이 있다고 생각했습니다.

하지만 분명히 단점도 존재합니다.

  1. 러닝 커브 웹 개발자들, 특히 React를 알고 있는 개발자는 React Native를 아주 빠르게 배울 수 있습니다. Flutter는 Dart라는 새로운 언어부터 공부를 해야 하기 때문에 진입장벽이 높습니다.
  2. 개발 퍼포먼스 React에 익숙한 웹 개발자들이 회사에 있다면, React Native를 선택하는 것이 타당할 수 있습니다. 이 개발자들은 웹과 앱을 넘나들면서 리액트라는 하나의 기술로 빠르게 개발을 할 수 있습니다. Flutter를 선택하게 된다면, 웹은 React로 앱은 Flutter로 개발을 진행할 가능성이 높고, 분리된 기술로 인해 개발 퍼포먼스가 떨어질 수 있습니다.(Flutter로 웹을 개발할 수 있지만, 몇가지 이슈가 있고, Flutter로 웹 개발을 하는 사람들이 적어 사람을 구하기 어려울 수 있습니다.)
  3. 자료 리액트 네이티브가 Flutter 보다 역사가 길고, 리액트의 커뮤니티를 그대로 흡수하는 형태이기 때문에, Flutter보다 자료나 질문 등의 면에서 아직도 Fltuter보다는 양이 많다고 판단됩니다. Flutter가 구글에 직접적인 지원으로 많은 문서와 자료가 나오고 있지만, 뭔가 문제에 부딪혔을 때, 해결하는데 리액트 네이티브보다 어려움을 겪는거 같습니다. (특히 테스트 코드쪽 자료 찾기가 어려웠습니다.)

이정도 내용이 떠오르네요. 조금은 도움이 되었으면 좋겠습니다. 혹시 더 궁금한 사항이 있으시다면 https://dev-yakuza.posstree.com/ko/contact/ 로 문의주시면 정말 감사하겠습니다.

그럼 앞으로 또 좋은 글로 찾아뵙겠습니다.

감사합니다.

parkjm7 commented 1 year ago

@dev-yakuza 바쁘신 와중에 친절하고 자세히 답변 주셔서 정말 감사드립니다! 큰 도움이 되었으며 특히 '태생이 다르다'는 말씀에 많은 공감이 되네요. 저같이 방향을 고민하는 분들이 요즘 많이 보이는데 그분들께도 많은 도움이 될듯합니다. 언제나 화이팅 하시고 오늘도 좋은 하루 되시길 바랍니다! 감사합니다 :)