개발
-
vscode 비주얼 스튜디오 코드 형식맞추기 - 가로줄크기, 글자크기, 들여쓰기 설정개발/프로그래밍 2020. 10. 4. 20:07
Modern Collection View 와 MVVM 패턴 가이드 [iOS] Modern Collection View & MVVM 패턴 가이드 - 인프런 | 강의 MVVM 패턴과 Modern Collection View를 사용해 네트워킹을 구현하고, 다양하고 동적인 Collection View를 자유자재로 다룰 수 있게 됩니다., Swift iOS UI, 제대로 다루는 핵심 기술! 📲 iOS Swift 레이아웃 구현을 www.inflearn.com 프로젝트를 시작하면서 팀은 어떻게 코드 형식을 맞출지 정한다. 가독성을 더 좋게하기 위해 이런 저런 규칙을 정함과 동시에 줄은 언제 띄울지 가로줄은 얼마나 길게할지 들여쓰기는 어떻게 할지 정하는게 좋다. 규칙을 정했으면 각각 IDE에다가 세팅을 해줘야한다. v..
-
Flutter - GraphQL 세팅 및 쿼리 하는방법개발/flutter 2020. 9. 29. 16:19
Flutter와 GraphQL을 같이 사용하기 위해 처음 해야 할 것은 역시 세팅이다. graphql 플러그인을 넣어주고 (pub.dev/packages/graphql) 세팅을 시작해보자 처음 graphql 세팅하려면 GrapqlClient 가 필요하다. 나중에 이 GrapqlClient을 통해 api를 호출할것이다. GrapqlClient를 만들기 전에 우선 graphql_client.dart 파일을 생성했다. 여기서 GrapqlClient을 만들 작업을 할 것이다. GrapqlClient를 생성하기 위해서 AuthLink와 HttpLink가 필요하다. final _httpLink = HttpLink( uri: '$SERVER_URL', headers: {'os': os, 'uuid': uuid} );..
-
클린코드 함수 - switch 문개발/프로그래밍 2020. 9. 27. 19:54
switch 문 은 보통 함수가 길어질수밖에없다. 그래서 최대한 단 한번만 사용하는것이 좋다. Money calculatePay(Employee e){ switch(e.type){ case COMMISIONED return calculateCommisionedPay(e); case HOURLY return calculateHourlyPay(e); case SALARIED return calculateSalariedPay(e); default : throw InvalidEmployeeType(e.type); } } 위와같은 switch 문은 여러 문제점을 가지고있다. 동일한 구조를 가진 여러 함수들을 만들어야할 가능성이 많기 떄문이다. isPayday(Employee e, Date date) 고용 타입에따..
-
클린코드 함수 - 추상화개발/프로그래밍 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; } 위와같이 피자 타입에따라 피자를 생성할때 이런 식으로 생성한다. 하지만 예로 새로운 피자종류가 생기거나 치즈피자 판매를 중단하려면 코드를 수정해야한다. 저렇게 타입별로 피자를 생성하는 부분은 계속 바뀔수있으며 그럴 때마다 코드를 수정해야 하기 때문에 바뀌는부분은 캡슐화..