기본 콘텐츠로 건너뛰기

따라하기로 성공한 MS, LG, MITSUI

남의 것을 모방하는 것이 나쁘다는 이야기도 많다. 남의 아이디어를 훔치는 것이 나쁘다고들 한다. 하지만 100%창조를 하는 사람은 거의 없다.  천재 조차도 어디선가 영감을 얻었다고 이야기를 하며 만드는 새로운 것들.. 이것 역시 자연이나 누군가의 사람에게서 얻게된 모방의 산물이 된다. 한글의 모음 구조는 목의 음성의 위치를 모방 했다. 중국어는 새의 발자국을 모방했다. 즉, 모방이 문제가 되는 것이 아닌 것 같다. 클라우드가 확산 되자마자 클라우드를 분석하여 클라우드를 충실하게 구현한 오피스365는 따라하기 이지만 욕먹는 것이 아니다. MS는  원래부터 마우스를 잡스에게서 따라하고 윈도우를 Packard bell에서 가져왔다. 이 전에 MS-DOS는 PC-DOS에서 가져온 것이다. 이렇게 따라하기를 사업화로 1위를 넘어서 MS가 1위가 된 것이다. 초기에는 나도 욕했다. 따라하기로 1위를 제끼는건 치사하지 않아? 하지만 서두에서도 보였지만, 남을 짓밟기가 아니라 경쟁에서 고객의 선택을 받게 하는 곳에 얼마나 치중하느냐가 중요한 것 같다. 한국에서 스타트업을 할 때 투자자들과 가장 큰 마찰이 여기 있었다. 투자자들은 Lock-on 을 왜 안하느냐, 경쟁자가 올라온다면 어떻게 경쟁자를 물리칠 것이냐를 듣고나서 투자 가치를 판단한다. 투자자들은 경쟁자를 겁내하며 경쟁자 죽이기에 온 힘을 기울일 것을 종용한다. 난 그게 싫어서 우리 서비스가 맘에 안들면 얼마든지 쉽게 나갈 수 있도록 배려했다. 결국 한 푼도 투자는 받지 못했다. LG는  삼성과는 달리 사업분야가 엄청나게 넓다. 그리고 독자 기술은 없다. OLED기술은 처음부터 LG가 개발한 것이 아니라 원래 있는 기술의 상용화를 빨리 한 것이다. LG의 정책은 없는 기술을 만드는 것이 아니라 고객이 필요로 하면 직접 만들자.. 인 것이다. 그러다보니 너무 많은 사업에 손을 댔지만 직접 생산이다 보니 손실이 크지 않고, 매출도 고객...

UiPath에서 switch acitvity의 주의점.

아마도 UiPath에서 실수한 것 중에 하나가 Switch activity인 것 같다. 다른 것들은 모두 VBS(Visual Basic Script)를 기준으로 만들었는데 switch만은 독자 표현 형식으로 되어 있다. 때문에 많이 헛갈리면서 뭔가 쌩뚱맞는 느낌을 받는다. VB에는 Switch가 없고 Select Case문이 있다. 이 때문에 switch는 C에서 가져오다가 서로 엇갈린게 아닐까 싶다. 가장 유의할 점은 각 case의 조건 부분에 따옴표를 넣으면 안된다. 예를 들어 s가 "K" 일 때, "L"일때를 구분해서 무언가를 하고 싶다. switch이외의 모든 activity는 s는 변수이기 때문에 "K" 등의 식으로 표현한다. if activity를 보면 condition에 s = "K" 라고 입력한다. 하지만 switch는 K 라고 따옴표 없이 입력해야 한다. 이걸로 처음에는 이상이 없는데 그냥 조건을 무시해서 결국 switch를 못쓰고 if로 어떻게든 했는데, 이런 버그아닌 버그가 있다는 사실을 늦게 알아서 나중에 바꾸는라 고생이 많았다. WWF(Windows Workflow Foundation)에서 잘못 만들었을까? 누가 잘못 만들었던간에 통일을 시키고 싶은 activity중 하나이다. Do not login your server any more! giip :: Free server management tool! https://giipasp.azurewebsites.net/

대용량 배터리 구매시 유의 사항

휴대용 단말기가 증가함에 따라 외장형 보조배터리의 수요가 급증하고 있습니다. 2011년 경에 이를 예견하고 사업을 하려 했으나, 그 때는 너무 수요가 없어서 구매가 없었죠;; 그래도 저장장치를 좋아하는 성격에 에너지 저장장치인 외장형 배터리를 다양한 종류로 사보고 개조해보면서 여러가지 용도를 찾고 있었습니다. 그러다가 주변에서 외장형 배터리 구매를 하면서 물어보는 것들이 있어서 참고가 되지 않을까 해서 정리해 봅니다. 요즘은 30000mA 용량의 배터리도 많이 팔리고 있어서 자신에게 맞는 배터리 사이즈도 생각해서 구매를 고려해보시기 바랍니다. * 시작하기 전에... 18650 Li-ion배터리에 대한 고찰 최근 배터리에 관심있는 사람들은 아마 이 모델의 배터리를 알 것입니다. AA전지 사이즈보다 크면서 생긴건 비슷하여 잘못 구입하시는 분들도 있을 수 있지만, 한국에서는 잘 팔지 않는 배터리다보니 쉽게 접하지 않아 잘못 구매는 어렵지요.. 18650배터리가 시장에서 각광받는 이유는 AA전지보다 조금 크면서 3.7V의 고전압을 낼 수 있어 AA전지를 직렬로 3개를 연결한 만큼의 전압을 냅니다. 게다가 Li-ion(리튬이온) 배터리라 메모리 효과가 없어서 좋고, 용량도 굉장히 커서 요즘 저가로 판매되는 많은 외장 배터리가 18650 배터리를 많이 사용합니다. 한때 국내에서 히트 쳤던 샤오미 10000mA배터리도 2500mA짜리 네 개를 연결했는데도 저렴하고 굉장히 작아서 인기를 끌었지요.. 하지만 아직 18650 배터리의 중대한 단점이 있습니다. 바로 안정성 입니다. 리튬이온 배터리 자체의 문제인데요.. 리튬이온 배터리는 폭발이 쉽고 폭발의 영향도 커서 거의 폭발물 취급을 해도 될 정도 입니다. 때문에 안전을 위해 과전류 방지 회로를 배터리마다 탑재하는 것을 의무시 하여 판매하는 국가도 있지만, 국내에는 그런 규정이 아직 없는 것 같습니다. 배터리의 개당 단가가 워낙 저렴해서 회로 비용을 아끼기 위해 중국산은 넣지 않고 판...

RPA가 보여주는 파워

유난히도 요청이 많았던 날이다. 그래서 한 번 요청 오늘 처리한 데이터 추출작업 파일 수를 세어 보았다. 94건... 일반적인 데이터 추출은 추출 조건 및 내용을 보고 요청자와의 커뮤니케이션, 추출 작업, 추출된 결과의 엑셀 정리 작업까지 하면 평균 25분 걸린다. 하루에 8시간 일한다면 쉬지않고 한시간에 3건 정도, 8시간에 24건 추출 가능하다. 정말로 쉬지 않고 말이다. 실제로 이 업무는 세 명이서 했던 것이고, 우연히 이렇게 몰려오면 날짜를 미루거나 해서 처리하는 것 같았는데, 그냥 하다보니 다 처리를 해버렸다. 상담도 들어주고, 휴식도 하곤 했지만, 요청 내용의 변경만 RPA에 적용 시키는데에도 하루 종일 걸렸다. 하다보니 조금 더 개선해야지 하는 내용도 머릿속에 떠올랐으나, 오늘은 정기 점검도 미룰 수 없고, 다른 요청 작업들도 담당자가 미룰 수 없다고 사정하는 바람에 전부 처리를 해주게 되었다. RPA의 파워가 느껴지는 하루였긴 했지만, 회사에서는 이 속도가 기준이 되어 버리지 않을까 하는 불안함이 생긴다. 나를 나가게 했던 모 회사가 나의 자리를 메우기 위해 5년을 사람을 찾다가 결국 타협하고 5명으로 늘린 실제 상황이 있었기 때문에.. 경영자들이 이런 과오를 또 일으키지 않았으면 한다.  Do not login your machine any more! giip :: Free RPA orchestration tool! https://giipasp.azurewebsites.net/

giip KVS에 UiPath에서 던질 때의 주의 점.

xls2kvs를 이용해서 giip KVS에 데이터를 던지는데 이슈가 발생했다. git :  https://github.com/LowyShin/lwrpa-uip-giipxls2kvs 참고로 xls2kvs는 Excel파일의 시트 내용을 읽어서 giip KVS로 던지는 툴이다. 이걸 이용해서 주기적으로 던지면 giip에서는 history로서 저장이 되고 서버 상세에서 바로 테이블 형태로 볼 수 있기 때문에 아주 편리하다. (Oracle의 테이블 스페이스에서 용량이 얼마 안남은 순서대로 표시하게 한 KVS의 예) 게다가 KVS API를 이용해서 데이터를 특정 지어 조건에 따른 다른 업무(Tablespace의 확장 쿼리를 날리기 라던가)를 Trigger에 걸어놓을 수가 있다. 문제는.. UiPath에서 xlsx처리가 편리해서 만들고 있는데, API를 호출하려 하니 Azure의 App Service 환경(Serverless) 에서는 UiPath의 Web.HttpRequest 요청이 정상 요청이 아니라고 에러를 반환한다. Python때처럼 Add Header를 이용해서 다른 브라우저인 척도 넣을 수 있는데, UiPath의 잇점을 살려서 그냥 브라우저를 열고 URL을 입력하는 방법으로 시도했다. 그랬더니, 이번에는 URL부분에 넣은 데이터의 따옴표["]가 사라진 것이다! 때문에 KVS에서는 필드명을 정상 인식 못하고 빈 테이블로 표시... 실제로 던지기 전의 URL을 Log activity를 이용해서 로깅해 봤더니 URL에는 정상적으로 따옴표가 보였으나, 크롬 브라우저의 주소창에 넣는 순간 자동으로 사라진 것이다. 브라우저에서 따옴표 강제 삭제 기능이 있었다니.. 그래서 URLEncode를 할까 고민을 했는데.. UiPath에서 URLEncode VBScript를 넣으면 해결 될 것이나, 이번에는 따옴표를 %22로 리플레이스 해서 처리.. 깔끔하게 코드를 짠다면 URLEncode로 해서 브라우저로 던지...

DBMS 튜닝(tuning)시 유의 점

DBMS의 튜닝의 70% 이상은 SQL튜닝과 Index튜닝으로 해결 됩니다. 하지만 예외적인게 조금 있지요. 얼마 전에 옆에서 이상하게 속도가 느려진 쿼리가 있어서 봐달라고 쿼리를 보여주었습니다. 힌트를 주어 강제로 인덱스를 태우고 있었습니다. 이 힌트는 왜 주었냐고 물어보니 원래 그렇게 되어 있어서 사용중이었다고 합니다. 아마 초기에 만든 사람이 사라지고 그냥 그 동안 문제 없이 쓰고 있었던 것 같네요. 그냥 잘 모르면 힌트를 없애고 돌려보세요. 라고 가이드를 했더니 3초 이상 걸렸던 쿼리가 0.01초로 끝났습니다. 이유는 뭘까요? 대부분의 인덱스는 초기 개발자가 개발하면서 만든 인덱스 외에는 나중에 추가 되는 경우가 많지 않습니다. 대부분 한 번 만들면 그게 최적이라고 생각하는 경우가 대 부분이고, 지금 처럼 초기에 만든 사람들이 사라지고 물려받은 사람들은 이유를 모르고 사용하는 경우도 있습니다. 테이블 설계시의 예상 데이터 축적량을 보고 아무리 DB 전문가가 Index를 걸어준들 사용자의 성향이나 시대에 따라 데이터는 전혀 달리 쌓이게 되는게 보통입니다. 예를 들어, 한국형 게시판은 대 부분 글이 많고 댓글이 적은 편입니다. 이유는 튀기 좋아하는 한국인들은 자기가 돋보여야 하기 때문에 댓글에 달 글 조차도 글쓰기로 올라와서 많은 사람들이 보게 하길 원하는 경우가 많기 때문이지요. 하지만 이 게시판으로 일본에서 서비스를 해보면 글은 얼마 안올라오는데 댓글이 수천에서 수만개가 쌓입니다. 즉 유저의 성향에 따른 데이터의 편중이 달라지는데, 이 때 게시글 옆에 댓글을 카운트 하는 경우 subquery를 이용해서 카운트 하는 경우도 많고, group by 를 이용해서 한 번 카운트 한 댓글 통계를 join하는 경우도 있습니다. 전자의 경우는 댓글 수가 적은 한국에서는 좋은 쿼리이나, 댓글이 너무 많아진 일본에서는 group by에 비해 많은 양의 카운트를 nested loop로 처리하게 되므로 효율이 많이 떨어집니다. ...

WIndows Batch파일에서 다른 bat파일을 호출 할 때

배치(Batch)파일에서 다른 bat파일을 호출 할 때 그냥 aaa.bat 처럼 입력해주면 된다. 하지만 call aaa.bat 이란 명령도 있다. aaa.bat은 include된 것 처럼 aaa.bat을 실행하고 그 다음 terminate될 수가 있다. 하지만 call aaa.bat을 하면 그냥 메인 배치 파일에서 aaa.bat을 호출만 한 것이므로 실행 결과는 같지만 terminate되거나 하지 않는다. 물론 둘 다 include는 아니기 떄문에 변수를 공유하거나 하지는 않는다. 가급적 호출한 batch파일의 상황에 좌우되지 않으려면 call을 써주는 것이 영향도가 적어 좋은 것 같다. Do not login your server any more! giip :: Free server management tool! https://giipasp.azurewebsites.net/