분류 전체보기
-
DI동일 기본 가치분석 이차전지소재 탄소배출 관련주카테고리 없음 2020. 10. 15. 20:31
di동일은 여러 자회사를 가지고있으며 2019년기준 매출 9300억 정도 된다. 이중 주목할만한 부분은 섬유,의류,알루미늄,플랜트 산업이다. 2019년 기준 섬유소재 는 3000억 의류는 2550억 , 알루미늄 1910억 매출을 기록했다. 의류가 이중 많은 이익을 남기고있는 상황이다. 동일드방레 라는 자회사는 라코스테 와 만든 합작법인이다. 라코스테 매출과 직결된다. 기대되는 성장 산업으로는 환경오염방지 설비를 공급하는 동일씨앤이,플라즈마텍 알루미륨박을 제조하는 동일알루미늄이 있다. 동일방직이라는 이름으로 기존 섬유기업에서 구조조정을 거쳐 이름을 di동일로 바꾸며 알루미늄이랑 플랜트 사업 을 키우고있다. 알루미늄 알루미늄 산업에서 2차전지 수요가 늘면서 2차전지용 포일 매출 증가추세이다. 일반산업용 포일..
-
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..