반응형

DART 17

Clean Architecture 클린아키텍처, 객체지향 디자인 5원칙 SOLID[5부]

이번에는 객체지향 디자인 5원칙에 대해서 알아보도록 하자. 원래 포스팅의 순서는 Folder구조를 잡고, 각 폴더 안에 들어가는 파일 class들의 예시를 보여주려고 했다. 하지만 객체지향 디자인 5원칙을 설명하지 않고는 작성하기가 힘들다 생각이 되어 이것부터 먼저 포스팅을 하도록 하겠다. SOLID란 무엇인가. SOLID는 위의 이미지로 유추할 수 있듯이, 5개의 원칙에서 앞에 한 글자씩 따온 것이다. Robert C Martin(Uncle Bob)이 제시한 객체지향설계에 대한 원칙을 5원칙으로 정리를 한 것이다. Uncle Bob, 익숙한 이름일 것이다. Clean Architecture를 제안한 아키텍처이다. 클린아키텍처는 헥사고날(hexagonal) 아키텍처라고 하기도하고 포트와 어댑터(Port..

Study/기타 2024.03.23

22. [Flutter] 알면 매우 정말 너무 좋은 패키지들 [1부]

Clean architecture에 대해서 포스팅하다가 좋은 패키지들에 대한 내용 소개가 필요할 거 같아 작성하게 되었다. 사용하기 좋은 패키지 1. Freezed https://pub.dev/packages/freezed freezed | Dart package Code generation for immutable classes that has a simple syntax/API without compromising on the features. pub.dev Clean architecture에서 Domain Layer는 애플리케이션의 핵심 비즈니스 논리를 포함해서 외부 프레임워크나 라이브러리에 의존하지 않아야 하며, 데이터모델을 불변으로 만들어 안정성을 높이는 게 중요하다. 이 Freezed 패키지..

Study/Dart,Flutter 2024.03.13

21. [Dart] dart의 factory그리고 singleton에 대하여

언젠가 Flutter모임에 나가서 이런저런 이야기를 나누다가 어떤 분이 이러한 말씀을 해주셨다. "dart의 factory에 대해서 한국어로 구글링하면 첫 페이지의 대부분은 전부 틀린 내용으로 작성이 되어있어요. 싱글톤에 대한 내용과 구분을 못해요." 그걸 듣고 "아 나라도 제대로 된 내용을 포스팅해보자!" 라는 생각에 포스팅을 하게 되었다. Dart 키워드 factory란? dart에서 factoy는 Design pattern에서의 factory pattern과 전혀 다른 것이다. design pattern의 factory는 아래의 링크를 참고하자. https://refactoring.guru/ko/design-patterns/factory-method 팩토리 메서드 패턴 / 디자인 패턴들 / 생성 패..

Study/Dart,Flutter 2024.01.13

Clean Architecture 클린아키텍처, Domain에 대하여 [2부]

1부에선 Clean Architecture의 창시자, Uncle bob의 블로그를 최대한 번역하여 설명하는 내용으로 포스팅 하였다. 이번 포스팅에서는 Clean Architecture와 DDD 그리고 Domain에 대해서 알아보자. DDD, TDD 그걸 왜 알아야해? 우선 Clean architecture를 보다가 갑자기 DDD와 Domain 알아보자고 해서 놀라신 분들을 위해 먼저 "왜" 알아야하는지 설명부터 하는게 맞을거같아 설명을 해드리겠다. Domain과 DDD이란, Domain : 비즈니스 도메인이라고도 불리며, 소프트웨어가 해결하거나 다루려는 현실 세계의 문제 영역을 나타낸다. 예를들어, 은행 애플리케이션에서 도메인은 고객, 계좌, 거래와 같은 금융 분야의 주제를 포함할 수 있다. DDD(D..

Study/기타 2024.01.09

Clean Architecture 클린아키텍처에 대하여 [1부]

내가 사이드잡을 시작하면서 Flutter의 Clean Architecture를 지키며 코딩을 하기위해 공부를 한 것을 정리해보도록 하겠다. 가급적이면 처음부터 쭉 읽어도 모든 내용들이 이해되도록 작성해보도록 하겠다. 최대한 교차검증으로 오류도 최소화해서 작성해보도록 하겠다. 1. Clean Architecture란 우선 Clean architecture란 무엇일까? Uncle bob, Robert C. Martin이란 사람의 블로그에서 처음 등장한 것으로, 프로젝트 전반에 관련된 구조이다. 우선 그 내용은 아래 링크를 참고하길 바란다. (주의 : MVVM, MVC같은 것들은 프로젝트 전반이 아니라 UI와 비즈니스로직에 관련된 내용이다.) http://blog.cleancoder.com/uncle-bob/..

Study/기타 2024.01.08

20. [Dart, Flutter] extension활용하여 가독성 높이는 코드작성하기 [2부]

드디어 Extension을 Flutter에 활용해보도록 하자. 어떻게 활용하면 좋은지 혹시 감이 오는사람이면 코딩이 소질이 좀 있다고 할 수 있다. 만약 안 떠오른다면 그래도 속상해하지말고 이 포스팅 글을 읽고 따라하다보면 보는 시야가 넓어질 것이다. 자 이제 시작해보자. dart extension 복습 앞서 포스트를 보지 않은 사람들을 위해 링크를 추가해주고 짧게나마 설명을 하겠다. https://pcseob.tistory.com/68 19. [Dart, Flutter] extension에 대하여 [1부] 앞서 enum에 이어 드디어 extension에 대해 알아보도록 하자. 왜 extension을 설명하려고 하냐면, 가독성에 있어서 이점이 너무나도 많다. 다만 바로 들어가면 어려우니 기본적인 내용 1..

Study/Dart,Flutter 2024.01.08

19. [Dart, Flutter] extension에 대하여 [1부]

앞서 enum에 이어 드디어 extension에 대해 알아보도록 하자. 왜 extension을 설명하려고 하냐면, 가독성에 있어서 이점이 너무나도 많다. 다만 바로 들어가면 어려우니 기본적인 내용 1부, 활용하는 부분 2부 로 나누어서 작성하도록 하겠다. Extension 이란 무엇인가 extension 이란 직역하면, 확장이란 뜻이다. 말 그대로 확장한다는 뜻인데 어떤것을 확장하는지 코드를 보고 확인하자. enum SexType { man(toKorean: "남성"), woman(toKorean: "여성"), none(toKorean: "선택안함"); final String toKorean; const SexType({required this.toKorean}); } extension SexTypeEx..

Study/Dart,Flutter 2024.01.08

18. [Dart, Flutter] dart enum에 대하여

다음 포스팅의 Extension을 위해, 오늘은 dart의 enum에 대하여 간단하게 알아보자. 1. Enum 1.1 Enum이 무엇인가? https://dart-ko.dev/language/enum 열거 타입 Dart의 열거 타입에 대해 학습합니다. dart-ko.dev 여기에 한국어로 적혀있지만, 설명을 하도록 하겠다. 전체이름은 Enumerations, 직역하면 열거형, 목록 이라고 할 수 있다. 이 타입은 상수값을 가지는 클래스라고 할 수 있다 이게 무슨뜻인지 정확하게 코드를 보며 이해해보자. enum Color { red, green, blue } enum SexType { man, woman, others} enum Country {korea, usa, ...} 대충 이렇게 지을 수 있다. 이..

Study/Dart,Flutter 2024.01.08

Samsung Wallet Flutter Plugin 개발기 [1부]

Samsung Wallet을 Flutter Plugin으로 개발하여 Pub.dev에다가 Publish까지 끝냈다. 원래는 끝낸 후 곧바로 어떻게 개발하게 되었는지, 그리고 한국어 Readme를 작성하려했는데 항상 그렇듯 시간이 잘 따라주지 못해서(...) 이제라도 작성하게 되었다. https://pub.dev/packages/samsung_wallet samsung_wallet | Flutter Package Samsung Wallet Example Flutter plugin project. This plugin based Samsung Wallet Android java package file. pub.dev 우선 1부에선 어떻게 개발을 했는지 전체적인 내용 흐름을 작성하고 2부에서는 코드들을 어떻게 ..

3. [Flutter, Firebase]플러터 파이어베이스와 카카오 로그인연동하기(2부 ios설정)

이전 안드로이드 설정에 ios에도 설정하여 카카오로 로그인하고 파이어베이스 oauth 연동하는 것을 해보도록 하겠다. 참고 및 버전 https://youtu.be/Ar6RdDf77xQ 오준석 님의 카카오 로그인과 연동하는 걸 참고하여 만들었다. 영상과는 설명이 다른 부분이 많을 수 있으나, 큰 골자는 비슷하니 영상을 보는 것도 좋다. 또한 https://developers.kakao.com/docs/latest/ko/kakaologin/common Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다. developers.kakao.com 이걸 보아도 좋다! 카카오 개발자설정이 다 되지 않..

반응형