본문 바로가기

분류 전체보기

(13)
python 보안환경에서 구동하기, SSL (UNSAFE_LEGACY_RENEGOTIATION_DISABLED) 오류를 겪고 계신가요? 이 글은 폐쇄망 보안환경 하에 python 구동시 SSL 오류를 겪는 분들을 위한 글이다. 1탄의 SSL 인증서 오류 https://finai.tistory.com/16 에 이어서 이번에는 UNSAFE_LEGACY_RENEGOTIATION_DISABLED 오류를 만나는 경우이다. 필자의 경우는 폐쇄보안 환경에서 mac os를 쓸때 발견하여 조치하였다. 해당 오류는 Renegotiation에 문제가 있어서 패치된 이후에(TLSv1.2 과 그 이전 버전에 renegotiation이라는 것을 지원하는데 보안이슈가 발견되어 패치되었다) 그 이전 버전이 사용될때 발생하는 문제로 알려져있다. 하지만 이를 강제로 되게 하는 방법이 있다. (따라서 이 옵션을 적용하면 안전하지 못한 사이트에 접속시는 보안 문제를 발생시..
python 보안환경에서 구동하기, 인증서 문제(SSL_CERTIFICATE_VERIFY_FAILED)를 겪고 계신가요? python을 하다보면 인터넷망의 ssl 인증서를 변조해서 운영하는 회사를 만나게 된다. 이런 경우는 naver에 접속을 해도 naver인증서가 아닌 자사의 인증서로 변조되어 운영한다. 내부적으로는 보안담당자가 내부 정책에 의해 암호화된 패킷을 확인하려는 목적으로 이런 환경이 구성된다. 회사 내부의 보안을 위해서 흔히 그렇게 하는 장비가 제공된다. 그런데 이런 환경하에서 pip install을 실행하면 억울하게도 아래와 같은 오류를 만나게 된다. python에게는 해당 변조된 인증서가 신뢰받는 인증서가 아니기 때문에 인증서 검증이 실패하는 것이다. 일반 인터넷 환경에서는 만날 일이 없는 오류이다. ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILE..
AI 조직을 키우는 것은 기술 스타트업의 매출/순익 확보와 같다. AI 경제학 AI/머신러닝 프로젝트의 과거 가장 전형적인 모습은, 처음 도입되고 더 이상 사용되지 않아 폐기되는 모습이다. 그리고 이를 주도하는 AI조직의 성장은 정체된다. 그리고 이 과정을 전체로 살펴보면 기술 스타트업이 살아남는 과정과 비슷하다. 다른 말로하면 돈이 되는, 경제성이 있는 AI 도입을 잘 해내는 조직이 드물다. 많은 조직이 지속 가능하지 않는 길을 밟아 프로젝트가 사라진다. 그렇다. 분야 선택이 잘못되는 경우가 많다. 사실 이 비판은 대개 결과론적이라 좀 서운할 수도 있겠다. 하지만 어쩌면 명확해 보이는 안좋은 경제성에도, 시도된 프로젝트들도 있다. 즉, 일반적인 rule base와 다르게 데이터 관리 및 재학습, 모호함의 오버헤드를 지닌 AI의 특성을 미리 충분히 고려하지 못한 것이다. 예컨대 장..
금융 AI, 어느 분야를 먼저 해야할까요? 내가 추진 분야를 적절히 고를 수 있다면, 이 문제는 너무나 중요한 문제가 아닐 수 없다. 사실은 그 어떤 주제보다도 다른 사람들과 많은 이야기를 나누고 싶은 분야이기도 하고, 컨설팅을 담당하는 분들을 만날 기회가 있으면 늘 질문하는 주제이기도 하다. 사람마다 추진했던 분야와 당시 상황, 관심도가 달라 의견이 많이 다를 수 있는 것도 어쩔 수 없다. 이에 관해 운이 좋아서, 외국의 잔뼈가 굵은 유명 솔루션 컨설턴트 분들과도 이야기를 나눌 기회가 있었다. 국내외 다양한 프로젝트 경험이 있는 분들과도 그렇다. 경험이 얕은 분도 계시고 다양한 분도 계셨다. 그러나 내 결론은 이렇다. 아무도 쉽게 정확한 정답을 말해줄 수 없다. (그래도 뒤에 후보 분야들 몇개와 내 의견-역시 편협하겠지만-을 다룰 예정이다) 조..
AI 하는데 교육은 챙길 수 있냐고요? 사실은 교육이 AI 프로젝트의 절반쯤 됩니다 AI 사업을 진행하려면 교육도 해야 하지 않나요?라고 물을 수 있는데, 필자의 답변은 좀 과장해서, AI 사업의 절반은 교육이라고 생각해야 한다는 것이다. 무슨 이야기일까? 현재 대부분의 기업은 AI 도입의 초기이다. 사실은 AI 기술을 선도하고 있는 회사에서조차 전문가 집단의 일부가 특정 응용에 성공했을 뿐이지 전사적으로 AI가 활용되고 있는 곳은 없다. 글로벌 기업에서도 이 AI 기술을 어떻게 하면 더욱 전파할 수 있을지 고민한 것도 몇 년 되지 않고 지금도 그 일은 진행 중일 뿐이다. 그 누구도 성숙한 상황에 있지 않다. 즉, AI 프로젝트를 추진함에 있어서 모두 초보자이고 바뀌고 있는 기술 덕에 조금만 시간이 지나면 다시 초보자가 된다. 2012년 딥러닝이 CNN을 통해 이미지 인식 분야에서 머신..
AI 외주는 어떻게 하면 좋을까? 대부분의 회사에서 여전히 AI라고 하면 외주를 검토하기가 쉽다. 내부 역량도 아직은 더 키워야하고, 솔루션이 같이 들어온다는 장점도 있고, 대내외의 AI 도입에 대한 관심도 많기 때문이다. 그리고 단언하겐데 이미 많은 회사들이 벌써 외주를 주어서 AI 프로젝트를 진행했었다는 사실이 드러나는게(?) 일반적이다. 고급통계나 머신러닝, 전문가 시스템 등 과거에도 AI프로젝트와 유사한 성격의 프로젝트가 있었을 것이다. 이렇듯 AI 프로젝트 외주는 생각보다 흔하게 진행되어 왔으며 앞으로 진행될 일이다. 그런데 어떻게 접근하면 좋을까? 맨 먼저 가장 중요한 것은 두 가지라고 생각한다. 바로 지속 가능하도록 하는 것과 그 지속 가능함이 비즈니스 가치를 지녀야 한다는 것이다. 이러한 기준 하에 모든 계약이나 프로젝트 ..
맨 처음 돌려보는 AI 모델, 간편한 python xgboost (GBM개선모델) 는 어떠신가요? 머신러닝 모델 이야기를 풀어나가는 것은 어렵다. 왜냐하면 너무나 종류가 많고, 그 이론적인 배경을 모르면 실수하기 쉽고 데이터의 유형에 따라 추천이 거짓말이 되는 경우도 잦다. 이러한 어려움은 학습 시에 적용되는 다양한 random효과와 결합되어 무언가 알 수 없게 되는 상황도 많다고 생각한다. 딥러닝은 최근 수년간 엄청난 성공을 거둔 방법이다. 그러면 딥러닝을 써보면 어떻겠는가? 하지만 딥러닝이 잘 작동하는 분야도 어찌 보면 특정 분야나 상황으로 제약되어 있다. 이미지, 자연어 처리 분야에서 대량의 데이터로 학습한다는 공통점이 있고, 해당 데이터에 따라 벌써 세부적인 모델들이 잘 정의되어 있지 않은가. 이미지 인식의 CNN(Convolutional Neural Network)의 여러 유형들이 그렇다. ..
Python package를 폐쇄망에 설치하기 (pip3) 금융계열에서 python을 사용하면서 초기에 가장 어려웠던 것이 이 python package를 폐쇄망 서버에 설치하는 일이었다. 처음에는 얼마나 당혹스러웠는지 모른다. 대부분 인터넷에 연결된 서버에서 작업을 하는 환경에 익숙하기 때문에 참으로 곤란하다. 그리고 금융계 회사들은 패키지 반입도 쉽지 않은 경로를 통해 들여오다 보니 이 작업이 보통 난감해지는 게 아니다. 대략 tensorflow, pytorch, autokeras, scikit-learn, numpy 등 설치를 하고 나야 AI가 시작될 수 있지 않은가! 하지만 역시 알고 나면 크게 어려운 점은 사라진다. 참고로 필자는 python3.6을 주로 활용한다. 해당 버전을 선호하는 이유는 해외의 주요 공개 코드들이 이 버전 근처를 가장 잘 지원하기..
AI 도입은 초기에는 완전 자동화가 아니라, 다수의 초보 보조자를 두는것과 같다 대한민국에서 최근 수년 안의 AI 인식 전환은 알파고가 이루었고 그 역할을 화려하게 해냈었다. 이제는 모르는 사람이 없는 이벤트가 되어 버렸는데, 당시에 인간 프로기사보다 바둑을 더 잘하는 AI로서 당당하게 등장한 것이다. 알파고는 그 대상이 동양적인 바둑이라는 점과 그 상대가 이세돌 프로기사였다는 점, 바둑과 이세돌 프로기사에 대한 존경심이 많은 우리나라에서 그야말로 나라 전체에 충격을 준 이벤트였다. 그러나 이 알파고의 부작용도 만만치 않는데, 바로 AI에 대한 여러가지 환상이다. 바로 머신러닝이 기술이 기업에 적용되었을 때 곧바로 완전 자동화를 꿈꾸는 달인으로서 간주될 수 있다는 점이다. 하지만 기업에 적용될 수 있는 머신러닝/딥러닝의 한계는 대개 비슷비슷하다고 생각한다. 전략적으로 데이터를 모아 ..
AI인프라 - 하이브리드 클라우드와 Kubernetes 이야기 머신러닝으로 역사를 이루고자 하는 사람은 클라우드에 관심을 가져야 한다고 생각한다. 거창하긴 하지만, 현대의 역사에 남는 머신러닝 모델들은 대략 수억원 이상의 컴퓨팅을 사용하는 것을 심심찮게 목격할 수 있고, GPT-3는 50억 이상을 썼다고 하는데 잘 나가기만 한다면 내 모델도 언제 그렇게 될지 모르지 않는가! 그리고 이것을 IDC내에 On-prem으로 구성하기 위해서는 당연히 수십 수백억, 수천억의 투자비가 든다. 내가 몸담은 회사가 이 비용을 쿨하게 감내할 수 있다면 그것은 너무나 감사한 일이지만, 대부분은 그렇지 않다. 더군다나 프로세서는 GPU, TPU 등등 으로 계속 진화하고 있는 마당이라 언제 구축을 하든 노후화 가능성이 상존한다. 병렬 처리 인프라나 관련 SW도 계속 변화할 것이다. 분석 ..
AI하러 왔는데, AI 빼고 다한다? - 금융 AI 시작하기 "AI 하러 왔는데, 와.. AI 빼고 다하는 것 같아요"라는 말은 의외로 모든 회사에서 AI를 지향하는 담당자에게서 들을 수 있는 이야기이다. 금융 쪽뿐만 아니라 다른 산업 분야도 마찬가지로, 모두들 연구실이나 각 교육기관에서 AI 모델을 주로 배우던 전공자들이 회사에 입사했을 때 당면하는 맨 첫 상황이기 때문이다. 특히나 지금처럼 많은 회사에서 AI 분야를 시작하는 태동기일 때는 더욱 그렇다. 그리고 이는 최근 수년간의 기업 AI강연의 단골 메뉴이기도 하다. AI라는 업무에서 모델링 업무의 비율은 20%도 안된다는 이야기다. 교육받던 시절에는 각종 인식 모델의 장단점이나 정확도 향상, 여러 가지 이론적인 내용이 중요하지만 기업에 들어가 막상 AI 부서에 배치되면 이런 일보다는 숨겨졌던 나머지 일들이 ..
폐쇄망에서의 redhat(RHEL) 혹은 CentOS rpm /yum 패키지 설치 방법 Linux에서 과거 패키지 설치는 소스코드를 받아서 직접 gcc/g++로 컴파일하는 형태로 많이 설치하였다. 그러다가 rpm(redhat package manager)이 등장해서 조금더 편하게 설치하게 된 것이 yum이나 apt같은 것이 등장하면서 더욱더 전체 의존성을 잘 따져주면서 자동으로 인터넷에서 패키지를 다운받아 설치하거나 제거해주는 등 발전되었다. 그런데 이 모든 것이 폐쇄망 혹은 인터넷이 단절된 망 하에 들어가면 무용지물이 되어 버린다. 그리고 이런 상황에서 많은 엔지니어들이 시행착오를 거친다. 여기서는 몇가지 지식으로 이런 상황을 쉽게 돌파할 수 있는 방법을 가이드해본다. 대략 redhat 7.2버전에서 시험되었지만 전체적인 방법은 크게 다르지 않다. 그리고 여기서는 yum을 중심으로 설명한..
서버 인증서 설치의 내부 메카니즘/원리, 폐쇄망 엔지니어를 위한 글 인증서(Certificate)는 공개키 기반의 암호화 통신인 SSL(Secure Socket Layer)을 사용하는 엔지니어들에게 친숙하면서도, 사실은 깊게 들어가면 어려운 존재다. 해당 암호화 방식이 광범위하게 사용됨에 따라 같이 소개된 이 인증서에 대해 전체적으로 모든 것을 이해하여 작업하는 사람 보다는, 주어진 인증서 체계를 간신히 서버에 적용하여 돌아가는 수준으로 관리하는 경우가 흔하기 때문이다. 개별 소프트웨어들은 또 그들대로 이 복잡한 인증체계를 나름의 방식으로 소화하고 있어서 더욱더 그렇다. 자바가 다르고 윈도우가 다른 식이다. 이런 것들이 교차해서 문제가 생기는 상황에 맞닥뜨리면 그래서 이질적인 것들이 서로 더 혼란을 주게 되는 상황도 종종있다. 그러나 여기에 얽힌 전체 관계를 이해하면, ..

반응형