[Flutter] 면접 질문을 통해 알아보는 플러터 (4) - 경험

2025. 3. 4. 16:54Knowledge/Flutter

안녕하세요!

이번 포스트에서는 '경험'에 대한 면접 질문에 대해서 다루겠습니다.

실제 면접이라고 생각하고 포스트를 작성해 보겠습니다.

주관적인 생각을 바탕으로 작성한 포스트라서 참고만 부탁드립니다.

정확한 정보전달이 아닐 수도 있습니다.

 

아래의 목차를 참고해 주세요.

1. 개발을 진행하면서 어려움을 느꼈던 순간과 어려움을 해결하기 위한 노력을 말해주세요.

2. 코드 리뷰를 할 때, 중점적으로 보는 것은 어떤 것인지 말해주세요.

3. 팀원간의 갈등 상황을 어떻게 해결하는지 말해주세요.

4. 학습하는 방법과 정보를 얻는 채널을 말해주세요.

5. 개발자가 된 이유와 개발 직군에서 모바일 개발을 선택한 이유를 말해주세요.

6. 최근에 읽은 책이나 기억에 남는 글이 있다면 말해주세요.

7. 좋은 코드에 대한 생각을 말해주세요.


* 큰 범위의 개념에 대한 질문

https://kwonputer.tistory.com/572

 

[ Flutter ] 면접 질문을 통해 알아보는 플러터 (2) - 개념

https://kwonputer.tistory.com/573 [ Flutter ] 면접 질문을 통해 알아보는 플러터 (3) - Flutter 기술 & 경험※ 아직 포스트를 작성하는 중입니다. ※ 아래의 '개념'에 대한 포스트를 읽고 오시면 이해하기 더

kwonputer.tistory.com

1. 알고 있는 디자인 패턴에 대해서 말해주세요.

2. MVC, MVP, MVVM 패턴의 차이점을 말해주세요.

3. 싱글톤 디자인 패턴의 장점과 단점에 대해 말해주세요.

4. 클린 아키텍처(Clean Architecture)를 반드시 사용해야 하는 이유를 말해주세요.

5. 의존성 역전에 대해 말해주세요.

6. 스레드와 프로세스, 멀티 스레드와 멀티 프로세스에 대해 말해주세요.

7. 이미지 캐시(Memory, Disk)에 대해 말해주세요.

8. 해시(Hash)에 대해 말해주세요.

9. 대칭 키와 비대칭 키에 대해 말해주세요.

10. 동기(Synchronous)와 비동기(Asynchronous)에 대해 말해주세요.

11. 접근 토큰(Access Token)과 갱신 토큰(Refresh Token)에 대해 말해주세요.

12. TCP와 UDP에 대해 말해주세요.

13. Git의 Merge와 Rebase의 차이점에 대해 말해주세요.

14. GraphQL에 대해 말해주세요.

15. CI/CD에 대해 말해주세요.

16. 선언형 & 명령형 & 함수형 프로그래밍에 대해 말해주세요.

17. 메모리 누수(Memory Leak)에 대한 설명과 방지하는 방법에 대해 말해주세요.

18. BDD & TDD의 차이점에 대해 말해주세요.

19. SDK 개발과 서비스 개발의 차이점에 대해 말해주세요.

20. HTTP와 HTTPS의 차이점에 대해 말해주세요.

21. HTTPS의 SSL Handshaking에 대해 말해주세요.


* Flutter 기술 질문

https://kwonputer.tistory.com/573

 

[ Flutter ] 면접 질문을 통해 알아보는 플러터 (3) - Flutter 기술 & 경험

※ 아직 포스트를 작성하는 중입니다. ※ 아래의 '개념'에 대한 포스트를 읽고 오시면 이해하기 더 쉽습니다.https://kwonputer.tistory.com/571 [ Flutter ] 면접 질문을 통해 알아보는 플러터 (1) - 목차안

kwonputer.tistory.com

1. Flutter의 장점과 단점에 대해 말해주세요.

2. Stateless & Stateful Widget의 차이점을 말해주세요.

3. Flutter에서 상태 관리는 어떻게 하는지 말해주세요.

4. Riverpod에 대해 말해주세요.

5. Bloc에 대해 말해주세요.

6. Provider에 대해 말해주세요.

7. GetX에 대해 말해주세요.

8. 위젯 트리 구조에 대해 말해주세요.

9. Flutter에서 비동기 프로그래밍을 하는 방법에 대해 말해주세요.

10. Flutter에서 API 호출을 하는 방법에 대해 말해주세요.

11. Hot Reload와 Hot Restart의 차이점을 말해주세요.

12. Flutter에서 Native 코드와의 통합 방법에 대해 말해주세요.

13. Flutter에서 라우팅과 네비게이션을 처리하는 방법에 대해 말해주세요.

14. Flutter의 Form 위젯과 Form 검증 방법에 대해 말해주세요.

15. Build Context의 context의 역할에 대해 말해주세요.

16. Flutter의 Key에 대해 말해주세요.

17. Flutter의 Stream과 Stream 유형에 대해 말해주세요.

18. FutureBuilder와 StreamBuilder의 차이점에 대해 말해주세요.

19. Flutter의 3가지 테스트(단위 테스트, 위젯 테스트, 통합 테스트)에 대해 말해주세요.

20. WidgetsApp과 MaterialApp의 차이점에 대해 말해주세요.

21. Abstract (extends) & Interface (implements) & Mixin (with)에 대해 말해주세요.


* 경험에 대한 질문

1. 개발을 진행하면서 어려움을 느꼈던 순간과 어려움을 해결하기 위한 노력을 말해주세요.

└ 저는 SI 업체에서 일하며 백엔드와의 협업에서 어려움을 겪었습니다. 한정된 프로젝트 기간 내에 백엔드 작업 지연이나 데이터 구조 변경으로 인해 클라이언트 개발에 큰 압박을 받았습니다. 이러한 외부 의존성 문제를 해결하기 위해 클린 아키텍처를 도입했습니다.

 

클린 아키텍처를 적용함으로써 외부 시스템 변경에 덜 영향을 받는 코드 구조를 만들었습니다. 데이터 계층 & 도메인 계층 & 프레젠테이션 계층을 명확히 분리하여 백엔드 API가 변경되더라도 데이터 계층만 수정하면 되도록 설계했습니다. 또한, 추상화된 인터페이스와 의존성 주입을 통해 백엔드 응답이 지연되는 상황에서도 Mock 데이터를 활용해 UI 개발을 진행할 수 있었습니다. 이에 따라, 외부 요인에 의한 개발 지연을 최소화하고 프로젝트 기간을 준수할 수 있었습니다.

 


2. 코드 리뷰를 할 때, 중점적으로 보는 것은 어떤 것인지 말해주세요.

└ 먼저 프로젝트의 코드 규칙에 맞는지 확인합니다. 줄바꿈 & 네이밍 컨벤션 & 주석... 등등 해당 프로젝트의 코드 규칙에 어긋나는 것은 없는지를 먼저 체크합니다. 그다음으로는 코드의 안정성과 확장성을 중점적으로 봅니다. 코드에 문제가 생겼을 때, 버그의 영향 범위가 제한적인지, 다른 부분에서 사이드 이펙트를 일으키지 않는지 검토합니다.

 


3. 팀원간의 갈등 상황을 어떻게 해결하는지 말해주세요.

└ 의견 충돌로 인한 갈등 상황이 발생했을 때, 저는 먼저 상대방의 입장을 경청하고 공감하는 자세를 취합니다. 하지만 공과 사는 명확히 구분해야 한다고 생각합니다.

공적인 측면에서는 프로젝트와 코드 품질을 위해 제 의견을 논리적으로 전달하고, 더 나은 방향으로 나아가기 위한 건설적인 제안을 합니다. 필요하다면 객관적인 데이터나 문서를 통해 제 주장을 뒷받침합니다.

사적인 측면에서는 최대한 친근하고 웃는 얼굴로 대화하며 좋은 관계를 유지합니다. 이렇게 함으로써 상대방이 "이 사람은 사적으로는 좋은 동료이지만, 공적으로는 일을 잘하기 위한 고집이 있다."라고 인식하게 됩니다. 결국 상호 존중을 바탕으로 한 솔직한 의사소통이 갈등 해결의 핵심이라고 생각합니다.

 


4. 학습하는 방법과 정보를 얻는 채널을 말해주세요.

└ 정보를 얻는 주요 채널은 IT 뉴스와 블로그입니다. 학습 방법은 실전 중심적입니다. 뉴스나 블로그에서 얻은 키워드가 있으면, 해당 키워드를 중심으로 공식 문서를 찾아보고 직접 구현해 보는 방식을 선호합니다. 

 


5. 개발자가 된 이유와 개발 직군에서 모바일 개발을 선택한 이유를 말해주세요.

└ 어릴 때부터 호기심이 많고 창작에 대한 욕구가 강했으며, 소설가와 화가를 꿈꿨던 적도 있습니다. 비록 글이나 그림에는 재능이 부족했지만, 개발도 창작의 영역이라고 생각합니다. 제 손으로 무언가를 만들어 세상에 내놓는 과정에서 큰 만족감을 느낍니다.

모바일 개발을 선택한 이유는 프론트엔드 & 백엔드 & 모바일을 모두 경험해 본 결과, 모바일이 가장 흥미로웠기 때문입니다. 모바일 개발은 결과물이 눈에 직접 보이고 사용자들의 일상생활에 직접적인 영향을 미치는 점이 매력적이었습니다. 또한 현대 사회에서 스마트폰의 접근성이 좋아서 개발한 앱을 많은 사람들이 쉽게 사용할 수 있다는 점도 큰 장점으로 다가왔습니다.

 


6. 최근에 읽은 책이나 기억에 남는 글이 있다면 말해주세요.

└ 최근에 "트럼프 2.0시대의 2025년 AI 트렌드 10가지"라는 글을 읽었는데, 개발자로서 많은 통찰을 얻었습니다. 이 글은 정치적 변화가 기술 발전에 미치는 영향부터 AI가 물리 세계와 융합되는 미래까지 폭넓게 다루고 있어서 인상적이었습니다.

특히 기억에 남는 부분은 AI가 단순 기술을 넘어 국가 경쟁력의 핵심으로 부상하고 있다는 점과, 이로 인해 데이터센터와 에너지 인프라가 전략적 자산이 되고 있다는 분석입니다. 미국에서는 AI 데이터센터의 전력 수요를 충족하기 위해 폐쇄되었던 원자력 발전소를 재가동하는 사례도 언급되었는데, 이는 AI 발전 속도와 규모를 실감하게 했습니다.

또한, AI 시장이 초기 도입 단계에서 [1]ROI를 중시하는 단계로 전환되면서, 특정 산업이나 문제에 특화된 버티컬 AI 서비스들이 성장하고 있다는 부분도 주목했습니다. 이는 모바일 앱 개발에도 적용할 수 있는 [2]인사이트라고 생각합니다. 앱 개발에서도 특정 산업이나 사용자 문제에 초점을 맞춘 솔루션이 더 가치 있는 경험을 제공할 수 있기 때문입니다.

실시간 AI 아바타 기술을 통해 언어 장벽이 사라질 수 있다는 전망은 개발자로서 새로운 가능성을 떠올리게 했습니다. 크로스 플랫폼 개발을 통해 기술적 장벽을 낮추는 것처럼, AI는 언어와 문화적 장벽을 허물어 더 포용적인 기술 생태계를 만들 수 있다고 생각합니다.

이 글을 통해 기술 트렌드를 단순히 기술적 관점이 아닌 사회, 경제, 정치적 맥락에서 이해하는 것의 중요성을 배웠고, 이런 통합적 시각이 앞으로 더 혁신적인 앱 개발에도 도움이 될 것이라 생각합니다.

 

* [1]ROI(Return On Investement, 투자수익률): 투자한 비용 대비 얻은 이익의 비율을 나타내는 지표입니다.

* [2]인사이트(Insight): 단순한 정보나 데이터를 넘어서 그 속에 담긴 의미와 패턴을 발견하고 이해하는 통찰력을 뜻합니다.

 


7. 좋은 코드에 대한 생각을 말해주세요.

└ 좋은 코드란 "대화가 필요 없는 코드"라고 생각합니다. 즉, 코드 자체가 명확하고 이해하기 쉬워서 별도의 설명 없이도 다른 개발자가 쉽게 이해하고 유지보수할 수 있는 코드입니다.

물론 성능 최적화와 실행 속도는 개발자로서 당연히 챙겨야 할 기본적인 부분입니다. 그러나 그것을 넘어서 프로젝트의 코드 규칙을 정확히 준수하고, 어떤 개발자가 보더라도 추가적인 질문 없이 코드의 의도와 흐름을 파악할 수 있는 것이 진정한 좋은 코드라고 생각합니다.

 

 


 

긴 글을 끝까지 읽어주셔서 감사합니다!

 

이 글을 작성하면서 저 역시 많은 생각을 하게 되었습니다. 개발자로서의 면접은 단순히 기술적 지식을 확인하는 과정을 넘어, 문제 해결 능력과 협업 방식, 그리고 개인의 성장 가능성을 보여주는 중요한 기회라고 생각합니다.

특히, 경험에 관한 질문들은 단순 암기로는 대답할 수 없는, 진정한 자신의 이야기를 들려줄 수 있는 부분이라 더욱 중요하게 느껴집니다. 저 자신도 이러한 질문들에 대해 깊이 생각하며 개발자로서의 방향성을 다시 한번 점검하는 소중한 시간이었습니다.

여러분도 자신만의 이야기를 정리하면서 개발자로서의 정체성을 더 단단히 하고, 빛나는 순간을 만드시길 바랍니다.

 

모두 화이팅입니다! 여러분의 개발 여정을 진심으로 응원합니다!