개발
-
클린코드 함수 - 추상화개발/프로그래밍 2020. 9. 27. 19:46
클린코드에서는 함수를 짤때 짧게 함수를 만드는것을 권장한다. 함수가 길어질수록 그 함수가 어떤 일을하는지 명확하지 않아지며 가독성이 떨어지게 될것이다. 함수를 짧게 구현하기 위해서는 함수가 하는일이 한가지여야 한다. 하나의 함수가 여러가지의 작업을 하게되면 그만큼 함수가 길어질것이다. 그럼 어떻게 함수를 구현하면 될까? 예시를 보자 String renderPageWithSetupAndTeardowns(PageData pageData, bool isSuite){ if(isTestPage(pageData)){ //테스트 페이지인지 확인 includeSetupAndTeardownPages(pageData,isSuite) //셋업페이지와 분해페이지를 삽입 } return pageData.getHtml(); //..
-
클린코드 함수 - 적절한 인수값(Parameter)개발/프로그래밍 2020. 9. 27. 14:15
함수 인수 이상적인 함수의 인수 개수는 0개이며, 그다음은 1개, 그다음은 2개이다. 3개 이상은 피하길 권장한다. 아래의 코드처럼 변수를 인수로 넘겨서 변수를 변경하는 작업을 하지 않고 클래스 안에 내부 변수를 사용하고 함수 인자로 넘기지 않는 것이 인수를 줄이는 방법이다. includeSetupPage(newPageContent); //인수로 넘기기 includeSetupPage(); //안넘기고 내부 변수로 사용하기 단항 (인수가 1개) 함수는 이럴 때 많이 쓰인다. 인수에 대한 질문을 던지는 경우 ex> bool isFileExist(myFile) 혹은 인수를 변환해 결괏값을 리턴하는 경우 ex> InputStream fileOpen(String fileName) 이런 경우가 아니라면 단항을 피하..
-
카카오 로그인에러 AUTHORIZATION_FAILED: invalid android_key_hash or ios_bundle_id or web_site_url개발/flutter 2020. 9. 24. 10:53
Modern Collection View 와 MVVM 패턴 가이드 [iOS] Modern Collection View & MVVM 패턴 가이드 - 인프런 | 강의 MVVM 패턴과 Modern Collection View를 사용해 네트워킹을 구현하고, 다양하고 동적인 Collection View를 자유자재로 다룰 수 있게 됩니다., - 강의 소개 | 인프런 www.inflearn.com 카카오 로그인을 구현했는데 유저정보를 가져오지않고 다음과같은 에러를 던진다. AUTHORIZATION_FAILED: invalid android_key_hash or ios_bundle_id or web_site_url 이 에러가 발생하는 이유는 카카오 개발자 페이지에서 키 해시가 등록이 안되어 있거나 혹은 잘못 들어가있는..
-
Flutter-Your Xcode version may be too old for your iOS version 에러해결개발/flutter 2020. 9. 22. 16:07
Apple 디바이스에 새로 소프트웨어 업데이트가 떠서 iOS 14 로 업데이트를 했다. 그후 vscode 로 빌드를 하니 다음과 같은 에러가 발생헀다. Running "flutter pub get" in mobile... Launching lib/main.dart on iPhone in debug mode... Automatically signing iOS for device deployment using specified development team in Xcode project: SJ7FT7BX2D Running pod install... Xcode build done. 93.0s Installing and launching... ══════════════════════════════════════..
-
팩토리 패턴개발/flutter 2020. 9. 14. 17:54
팩토리 패턴 팩토리 패턴은 기본적으로 객체를 생성하는 패턴이다. 기본적으로 객체를 생성할떄 이렇게 생성한다. Pizza orderPizza(String type){ Pizza pizza; if(type=='cheese'){ pizza = CheesePizza(); }else if(type=='pepperoni'){ pizza = PepperoniPizza(); } pizza.bake(); pizza.cut(); return pizza; } 위와같이 피자 타입에따라 피자를 생성할때 이런 식으로 생성한다. 하지만 예로 새로운 피자종류가 생기거나 치즈피자 판매를 중단하려면 코드를 수정해야한다. 저렇게 타입별로 피자를 생성하는 부분은 계속 바뀔수있으며 그럴 때마다 코드를 수정해야 하기 때문에 바뀌는부분은 캡슐화..
-
Flutter 카카오 로그인 구현하기개발/flutter 2020. 9. 9. 16:53
flutter 에서 카카오 로그인을 구현하려면 플러그인을 사용해야한다. 플러그인은 flutter_kakao_login , Kakao_flutter_sdk 두가지 플러그인이있다. Kakao_flutter_sdk는 카카오 공식 플러그인이고 로그인 뿐만 아니라 다른 카카오의 api 를사용할수있는반면 flutter_kakao_login 는 써드파티 플러그인이며 로그인 기능만을 구현할수있다. 당연히 공식 플러그인을 사용하는게 좋지만 현재 최신버전인 Kakao_flutter_sdk 0.4.2 버전에서 로그인을 구현시 iOS 빌드가 안되는 에러가 자꾸 발생한다. 그래서 어쩔수 없이 flutter_kakao_login을 사용중이다. final kakaoSignIn = FlutterKakaoLogin(); final r..
-
[Flutter] 디바이스 별로 다른 Widget의 넓이 설정하기개발/flutter 2020. 9. 7. 16:34
위젯에 넓이나 높이를 지정해줄 때 이런 식으로 넓이와 높이를 지정해준다. Container( height:400, width:200 ) 디자인을 보고 넓이를 지정해줬거나 시뮬레이터에서 직접 만들면서 넓이를 지정해줬든 간에 너비가 넓은 디바이스, 좁은 디바이스에 모두 똑같은 너비의 위젯이 된다. 이런 경우 여백에 차이가 있을 것이고 의도치 않을 수 있다. MediaQuery를 활용해 디바이스의 실제 너비를 구할 수 있다. MediaQuery.of(context).size.width; 200의 너비를 디바이스의 크기별로 맞춰서 계산하려면 이렇게 하면 된다. final deviceWidth = MediaQuery.of(context).size.width; final standardDeviceWidth = 36..
-
탤런트 코드개발/생각 2020. 9. 6. 21:01
얼마 전 탤런트 코드라는 책을 완독 하였다. 개발자/프로그래머 필독서나 추천 독서를 찾던 도중 www.youtube.com/watch?v=cB8AhHeLGwo 이걸 보고 탤런트 코드라는 책을 보았고 다른 책들과 다르게 ebook 이 있어서 바로 구매했다. 제목이 탤런트 코드였기에 코드에 관련된 내용인줄 알았는데 그런 뜻은 아니었고 프로그래밍에 관련된 내용도 아니었다. 재능과 그 재능을 얻기위한 방법에 대한 내용이다. 개발자라는 영역이 재능과 기술이 필요하기 때문에 아마 추천도서에 있지 않았나 추측해본다. 전체 내용을 짧게 요약하자면 한 분야에 뛰어난 재능을 가진 사람들은 타고났다고 생각하지만 그게 아니라 재능을 얻고 그 재능을 발전시키려면 심층 연습 , 점화 , 퍼펙트 코치가 필요하다고 말한다. 심층 연..