본문 바로가기

전체 글

[Viewport] 주간 FE/App 트렌드 #01 : AI가 양산한 코드 다이어트와 Agentic UX 최근 1주일간 글로벌 개발자 커뮤니티 dev.to의 Weekly Top Featured 콘텐츠와 프론트엔드/모바일 앱 생태계의 동향을 분석한 주간 리포트입니다. 단순히 새로운 라이브러리를 소개하는 수준을 넘어, 현재 실무 아키텍처와 엔지니어링 파이프라인에 직접적인 영향을 미치고 있는 실질적인 변화들을 시니어 엔지니어의 시각으로 정리했습니다.1. App Development: AI가 만든 코드의 다이어트(Debloating) & 렌더링 엔진의 도약최근 모바일 앱 개발 진영의 가장 뜨거운 화두는 AI 어시스턴트(Claude, Copilot 등) 기반 개발의 부작용을 극복하는 '코드 최적화(Debloating)'와 크로스플랫폼 엔드포인트의 성능 고도화였습니다.Vibe Coding의 청구서, AI Bloat 제.. 더보기
Dart 3.3의 Extension Types: 쉽게 이해하는 개념과 활용법 Dart 3.3부터 도입된 Extension Types(확장 타입)은 기존 타입에 새로운 타입 레이어를 씌워, 더 안전하고 명확하게 코드를 작성할 수 있게 해주는 기능이다. 이번 포스팅에서는 Dart Extension Types의 개념, 장점, 사용법, 그리고 실전 예시를 정리해보도록 한다. 1. Extension Types란?정의: Extension Type은 기존 타입(int, String, List 등)에 컴파일 타임에서만 존재하는 새로운 타입을 덧씌우는 기능이다.특징: 런타임에는 실제로 래핑(wrapping)된 타입(Representation Type)으로 동작하며, 별도의 메모리 비용 없이 타입 안정성과 코드 가독성을 높여준다.비교: 기존의 Wrapper Class(예: class MyId { .. 더보기
Extension Method in Dart 이번 포스팅에서는 객체 지향 프로그래밍 언어인 Dart의 강력한 기능 중 하나인 익스텐션 메서드에 대해 정리해본다. Dart 2.7에 도입된 이 기능은 소스 코드에 접근할 수 없더라도 기존 라이브러리와 클래스에 새로운 기능을 추가할 수 있는 유연한 방법을 제공한다. 익스텐션 메서드를 사용하면 개발자는 String, List 등의 내장 타입이든 사용자 정의 클래스든 원래 클래스 정의를 변경하지 않고도 모든 타입에 새로운 메서드를 추가할 수 있다. 왜 익스텐션 메서드를 사용해야 할까?익스텐션 메서드는 클래스를 상속하지 않고도 클래스의 기능을 확장할 수 있는 강력한 메커니즘을 제공한다. 관련 기능을 하나의 익스텐션 메서드로 그룹화할 수 있으므로, 코드를 더욱 간결하고 읽기 쉽게 작성할 수 있다. 익스텐션 메서.. 더보기
Flutter에서의 Permission Handler 사용 이번 포스팅은 아래 링크의 아티클을 그대로 번역하여 정리하였습니다. 원문을 확인하고 싶으시면 아래 링크를 확인해주세요.출처: https://medium.com/@dudhatkirtan/how-to-use-permission-handler-in-flutter-db964943237e How To Use Permission Handler In Flutter?Overviewmedium.com 개요Flutter의 permission_handler 패키지는 모바일 애플리케이션에서 권한을 관리하는 데 유용한 도구이다. Android와 iOS 플랫폼 모두에 대한 권한을 요청하고 확인하는 과정을 간소화한다. permission_handler를 사용하면 개발자는 카메라, 연락처, 위치 등과 같은 민감한 정보에 쉽게 접근할.. 더보기
Flutter Data ENCRYPT & DECRYPT (플러터 데이터 암호화/복호화) 1. 암호화 / 복호화에 대한 정리암호화(Encryption): 평문 데이터를 인가되지 않은 사람이 읽지 못하도록 암호화된(암호문) 형태로 변환하는 과정복호화(Decryption): 암호화된 데이터를 다시 원래의 평문 데이터로 되돌리는 과정 2. Flutter에서 지원하는 암호화 알고리즘알고리즘특징AES정부, 금융기관 등에서 널리 사용하는 대칭키(비밀키) 암호화 방식. 빠르고 안전함.Fernet대칭키 방식. 128비트 AES CBC 모드와 HMAC-SHA256 인증을 결합하여 데이터 변조 방지.Salsa20스트림 암호화 방식. 빠르고 안전하며, 다양한 분야에서 사용됨.3. Flutter에서 구현1) encrypt 패키지 설치# pubspec.yamlencrypt: ^5.0.3 # 현 시점 최신버전 2) .. 더보기
Dart의 Event Loop 정리 Dart에서 Event Loop는 비동기 프로그래밍의 핵심 개념으로, 프로그램이 여러 작업을 효율적으로 처리할 수 있도록 관리한다. 특히 Flutter 개발자라면 UI 업데이트, 사용자 입력 처리, 파일 I/O 등 다양한 비동기 작업을 이해하기 위해 Event Loop의 작동 방식을 이해하는 것이 중요하다. 이번 블로그에서는 이벤트 루프의 주요 개념과 작동 원리를 정리하기로 한다. 1. Event Loop란?Event Loop는 프로그램에서 발생하는 다양한 이벤트(예: I/O 작업, 사용자 입력 등)를 관리하고 처리하는 구조 또는 디자인 패턴을 말한다. Dart는 단일 스레드(single-threaded) 언어로 설계되었기 때문에, Event Loop를 통해 비동기 작업을 효율적으로 처리한다.비동기 코드.. 더보기
Flutter TextFormFields 사용 시 체크사항 Flutter에서 TextFormField는 사용자 입력을 처리하는 데 중요한 역할을 한다. 하지만 이를 잘못 설정하면 오히려 사용자 경험이 저하되거나 앱의 전환율에 부정적인 영향을 미칠 수 있다. 이번 블로그에서는 TextFormField를 사용할 때 흔히 저지르는 실수와 이를 해결하는 방법을 다루기로 한다. 1. textInputAction을 설정하지 않음문제: 사용자가 가상 키보드의 "다음" 버튼을 눌렀을 때 다음 필드로 포커스가 이동하지 않음해결: textInputAction 속성을 설정하여 키보드 동작을 제어TextFormField( decoration: const InputDecoration(labelText: 'Field 1'), textInputAction: TextInputAction.. 더보기
Dart 프로그래밍에서의 애노테이션(Annotations) Annotation.. 최근까지는 어노테이션이라고 많이 읽었는데 영문으로 된 유튜브를 볼 때 거의 애노테이션으로 발음하는 것 같아 애노테이션으로 명기하기로 했다. Annotation이란?애노테이션은 클래스, 함수, 변수 등 다양한 코드 요소에 추가적인 정보를 제공하는 메타데이터이다. Dart에서는 @ 기호를 사용하여 애노테이션을 표시하며, 이는 컴파일타임 상수(const)로 정의된 값이어야 한다.class Parent { void doSomething() { print('Doing something in Parent'); }}class Child extends Parent { @override void doSomething() { print('Doing something in Child.. 더보기