분류 전체보기
-
Flutter - GraphQL 에러 처리 방법개발/flutter 2020. 10. 14. 20:51
에러 핸들링 graphql client 를 사용하여 query() 메소드를 실행하면 리턴값 혹은 에러가 리턴이된다. 그 리턴된 내용은 QueryResult 에서 확인할수있다. 아래는 결과를 핸들링 하는 코드이다. String _handleReturn(QueryResult queryResult) { //에러가 있다면 exception을 throw 해주고 if (queryResult.hasException) { throw queryResult.exception; } //에러가 없다면 서버로 부터 받은 값을 파싱하여 리턴한다 final String url = queryResult.data['getSomething']; return url; } queryResult.execption 은 두가지의 예외로 나뉜다...
-
Flutter-grapqhQL 인자 값 넣어서 쿼리보내기개발/flutter 2020. 10. 13. 20:09
인자값 쿼리에 넣어서 보내기 쿼리를 보낼때 쿼리에 인자값을 넣어줘서 보내줘야할때가있다. 다음은 장바구니에 상품을 추가하는 api 인데 어떤 상품을 어떤 조건으로 넣을건지 서버에게 알려줘야 하기때문에 productQuery를 넣어줘야한다. String readAddCart(Map productQuery) => ''' mutation { addCart( input: $productQuery ) } '''; input 값에는 이런값들이 들어가야한다. Map toJson() { return { 'additionalInfo': json.encode(additionalInfo), 'reserveDate': json.encode(reserveDate), 'productId': json.encode(productId)..
-
Flutter-graphQL 쿼리 리턴값 데이터 모델링하기개발/flutter 2020. 10. 12. 13:45
지난글 2020/10/06 - [개발/flutter] - Flutter - graphQL 인자값 넣어서 Mutation 하기 데이터 모델링 하기 지난번에는 String 이나 boolean 같은 원시타입의 값을 리턴 받아 보는것을 해봤다. 이번엔 단순한 쿼리문을 사용해 받은 여러개의 데이터를 가지고 하나의 클래스로 모델링한후 리턴해보려한다. 쿼리문은 다음과같다. { servicePolicyInfo { serviceUseTermsUrl couponPolicyUrl pointPolicyUrl personalInfoUrl locationUseTermsUrl } } serviceUseTermsUrl couponPolicyUrl pointPolicyUrl personalInfoUrl locationUseTermsU..
-
클린코드 - 클래스개발/프로그래밍 2020. 10. 12. 08:52
클래스 작성시 내부 순서는 이렇게한다 1. 정적/공개 상수 2. 정적 비공개 변수 3. 비공개 인스턴스 변수 (공개변수는 잘쓰지않는다) 4. 공개함수, 비공개함수 클래스는 작아야한다 클래스나 모듈을 변경할 이유가 하나여야한다. 이를 단일책임원칙 SingleResponsibilityPrinciple 이라한다 class SuperDashboard{ getLastFocusedComponent() getVersionNumber() } 해당 클래스는 1. 버전정보를 추적하고 2. 스윙컴포넌트(UI) 를 관리한다 버전이나 스윙코드가 바뀔수있으므로 변경할 이유가 두가지인 클래스이다. 이런경우 version 클래스를 따로 뺴내서 SRP를 지킬수있다. 클래스에서는 인스턴스 변수의 갯수가 작아야한다 메소드가 변수를 많이쓸..
-
클린코드 - 오류,예외처리개발/프로그래밍 2020. 10. 7. 08:54
예외가 발생항수있는 코드는 try-catch 블록을 써야한다. 확인된 예외는 컴파일단계에서 확인되는 FileNotFount 에러 같은것이다. 코드의 문제가 아닌 참조한 파일이없다던지 같이 환경의 문제이다. 미확인된 예외는 런타임단계에서 확인되는 코드 문제들이다. 확인된 예외를 사용하는경우 최 하휘함수에서 예외가 발생할떄 그것을 호출하는 상위 함수 와 그상위함수들 모두 catch 블록으로 예외를 처리해줘야한다. 확인된 예외는 Open Closed Principle 을 위반한다. ACMEport port = ACMEPort(12); ///외부라이브러리 try{ port.open(); } catch(DeviceResponseException e){ reportPortError(e); } catch(ATM121..
-
Flutter - graphQL 인자값 넣어서 Mutation 하기개발/flutter 2020. 10. 6. 17:33
지난번에 간단한 쿼리를 보내 결과값을 받는 테스트까지 해보았다. 이번에는 간단한 mutation 을 실행해보려한다. mutation 은 이렇게 되어있다. mutation{ updatePassword(input: $input) } 유저의 비밀번호를 변경할것이며 input 값에는 기존 비밀번호 , 새로운 비밀번호가 들어잇는 Map 타입이될것이다. { oldPassword:xxxxx newPassword:yyyyy } 지난번과 같은 구조로 getGraphqlClient 를 사용해 서버와 통신할것이다. Future updatePasswordConnection(UpdatePasswordModel model) { return getGraphQLClient() .query(_queryOptions(model)) .t..
-
클린코드 - 객체와 자료구조개발/프로그래밍 2020. 10. 6. 17:05
자료를 세세하게 공유하기보다 추상적인 개념으로 표현하는게 좋다. 아무생각없이 get set 함수를 만드는것은 추상화를 이루지않는다. 객체는 자료를 숨기고 자료를 다루는 함수만 공개한다. 자료구조는 자료를 공개하고 함수가 없다. class Square { Point topLeft; double side; } class Rectangle { Point topLeft; double height; double width; } class Geometry { final double pi = 3.14; double area(dynamic shape) { if (shape is Square) { Square s = shape; return s.side * s.side; } else if (shape is Rectang..
-
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..