• Programming by 白影를 방문하신 여러분을 환영합니다 :)

핀테크와 관련된 내용들이 요즘 들어 많이 이슈화되고 있다.

이미 해외에서는 많은 핀테크 업체들이 발전을 거듭하고 있으니 우리나라에서도 조급할만하다.

하지만 업체들이 말하기론 우리나라는 법과 규제로 인해 진행이 어렵다는 말을 많이 한다.

말 그대로 발전속도를 사회규범이 못 따라가고 있는 것이다.

그 기준을 세우려는 노력이 필요하지만... 과연? 얼마나 하고 있는지 모르겠다.

먼저 금융과 관련된 이야기를 해보겠다.

금융과 관련된 사업에 있어서 우리나라는 ActiveX를 사용하고 있어서 많은 질타를 받고 있다.

이에 반해 해외에서는 카드정보와 간단한 개인정보 입력만으로 결재가 가능하다.

해외에서는 바보라서 우리나라처럼 안 하고 있는 것일까?

물론 그런 입력방식으로 사고가 날수도 있다. 하지만 ActiveX를 쓴다고 사고가 안 나는것도 아니고 해킹을 당하지 않는 것도 아니다.

다만 빈도의 차이일 뿐이다.

해외같은 방식은 업체의 부담이 커지게된다. 보안에 더 집중해야하기 때문이다.

하지만 왜 그렇게 하고 있는 것일까?

그만큼의 투자와 위험으로 인한 보상을 다 고려했을때 사용자에게 편의성을 주는 것이 수익 증가에 도움이 된다고 보기 때문이다.

보기 때문이 아니라 통계적으로 분석을 했겠지만 말이다.

예를 들어 우리나라에서는 물건 하나를 사려고해도 설치와 입력해야하는 것들이 매우 많다.

지쳐서 결재를 안한다는 말이 나올정도로 그런 경우가 많다.

하지만 해외 사이트에서 결재를 하는 경우 처음 결재시에 카드 정보를 입력한 후 다음 결재부터는 원버튼 결재가 활성화되어있다.

사용자도 아주 편하게 원하는 것을 순식간에 결재하고 얻을 수 있으니 매우 좋다.

우리나라도 얼른 모든것을 걷어내고 exe같은 뻘짓을 그만하고 해외결재와 같은 방향으로 나가야한다고 본다.

다시 돌아와서 핀테크... 참 우리나라는 편리한 결재만을 핀테크로 보는 것에 문제가 있다.

해외에서 OO페이라는 이름의 핀테크는 없다고 보면 된다.

오히려 이제까지의 결재에 있어서 보안과 업체에 있어 도움이 되는 솔루션 개발로 방향이 잡혀있다고 보면 된다.

간편한 결재는 이미 도입이 되어 있다는 것이다. 이것을 얼마나 유지하고 안전하게 하느냐가 핵심이라는 것이다.

우리나라는 아직 그 간편한 결재조차 비밀번호 입력이 필수로 들어가있다. 

아직도 갈길이 멀다는 것이다.

우리나라와 해외의 간편결재 또는 핀테크 관련한 개념이 다르다는 것을 알 수 있다.

이대로는 계속 뒤쳐질뿐이다. 바뀌지 않는 이상 말이다.

매우 간단하다...

shp 파일의 경로로 파일을 열고

객체를 호출한 다음에

해당 sde의 layer에 집어넣는다...

여기서 객체가 1개인 경우는 상관없지만 여러개가 있는 경우 아래와 같이 while문을 이용해서 넣어주는 것이 좋다.

몇개인지 굳이 셀 필요는 없으니까...

Arcobject를 만져본 사람이라면 대략 변수가 뭘 의미하는지는 아실거라 생각하고

아래 소스만 올립니다. (아래소스만으로는 안되고... 위에 기본적인 설정 및 접속 세팅은 필요합니다...)



            IFeatureClass pFClass = pWorkspace.openFeatureClass(layerName);             

            FeatureClass shpFClass = null;    

            ShapefileWorkspaceFactory shapefileWorkspaceFactory = new ShapefileWorkspaceFactory();

            Workspace workspace = new Workspace(shapefileWorkspaceFactory.openFromFile(shpPath, 0));

            shpFClass = new FeatureClass(workspace.openFeatureClass(shpNm));

            

            String shapeFieldName = shpFClass.getShapeFieldName();

            Fields shpFields = (Fields) shpFClass.getFields();

              

            int lngIndex = shpFields.findField(shapeFieldName);

            Field field = (Field) shpFields.getField(lngIndex);

            

            int shpFieldCount = shpFields.getFieldCount();

            FeatureCursor featureCursor = new FeatureCursor(shpFClass.search(null, true));            

            IFeature shpFeature = (IFeature) featureCursor.nextFeature();

              

            while (shpFeature != null) {

                StringBuffer row = new StringBuffer();

                IFeature pFeature = pFClass.createFeature();                


                for (int index = 0; index < shpFieldCount; index++) {

                    int fieldType = shpFeature.getFields().getField(index).getType();

                    if(pFeature.getFields().findField(shpFeature.getFields().getField(index).getName())==-1){

                        if(shpFeature.getFields().getField(index).getName().equals("FID"))

                            strError=shpFeature.getValue(index).toString();

                        continue;

                    }

                switch (fieldType) {

                    case esriFieldType.esriFieldTypeDouble:

                        if(!shpFeature.getFields().getField(index).getName().equals("AREA") && !shpFeature.getFields().getField(index).getName().equals("LEN")){         

                            row.append(shpFeature.getValue(index) + "\t");

                          }

                        break;

                    case esriFieldType.esriFieldTypeInteger:      

                        break;

                    case esriFieldType.esriFieldTypeSingle:

                        row.append(shpFeature.getValue(index) + "\t");

                        break;

                    case esriFieldType.esriFieldTypeSmallInteger:

                        row.append(shpFeature.getValue(index) + "\t");

                        break;

                    case esriFieldType.esriFieldTypeString:

                      row.append(shpFeature.getValue(index) + "\t");

                    break;

                    case esriFieldType.esriFieldTypeGeometry:

                      row.append("(geometry)" + "\t");

                      

                    IGeometry Geometry = shpFeature.getShape();

                    Geometry.setSpatialReferenceByRef(FromProjection);

                    Geometry.project(ToProjection);

                  

                    IEnvelope shpExtent = Geometry.getEnvelope();

                    pFeature.setShapeByRef(Geometry);

                    break;

                }

              }

                  

                pFeature.setValue(pFeature.getFields().findField("FieldNm"), FieldValue);

                pFeature.store(); 

                shpFeature = (IFeature) featureCursor.nextFeature();     

            }


'Programming > Arcgis' 카테고리의 다른 글

ArcObject API Local 설치  (0) 2015.03.27

JqGrid로 구현된 테이블에서 특정 Column을 선택하면 기능을 작동시키고 싶은 경우

onCellSelect을 사용하면 된다.

아래는 그 예제다. (그대로 사용해도 되는지 모르겠지만... 원소스에서 내용만 수정하였다.)

예제에서는 나이에 해당하는 컬럼을 클릭할 경우 그 Row에 해당하는 사람의 이름을 출력한다.



var selectUrl = "/selectTable";

var colNames = ['이름', '나이', '학년'];

    var colModel = [

{name:'Name'    ,index:'reqstSn' ,width:0},

{name:'Age'    ,index:'jobPrgstatClcdNm' ,width:100},

{name:'Grade'    ,index:'jobSecdNm' ,width:60}

         ];

    jQuery("#grid").jqGrid({

url:selectUrl,

postData: {

        },

        mtype: 'POST',

datatype: "json",

  colNames:colNames,

  colModel:colModel,

  shrinkToFit:false,

  autowidth:true,

            height: 137,

       rowNum: 5,

            rownumbers: true,

       pagination: true,

             scroll: false,

       pager: '#ptypeGrid', 

            sortname: 'default',

  viewrecords: true,

        sortorder: "desc",

     

    loadError : function(xhr,st,err) {

    alert("Error");

        },

     onCellSelect: function(rowid, index, contents, event) 

    {    

    var cm = $(this).jqGrid('getGridParam','colModel');    

    if(cm[index].name == "Age")

    {

         alert($(this).jqGrid('getCell', rowid, 'Name'));

   

    }

});