본문 바로가기

분류 전체보기

(45)
MVC 초기의 안드로이드 개발은 한 파일에 모든 코드가 작성 되었다. (UI 코드는 .xml) 시간이 지나면서 비지니스의 규모는 성장하고 그에 따라 사용자들이 요구하는 기능도 많아지기 시작했다. 해당 비지니스 요구사항을 만족하는 기능을 만들기 위해 개발자들은 열심히 일하였고, 1개의 파일에 모든 코드가 작성되었다. 그로인해 유지보수하기가 굉장히 힘들어지기 시작했다. 위의 이유로 코드 구조화, 분업화, 유지보수에 유연하게 대응할수 있는 개념인 디자인 패턴이 만들어 지게 되었다. 디자인 패턴의 발전 순서 MVC ⇒ MVP ⇒ MVVM 모바일 개발자라면, “디자인패턴은 뭐가 아쉬워서 이렇게 발전되어 왔는가?” 에 대한 고찰이 필요하며, 몇년전에 공부하고 기록으로 남겨야지 했는데, 이제야 적는다. MVC = Model..
gskinner gskinner 는 회사명이며, 글로벌 협업 및 디자인 and 개발 회사 이다. Flutter 2021 conference 를 통해 알게 되었고, Flutter x gskinner 콜라보레이션 소개 내용을 보고 감명깊게 보고 포스팅으로 소개하고자 한다. https://gskinner.com/ gskinner gskinner.com https://flutter.gskinner.com/ gskinner: leaders in Flutter design and developmentFlutter empowers us to build robust, beautiful apps that run on mobile, desktop & the web for clients including Google, Adobe & sma..
플러터에서 자주 쓰이는 Dart 언어 특징들 2024.10.22 수정됨계속 쓰면서 업데이트 할 예정 변수다트언어는 형변환을 지원하지 않는다.num 타입에는 int ,double 타입 모두 대입할수  있다.var : 한번 데이터를 할당하면 데이터 변경이나 다른 형태의 변수로 바꿀수도 없다.Dynamic : 데이터 변경도 자유로움 ( int 타입이 었다가 String 타입으로도 변환 가능.) final , const1. 비교차이점코드 실행의 결과로 인해 결정되는 상수 : final코드 실행 이전부터 결정되어야 하는 상수 const ⇒ DateTime.now() 과 같이 실행의 결과로 나오는 값 불가공통점둘 다 "상수"이다.2. 선언 방법final String a = "final";const String b = "const";final 이든 const ..
Dio + Retrofit + JsonSerializable 통한 서버 통신 Http 통신 테스트를 위한 무료 api 제공 사이트https://reqres.in Reqres - A hosted REST-API ready to respond to your AJAX requestsNative JavaScript If you've already got your own application entities, ie. "products", you can send them in the endpoint URL, like so: var xhr = new XMLHttpRequest(); xhr.open("GET", "https://reqres.in/api/products/3", true); xhr.onload = function(){ consoreqres.in 요청 API : https://req..
Flutter Favorite program pub.dev 의 플러터 공식 인증 프로그램 패키지https://docs.flutter.dev/development/packages-and-plugins/favorites Flutter Favorite programGuidelines for identifying a plugin or package as a Flutter Favorite.docs.flutter.dev  ## 플러터 공식 인증 패키지를 주로 추천하지만, 꼭 개발할 앱의 사양과 적합성으로 고려하고 사용하시길 바랍니다. 아래의 조건을 통과함으로써 인증받는다.전체 패키지 점수Apache, Artistic, BSD, CC BY, MIT, MS-PL 및 W3C를 포함하되 이에 국한되지 않는 허용 라이선스GitHub 버전 태그는 pub.dev의 현재 ..
시간 복잡도(Time Complexity) - 2 참고하였습니다 : 시간복잡도(time complexity)를 알차게 설명합니다! 빅 오(Big O)를 포함해서 점근적 표기법을 다양한 예제와 함께 설명하니까요 들러보세요~ :) https://www.youtube.com/watch?v=tTFoClBZutw&t=1135s 1장에서 시간복잡도 ⇒ 알고리즘 성능이 얼마나 좋은가? ⇒ 실행시간이 얼마나 짧은가? ⇒ 실행횟수가 얼마나 작은가? ⇒ 실행횟수 식의 변수 N 이 무한하게 클때, 점근적 표기법으로 단순하게 보여지는 표현식 점근적 표기법 으로 시간복잡도를 표현. 이는 입력값 N → ∞ 일 때, 어떤 함수에 근접해지는지 분석. 한다고 했다. 아래의 코드를 보자 왼쪽의 코드는 정수배열 inputs 에 target 값이 있는지 확인하는 함수 이다. 오른쪽 그림 ..
시간 복잡도(Time Complexity) - 1 시간복잡도(time complexity)를 알차게 설명합니다! 빅 오(Big O)를 포함해서 점근적 표기법 참고하였습니다 : https://www.youtube.com/watch?v=tTFoClBZutw&t=1135s 말 그대로 시간이 얼마나 복잡하냐? 근데 이렇게 한국인이 이해하는건 사실상 불가능하다. 시간 복잡도 라는 말은 알고리즘 세계에서 사용 되는 단어, 알고리즘의 성능 지표로 사용된다. 먼저 빠르게 짧게 이해하고 가자 시간복잡도 => 알고리즘 성능이 얼마나 좋은가? => 실행시간이 얼마나 짧은가? 우리는 보통 코드를 보면, 무언가 값을 넣었을때, 실행시간이 짧으면 짧을 수록 성능이 좋다고 생각한다. 당연하다. 음식점에서 주문해놓고 한참동안 음식이 안오면 얼마나 빡치겠는가? (한국인 8282~~)..
6. 흐름제어와 논리연산자 반복문을 사용하면서 중간에 그만하고 나와야 될때도 있고, 나올때 값을 반환해야 될때도 있고, 여러 상황들이 생길수 있다. 1. 그래서 반복문 내에서 코드의 흐름을 제어하는 키워드가 있는데 Break = 반복문 내의 구문이 실행되는 중간에 즉시 반복문 종료하고 넘어감 Continue = 다음 반복문으로 바로 넘어감. fun main() { for(i in 1..10){ if(i==3) break print(i) } } if(i==3) break : 일때 다음코드를 실행시키지 않고 종료된다. 1 2 fun main() { for(i in 1..10){ if(i==3) continue print(i) } } if(i==3) continue : 코드를 건너 뛴다. 1 2 4 5 6 7 8 9 10 2. labe..