전체 글

인턴 활동을 하면서 처음 봤던 것 중에 mounted 확인이 있었다. mount는 이전에 앱을 만들때 사용해본 적이 없어서 무슨 기능인지 이번 기회에 알아보려고 한다.우선 mounted라는 말은 무엇일까? ed가 붙으면 수동형이 되는데 mount는 여러가지의 의미가 있지만 명사형의 의미중에장치어떤 것을 지지하거나 고정하는 데 사용되는 장치를 의미합니다. 예시: "a camera mount" (카메라 거치대)라는 의미가 있습니다. 그러면 flutter Mounted의 의미로 해석을 해보자면 "연결이 되었다" 정도로 해석을 해보고 넘어가 보겠습니다. 간단하게 알아보기그 다음으로 공식 사이트를 찾아보겠습니다. 검색을 해보면 공식 사이트에선 state와 element에 대해서 두가지의 mounted 설명이 나..

제가 참여했던 인턴 프로젝트에서는 백엔드와의 API 통신을 통해 정보를 가져오는 모든 부분이 Future 방식으로 구현되어 있었습니다. Future는 Flutter의 대표적인 비동기 처리 방식으로, 한 번의 API 요청으로 데이터를 가져오는 데는 매우 적합합니다.하지만 프로젝트를 진행하면서 한 가지 큰 문제점을 발견했습니다. 바로 실시간으로 정보가 업데이트되어야 하는 중요한 기능들까지도 Future를 통해 처리하고 있었다는 점이었습니다.예를 들어, 실시간으로 변동되는 주문 상태나 알림 같은 정보들이 이에 해당했습니다. 당시에는 이러한 '실시간' 데이터를 가져오기 위해 Future를 **일정 시간마다 반복적으로 호출(폴링)**하는 방식으로 구현되어 있었습니다. 이 방식의 문제점은 명확했습니다Future는 ..

인턴이지만 내가 일하게 된곳에는 flutter를 메인으로 하는 곳이 아니였다. 그래서 바로 flutter 프로젝트에 참여하게 되었다. 인원이 부족했기 때문에 나의 부족한 지식으로도 곧바로 도움을 줄 수 있어서 좋았다.참여하게된 프로젝트에서 가장 처음으로 눈에 띄는게 Route 방식이였다. Navigator, GoRouter만을 사용해보았었고, GoRouter가 워낙 좋았어서 다른 Route 방식을 찾아보지 않았었다. 그런데 회사 프로젝트에서는 처음 보는 Route방식을 사용하고 있었다. Named RouterNamed Route는 페이지의 이름을 정의해서 navigator에 이름으로 화면으로 전환하는 방법입니다.import 'package:flutter/material.dart';void main() {..

대학교에서 storyboard를 이용해서 Swift, iOS 앱을 개발하는 것을 목표로 공부를 했었다. 하지만 ios 네이티브 개발자의 시장이 작아서 크로스 플랫폼을 공부해보는 것이 좋을 거 같았다.그래서 내일배움캠프를 통해서 Flutter를 공부했고 모바일 앱 개발에 대한 전반적인 구조와 선언형 UI의 개념을 잘 익힐 수 있었다.Dart 언어와 Widget 기반 구조 덕분에 UI 구성도 직관적이어서 굉장히 좋았다.하지만, iOS 전용 앱을 좀 더 깊이 있게 만들어보고 싶다는 생각이 들었고, 이번에는 Storyboard 말고 Flutter와 같이 선언형 UI 방식인 SwiftUI를 공부해보면 좋을 거 같아서 도전해보기로 했다. 언어DartSwift플랫폼iOS, Android, 웹 등 크로스플랫폼iOS,..


독서록 앱에는 책 검색 기능을 사용하고 있는데 검색을 할때 바로 원하는 책을 찾을 수 없을 수도 있습니다.. 그렇지만 한번에 많은 양의 정보를 요청하면 앱의 속도가 느려질 수 있으니 적은 수를 원할때마다 요청 하면서 속도를 높이는데 이때 사용할 수 있는것이 무한 스크롤입니다.1. api 분석API요청에는 무한 스크롤처럼 데이터의 중간부분만 요청 할 수 있게 설정할 수 있는 파라미터가 있는 경우가 있습니다. 없다면 구현이 불가능 할 수 있으니 가장 먼저 확인해줍니다. 다행히 데이터 요청의 시작지점을 설정할 수 있어서 사용할 수 있다는 것을 확인했습니다.2. Start 파라미터 추가하기데이터를 요청 할 때 start의 위치를 알려줘야하므로 함수 마다 start를 추가해줍니다.3. 검색 함수를 수정한다. i..

독서록 앱에서 책 정보를 일일이 입력하기 보다 검색을 통해서 책정보를 가져오면 좋을 거 같아서 찾아보니 여러곳에서 책 api를 제공하고있었습니다. 책 제목, 저자, 출판사 등의 간단한 정보만 필요하기 때문에 그 중에서 가장 친숙한 naver api를 이용하기로 결정했습니다.api 통신을 할 때는 역직렬화라는 여러 단계를 거처야 json 형식으로 오는 데이터의 요소를 필요에 따라서 이용할 수 있습니다. 이를 간편하게 해주는 라이브러리 Freezed 가 있어서 사용해보기로 했습니다.https://totally-developer.tistory.com/139 [060] 플러터 (Flutter) 배우기 - freezed 사용하기 1안녕하세요~ totally 개발자입니다. 먼저 이 포스팅 보시기에 앞서 지난 059..


BottomNavigaionBar는 어떤 앱이든 많이 사용하는 화면 전환방식 중 하나입니다. MUOZ 프로젝트에서도 사용하고 있습니다. 1. 모든 페이지에 BottomNavigationBar 적용하기첫번째로 사용한 방식이 NavgationBar가 있어야하는 모든 페이지에 BottomNavigationBar를 띄우는 방식을 사용했습니다. 일단은 구현해놓고 기능적을 완성하고 나서 수정하기로 했습니다.문제 발생큰 오류가 발생하고 수정하는 과정에서 수정하지 못하고 있었습니다. 그래서 화면에서 나오는 문제가 있었습니다. 네비게이션으로 화면 전환는 정상적으로 작동하지만 화면이 전활될때 BottomNavigationBar도 같이 새롭게 보여지고 있었습니다. 2. shellroute 사용하기navigation을 Go..

JSON이란 무엇인가?JSON이란 JavaScript Object Notation의 약자로 데이터를 쉽게 교환하고 저장하기 위한 텍스트 기반의 데이터 교환 표준 방법입니다. KEY -Value로 이루어져 있습니다.Dart 데이터 통신에서의 직렬화-역직렬화에 대해 설명하시오.직렬화-역직렬화 과정은 데이터 형식을 전활하기 위한 과정으로 주로 Json 통신을 할 때 사용됩니다.직렬화는 dart에서 사용한 객체를 json 형식으로 바꾸는 과정을 의미합니다.역직렬화는 json 데이터를 dart에 사용할 수 있는 객체로 바꾸는 과정입니다.HTTP 의 특징과 문제점은 무엇인가?HTTP는 Hypertext Transfer Protocol의 약자로 클라이언트와 서버 간에 통신을 위한 통신 프로토콜입니다.요청-응답 구조로..

메모리의 종류에 대해 설명하고, 종류가 여러가지인 이유에 대해 설명해주세요.주기억장치(RAM) : 데이터를 임시로 저장하며, 데이터가 휘발된다.보조기억장치 : 데이터를 영구적으로 저장한다. 데이터가 휘발되지 않는다.캐시 메모리 : CPU와 주기억 장치 사이에 위치하여 데이터를 빠르게 접근 할 수 있도록 도와준다.ROM(read only memory) : 읽기 전용 메모리, 비 휘발성이다. 전역 변수와 정적 변수의 차이는?전역 변수는 프로그램은 다른 파일에서도 해당 변수에 접근이 가능한 것을 의미. 정적 변수는 다른 파일에서는 접근 할 수 없다.OS가 메모리 관리를 해야하는 이유에 대해 설명해주시고, 메모리 관리를 위해 어떤 전략을 사용하는지 설명해주세요.프로세스 간의 메모리 충돌을 방지하고, 각 프로세스..