'2017/03/13'에 해당되는 글 4건

  1. 2017.03.13 물류 용어집
  2. 2017.03.13 Retrofit2. 3. 참고 URL
  3. 2017.03.13 JSON 데이터를 자바로 파싱방법 종류
  4. 2017.03.13 hanjul에 추가할 주석문장

[ 물류 용어집 ]

 

ASAP  - As soon as possible (가능한 빨리, 가급적 빨리)

P-Unit - 수요예측 단위

 

 

 

 

 

 Ch Inv-Sellable - Chnnel Inventory Sellable

                              - 유통업체 판매가능재고

 Ch Inv-Totol      - 유통업체 총 제고

 

 

 

 DIO - 재고회전일 (Days Inventory Outstanding)

        - 재고일수

        - 생산한 후에 판매되기까지 재고를 보유하고 있는 시간을 의미한다.
           즉, 제품이 현금화되지 못하고 제품 상태로 존재하는 시간이다.

 

 

 LTI - 장기재고 (Long Term Inventory)

       - 물류창고에 판매되지 못하고 장기간(기간을 회사마다 다름)보유하고 있는 재고.

 

 

NPI - 신제품 기획도입(New Product Introduction, NPI)

       - 신제품 출시에 대한 정보관리. Plan반영

       -제품도입 프로세스는 신제품에 대한 고객의 욕구(Needs)를 확인하여 마케팅부분과 연계하는 상품기획 단계에서부터 출발하여 제품연구 및 개발을 하는 개념설계, 상세설계, SP(Sample Product), MP(Mass Product)로 이관 및 출시 준비단계까지의 활동을 관장하는 프로세스이다.

 

 

 

 Shipment - 출하

                    . 생산된 제품이 판매등의 목적으로 사업체에서 출고되는 것으로 내수용과 수출용으로 나뉜다.

                  - 선적

                    . 육/해/공 모두에서 공히 공통으로 사용할 수 있는 용어이다.

                      신용장에서 선적일자와 관련되어 사용된 'shipment'라는 용어는 운송 형태에 따라 다음의 의미를 포함하고 있다.

                      > 해상운송 : 본선적재(loading on board)

                      > 항공운송 : 발송 (dispatch)

                      > 항공운송 : 인수 (accepted for carriage)

                      > 우편운송 : 우편수취일자 (date of post receipt)

                      > 택배운송 : 수령일자 (date of pick up)

                      > 복합운송 : 수탁 (taking in charge)

                      --> 이와 같이 운송형태에 따라서 'shipment'의 의미가 각각 다른 용어로 사용되지만 모두다 선적을 의미한다.

 

 

 

 Sell-in    - 제조업체(또는 제조업체의 물류창고)로부터 유통업체(채널)로 판매되는 것을 말한다.

                 - 흔히 기업의 매출을 이야기할 때는 기업이 유통업체에 판매하는 Sell-in을 뜻한다.

 Sell-out  - 유통업체로부터 최종 소비자로 판매되는 것으로 '실판매'라고도 한다.

 Sell-thru - Sell-out과 동일한 개념으로 쓰이는 경우도 있으나

                    유통거래처를 통해 판매매장으로 뿌려지거나 소비자에게 판매되기 전 단계의 유통거래처 사이의 거래를 뜻한다.

 Sell-in프로모션 - 매입금액에 따라 유통업체에 지급하는 인센티브이다.

                            - 물량규모에 따라 할인해 주는 물량할인(Volumn Discount), 실판매 수량과 상관없이

                               매입물량고 함께 제공하는 사은품 등이 있다.

 Sell-out프로모션 - 매장에서 판매되는 수량에 따라 판매 사원에게 지급하는 판매사원 인센티브.

                              - 고객에게 직접 제공되는 사은품 및 가격할인 등이 있다.

 

 

 Shipment Result - 생산법인 판매(AR) 실적

 

 Sales Result      - 판매법인 판매(AR)  Sell-in 실적

 WH_IN Result     - 판매법인 입고실적

 EOH Result        - 판매법인 주말 재고 실적

 

 BOH - Begin Of History : 주초, 월초 기초 재고수량

 EOH - Eod Of History    : 조말, 월말 이월재고수량

 

Posted by 농부지기
,

[ Retrofit2. 3. 참고 URL ]

 

 

 

1. 예제 : http://blog.naver.com/12341995/220936006667 : Retrofit2를 이용하여 JSON Object 서버에 전송

 

Posted by 농부지기
,

[ JSON 데이터를 자바로 파싱방법 종류 ]

 

REST API는 JSON 스트링 형태로 결과 데이터를 출력해주는데, 이를 파싱하여 자바 객체로 받아들여 활용할 수 있다. 현재 굉장히 많은 JAVA JSON 라이브러리가 존재하는데(json.org 에서 관련 자료를 확인할 수 있다), 어떤 것을 사용해야 할까?

오픈 소스에 보다 많은 커뮤니티와 업계에서 사용하여 접근하기 용이하고, 패키지 무게가 가벼우며, 성능이 뛰어난 라이브러리일 수록 좋을 것이다. 2014년 4월 기고된 developer.com 기사에서는 최근 가장 핫한 오픈 소스 JSON 처리 라이브러리 7가지를 소개하고 있는데, 자체 벤치마크 결과 그래프를 함께 제공하여 어떤 라이브러리가 자신의 프로젝트에 가장 적합할지를 선택하는데 도움을 주고 있다.

벤치마크 대상이 된 라이브러리 목록은 다음과 같다.

  • Jackson
  • Google-gson
  • JSON-lib
  • Flexjson
  • Json-io
  • Genson
  • JSONij

각 라이브러리의 특징을 기사 내용을 바탕으로 리스트 형식으로 간략하게 요약한다.

1. Jackson
  • 상당히 잘 알려진 JSON 라이브러리
  • 컨셉: “다목적 자바-JSON 처리 라이브러리. 빠르고 정확하고 가벼우며 개발자에게 친숙하다. (multi-purpose Java library for processing JSON who aims to be the best possible combination of fast, correct, lightweight and ergonomic for developers)”
  • 코드가 심플한 편
  • 특히 고용량(100MB 이상)의 JSON 데이터 처리 성능이 탁월
  • 메이븐(Maven) 저장소 지원
  • 패키지는 무거운 편
2. Google-gson
  • 오우(Oh), 구글!
  • 소스코드 구하기, 레퍼런스 찾기 용이
  • 하나의 jar 파일로 구성, 메이븐 저장소 지원
  • 가벼운 JSON 데이터 처리 성능 탁월, 전반적으로 고성능
  • 상대적으로 가벼운 패키지 무게
3. JSON-lib
4. Flexjson
  • 자바 객체를 JSON으로 직렬화하거나 비직렬화할 수 있는 경량 라이브러리
  • 다운로드 사이트
  • 다른 외부 라이브러리와 의존성 없음
  • 성능은 무난하나 아주 적은 패키지 사이즈가 장점
5. Json-io
  • 초경량 라이브러리
  • JsonReader, JsonWriter 두 클래스로 구성 -> 직렬화 담당하는 stream 객체가 필요 없음
  • 메이븐 저장소 지원
  • 대부분의 경우 JDK의 ObjectInputStream, ObjectOutputStream보다 빠른 직렬화 성능을 제공
6. Genson
7. JSONiJ

성능 측정(benchmark) 결과

다음은 위 7종의 라이브러리를 사용한 테스트 결과를 그래프로 나타낸 것이다.

 

위내용 발취 : http://djkeh.github.io/articles/The-fastest-way-to-parse-json-data-to-java-kor/

'Web. 기타 언어 > json' 카테고리의 다른 글

json-nexacro에서 사용하기  (0) 2019.07.15
Posted by 농부지기
,

 

 OkHttpClient okHttpClient = new OkHttpClient.Builder()
                //  SSL 인증 과정 진행
                .hostnameVerifier (hostnameVerifier)
                //  헤더에 AUTHORIZATION 정보를 추가
                .addInterceptor (new Interceptor ()
                {
                    @Override
                    public okhttp3.Response intercept (Chain chain) throws IOException
                    {
                        Request request = chain.request ().newBuilder ().addHeader ("AUTHORIZATION", headerToken).build ();
                        return chain.proceed (request);
                    }
                })

 

 

//  통신 시 json 사용과 해당 객체로의 파싱을 위해 생성,
//  이 부분이 없을 시 IllegalArgumentException 발생 함
Gson gson = new GsonBuilder ().setLenient ().create ();

 

 

 // 사용할 Retrofit과, API를 작성해둔 인터페이스를 선언 함
Retrofit retrofit;
ApiService apiService;

retrofit = new Retrofit.Builder ()
                //  서버 주소를 추가
                .baseUrl (GlobalApplication.getGlobalApplicationContext ().getString (R.string.server_address_root))
                //  Json 사용을 위해 ConvertFactory 추가
                .addConverterFactory (GsonConverterFactory.create (gson))
                //  https 통신을 위한 SSL 인증과정과, 헤더에 인증정보를 추가한 httpClient설정
                .client (okHttpClient)
                .build ();

//  API를 사용하기 위한 서비스 생성
apiService= retrofit.create (ApiService .class);

 

 

/**
 *  ApiService 인터페이스
 *  Rest API 의 메서드들을 선언 해두는 곳 
 */
public interface ApiService
{
    /**
     *  POST 형식을 사용하며, base URL 이후 상세 URL을 작성
     *  Body 에는 UserData 를 json 형식으로 추가함
     *
     *  결과는 서버에서 클라이언트로 부터 전달받은 UserData를 가공하여
     *  다시 클라이언트로 UserData로 전달해 줌
     */
    @POST ("/SpringServer/user")
    Call<UserData> hello(@Body UserData userData);
}

 

 

 

Call<UserData> userDataCall = apiService.hello (user);

        //  비동기식 호출 사용
        userDataCall.enqueue (new Callback<UserData> ()
        {
            @Override
            public void onResponse (Call<UserData> call, Response<UserData> response)
            {
                if(response.isSuccessful ())
                {
                    //  Response 가 성공한 상태
                    userData = response.body ();
                }
                else
                {
                    //  Response 가 실패한 상태
                    //  서버와의 통신에 성공하였지만, 서버 내부 동작 중에서 잘못된 점이 확인되어,
                    //  통신에는 성공한 상태로 설정하고, Body 에 실패한 정보를 추가
                    //  ex) 서버에서 잘못된 params 를 체크하여 잘못된 정보가 있다고 return
                    try
                    {
                        String result = response.errorBody ().string ();
                        Gson gson = new Gson ();

                         /**
                         ErrorCode.Class                       
                         public class ErrorCode
                         {
                            public String code;
                            public String message;
                         }
                         */
                        ErrorCode errorCode = gson.fromJson (result, ErrorCode.class);
                    }
                    catch(Exception e)
                    {
                        e.printStackTrace ();
                    }
                }
            }

            @Override
            public void onFailure (Call<UserData> call, Throwable t)
            {
                //  Request 가 실패한 상태 ( 통신 자체, 서버의 구현 이외의 에러 발생 )
                //  ex) 통신이 불가, 서버와의 연결 실패 등               
            }
        });

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'[Android] - 개념 > Retrofit2' 카테고리의 다른 글

Retrofit2. 3. 참고 URL  (0) 2017.03.13
Retrofit2. 2.사용방법 (Retrofit 2로 HTTP 호출하기)  (0) 2017.03.12
Retrofit2. 1.기본 개념  (0) 2017.03.12
Posted by 농부지기
,