[ Architecture, Technology ,Web ] SSO(Single Sign On) 그리고 SAML에 대해

이미지
이번 프로젝트 내부에서 어쩌다보니  유저 인증 관련 업무를 담당하게 되었고, 해야하는 업무는 내부에 사용했던 적이 없던  새로운 개발 플랫폼에서  SSO의 프로토콜 중  SAML을 이용해 앱의 인증을 구현해야만 했다. SSO를 생각해본적 조차 없는 상황에 이를 새로운 개발 플랫폼에 도입해야 했기 때문에 많은 시행착오를 겪었으나 구현에 성공하였으며 덕분에 SSO에 대한 전반적인 지식을 쌓을 수 있었다. 이번에는 그러한 과정에서 나온 지식들과 경험을  공유하고자 한다. SSO에 대한 정의 먼저 사전적 정의 부터 살펴보자. 다만, 기술적인 용어다보니 자주 사용하는 옥스포드 사전에 정의를 찾을 수 없기 때문에  검색으로 찾을 수 있는 정의를 몇 가지 살펴보고 교차 검증을 해보자. 첫 번째 정의를 살펴보자. Single sign-on (SSO) is an identification method that enables users to log in to multiple applications and websites with one set of credentials.  SSO는 웹사이트에서 한 번의 인증(one set of credentials)으로 복수의 어플리케이션에 로그인 할 수 있는 인증(identification) 방법(method) 이다. 두 번째는 위키피디아의 정의이다. Single sign-on (SSO) is an authentication scheme that allows a user to log in with a single ID to any of several related, yet independent, software systems. SSO는 독립적이지만 연관되어있는 몇몇 소프트웨어에 대해 하나의 ID로 로그인을 할 수 있도록 하는 인증 구조(scheme) 세부 설명에 조금 차이가 있어 보이지만 전체적인 틀은 매우 비슷해 보인다.  몇 가지 포인트가 되는 단어를 추출해 이를 연결해보자면 아래와 같은 의미를 산출 할 수 있다. 독립적이지만 연관되어 있

[ Essay - Technology, Essay - Society ] ChatGPT의 등장은 사회의 큰 변화를 줄 수 있는가


어느덧 한 해가 끝나가는 듯 하다.

이 글을 쓰고 있는 시점에 
모두가 크리스마스를 맞이 하기 위해 꽤나 분주해보인다.

개인적으로 올해는 꽤나 의미있는 해가 되었다. 

일적인 측면에도 사적인 측면에도 
그리고 개인적인 성장 측면에도 꽤나 비약적인 성장을 이루었다.

그 덕분에 여력이 생겨 블로그에 작성했던 글들도 
작년에 비해 꽤나 다듬어졌고, 
다양한 관점의 글도 작성했다.

물론 나는 아직 부족하지만 말이다.

이제 이번 주제에 대해 본격적으로 이야기를 나누어보자.

서론


Chat GPT의 등장은 사회의 큰 변화를 줄 수 있을까?

약 7년전 구글 알파고와 이세돌의 
세기적인 바둑 서커스를 보고 
어떤 사람은 영화에서 보던 
인공지능이 인류를 위협하게 될 것이라며
미디어에서 상상의 날개를 펼치는 사람들이 
꽤나 있었던 것으로 기억한다.

과거 나의 글을 보면 알듯이 
나는 예전에 머신 러닝에 흥미가 있어 
이에 대한 기초 지식을 탐구한 적이 있다.

물론 나는 그 때나 지금이나 
나의 의견은 여전히 동일하다.

다만, 지금 까지의 약 인공지능의 놀랄정도의 성능과
비교적 최근 openAi 내부의 정치적인 싸움까지의 
스토리를 생각해보자면 

흔히 이야기하는 강 인공지능은 아니지만
약 인공지능으로서 기능은 
인간을 이미 뛰어 넘었으며 
특이점에 다가가고 있거나 혹은 
이미 특이점이 왔다고 보는 편이 좋을 것 이다.

수 많은 솔루션들이 이미 
산업 전반적으로 들어오기 시작했으며 
초읽기 상태에 접어든 것으로 보인다.

그리고 ChatGPT는 7년전 부터 주목받고 있는 
약 인공지능의 결정체이다.

왜냐하면, 
단순한 바둑을 두는 기계에서 
ChatGPT는 하나의 솔루션으로서 
서비스되어 대중화 되었으며

일부 업계에서는 이미 효과가 입증되었고,
그렇지 않은 업계는 비용 절감을 위해 
도입을 시도하고 있기 때문이다.

나 또한 이미 
이러한 서비스를 사용하고
유용성 또한 확실히 느끼고 있기 때문에 
사회 전반적인 변화는 확실히 있을 것으로 보인다.

물론 최근 뉴스에서 Open API 팀의 정치적인 문제로 
꽤나 떠들석 했으며 
지금 이야기하는 AI가 매우 위험하다고는 하고 있지만 말이다.

그렇다면 예상 가능한 변화는 무엇이고 어디까지 인가?


현재의 기점으로 어느 정도 예측을 해볼 수는 있을 것이다.

물론 지금의 상황도 
모든 사람의 예상을 뛰어넘었지만 말이다.

하지만, 비교적 최근의 역사를 보면 예측해볼 수 있듯이
가치의 변화로 산업의 패러다임이 변한 경우 

결과적으로 이에 해당하는 산업군의 생산성은 
비약적인 발전을 이룰 수 있었다.

예컨데, 과거 회계 업무는 
모든 것이 종이로 그리고 
사람의 손으로 모든 계산이 이루어 졌다.

이때 많이 이용되던 도구가 주판이며,
과거에는 이 주판을 배우기 위해 
심지어 따로 교육을 받기도 했으니 말할 것도 없을 것이다.

하지만, 컴퓨터의 발전으로 종이는 
디지털로 대체되었으며,
단순 계산 부터 시작해 복잡한 계산까지 
모두 컴퓨터에 의해 계산과 검증이 이루어진다.

이제 회계에 정확성을 높이기 위한
수 많은 인원이 필요 없어지게 된 것이다.

그리고 지금에 와서 수 많은 
소프트 웨어가 업무를 단순화 시켰고,
단순화 작업을 하는 직업은 그 만큼 사라졌다.

하지만, 
이전에는 단순 작업에 많은 
인력과 시간을 투입해야 했던 작업이 사라짐으로써

역으로 디자인과 기획 등과 같이 중요하지만 
개발과 품질과 같이 
우선도가 조금 떨어지는 업무에 
시간을 사용할 수 있게 되었기 때문에 
전체적인 품질 향상이 이루어졌다.

이에 따라 여유 분의 시간을 사용해야 하는 
새로운 직업이 나타났으며

결과적으로 산업은 
새로운 고부가가치 산업으로 발달 할 수 있게 되었다.

현재 IT 업계에서 이야기하는 
UI/UX를 담당하는 직종은 
이런 영향으로 나타난 하나의 결과물이라고 
나는 생각하고 있다.

기능 구현과 품질을 보증하는데에도 여유가 없는데
사용자 경험 따위를 검토할 시간이 있겠는가?

그리고 시간이 지난 후
이러한 과정을 산업 혁명이라 
학자들에 의해 명명되어진 것이다.

이러한 과거로 부터 알 수 있는 것은
현재 (약)인공지능은 
현재의 단순 반복되는 일이나 업무들을 
대신 할 것이고, 
이에 관련된 직업이나 서비스는 확실히 '대체'될 것 이다.

또한 대체된 만큼의 여유 분의 시간을 활용하기 위해
새로운 직업이 나타날 것이고,
그렇지 않더라도 다른 중요도가 높은 작업에 
시간을 할애할 수 있기 때문에
전체적으로 생산성은 향상될 것 이다.

그렇기 때문에 나는 
어떤 사람들이 말하는 것 처럼
인공지능에 의해 사회가 흔들리는 상황까지는 
가지 않을 것이라 나는 판단하고 있다.

물론 사회가 흔들려서 얻는 디메리트 보다
메리트가 큰 경우 이야기가 달라지겠지만 말이다.

이는 인간의 힘으로 막을 수 없는 쓰나미이다.

이 경우 바다위에 널브러져 있는 
판자에 의지해 버틸 수 있을 뿐
그러한 쓰나미 위에서는 
튼튼한 배도 저 높은 빌딩도 무용지물일 뿐이다.

유용성은 확실하다. 하지만,


다만, Chat GPT의 유용성을 떠나서 
우리는 아직 사회적 합의가 이루어져 있지 않다.

적어도 나의 인식으로는 그렇다.

즉, 다시 말해서 사회는 
과거 패러다임의 변화보다 몇 배는 커보이는 
이 거대한 물결을 받아낼 준비가 전혀 되어있지 않다는 점이다.

과거 패러다임의 변화는 패러다임을 주도하는 쪽이 
어느 한쪽을 대체 해가면서 교환이 이루어졌다면

지금 AI 이슈는 
인간 사회 전반적으로 영향을 줄 수 있기 때문이다.

첫째, 과연 신뢰할 수 있는가? 또는 어디까지 신뢰해야하는가?

뉴럴 네트워크로 발달한 현재의 AI는 
수 많은 데이터를 훈련시켜서 
어떠한 문제에 대해 대답을 산출해 준다.

그리고 이 대답 또한 
훈련시킨 데이터에 영향을 받아
확률적으로 이 대답이 올바르다고 출력해준다.

그렇기 때문에 전제조건은 당연하게도
훈련 시킨 데이터가 올바르다고 생각되는 데이터야만 한다.

그렇지 않으면 올바르지 않은데에도 불구하고
AI는 자신의 답변이 올바르다고 자랑스럽게 이야기할 것 이다.

따라서 해당 머신에 훈련된 데이터가 
얼마나 신뢰할 수 있는 지에 따라 
어느 정도 신뢰할 수 있는지가 결정 될 것이다.

둘째, 법과 책임 소재에 대해 

이는 흔히 나오는 이야기인데
자율주행머신에 관한 이야기 이다.

만약 직진을 하면, 
3중 추돌 이상의 사고가 날 수 있으며 
왼쪽으로 꺾으면 한 사람을 다치게 하거나
심하면 사망을 하는 상황에 놓여 있다고 가정해보자.

이 경우 머신은 
이 상황에서 훈련된 데이터에 의해 
확률적으로 조금 더 나은 상황을 선택할 것 이다.

문제는 조금 더 나은 상황이 
무엇 인가에 따라 달려 있다는 점이다.

만약 피해 규모가 한명을 치어버리는 것이 
3중 추돌에 의한 피해 보다 작다면
머신은 조금도 망설이지 않고 
왼쪽으로 꺾어 버릴 것이다.

이 경우 책임 소재는 누구에게 있는가?

모든 것을 AI에 맡겨버린 탑승자의 책임인가?
아니면 이 머신을 만든 회사의 문제인가?

AI를 재판 위에 서게 할 수는 없으니 말이다.

사람의 경우
상황에 따라 다르겠지만
이를 선택한 사람에게 
책임 소재가 있다는 것은 비교적 명쾌하다.

하지만, 현재 AI 머신의 경우 상황이 비교적 복잡하다.

셋째, 여러가지 사회 문제에 대해 

윤리적인 문제 등 
여러가지 사회 문제가 나타날 수 있으나

가장 큰 문제는 대체됨으로써 
나타나는 일자리 문제 일 것이다.

규모가 적다면 세금으로
이를 어느정도 커버 할 수 있겠지만
어떤 한 업계가 혹은 다수가 아닌 
사회 전체적인 직업에 영향을 준다면 
세금으로 커버 할 수 없게 되며 

문제는 ChatGPT의 경우 
대체할 수 있는 범위가 매우 넓다는 것
그리고 현재로서는 예측 불가하기 때문에
한계가 보이지 않는다는 점이다.

넷째, 결국 판단은 인간이 해야된다는 점

위에서 설명했듯이 
현재 뉴럴 네트워크 기반의 AI는 
자신이 가지고 있는 데이터 셋에 의해
확률적으로 가장 '근접'한 것을 출력해 줄 뿐이다.

따라서 이를 올바른지 그렇지 않은지는 
인간이 판단해야 할 문제이다.

이러한 판단 조차 기계에 맡긴다면 
사회적으로 많은 비용을 지불해야만 할 것이다.

결론


ChatGPT는 충분히 사회의 큰 변화를 줄 수 있다.

왜냐하면, 유용성 적인 측면에서 
이미 층분히 증명되었기 때문이다.

이는 과정을 조금 보태서 미래에 
산업 혁명이라는 타이틀을 얻을 수 있을 정도라고
나는 현 시점에서 판단하고 있다.

물론 여기까지의 결과가 약인공지능의 한계일지도 
혹은 더 나아갈 수 있을 수도 있다.

다만, 나는 머신 러닝에 기초만 알고 있기 때문에
정말로 현재 어디까지 도달했는 가에 대한 점은 확실치 않다.

만약 내가 인식하고 있는 부분 보다 
무언가 더 있으며, 
내가 상상도 할 수 없는 일을 AI가 해낼 수 있다면
생각보다 어두운 미래가 앞에 있을 지도 모르겠다.

하지만, 그럼에도 불구하고 
밀려오는 파도를 인간이 막을 수 는 없기 때문에

나름대로 대비하는 것이 좋을 지도 모른다.

물론 필요 이상으로 호들갑을 떠는 사람이 있다면
잘 살펴보길 바란다.

그들은 필요 이상으로 공포감을 조성하면서 
이득을 얻고자 하기 때문이다.

그 이득이 정치적이던,
사회적 위치를 높이거나 공고히 하기 위함이던,
새로운 서비스를 견제해 자신의 비지니스를 지키기 위함이던,
주목을 받기 위함이던 말이다.

현대에는 주목받는 것 자체가 힘이 되고
이 힘은 돈으로 연결되기 때문에 매우 조심할 필요가 있다.

기대할 수 있는 보상이 높으면 높을 수록 
윤리와 도덕은 우선 순위에서 떨어져 나가기 때문이다.

항상 단단히 가드를 올리고 있는 
그러한 인간에 살짝 벗어나 있지 않는다면 말이다.

어쩌면 내가 매우 낙관적으로 
상황을 판단하고 있을지는 모르겠으나

비교적 가까운 과거 컴퓨터가 
인간의 반복 작업을 대체 했을 때

컴퓨터를 사용한 새로운 산업이 나타나고
그를 통해 상상도 못했던 직업들이 생겨난 것 처럼

ChatGPT와 같은 약인공지능 솔루션들 또한
기존 존재하던 반복 작업을 대체할 것이고
이로 인해 다른 다양한 직업들이 생겨날 것임을 믿고 있기 때문이다.

이 블로그의 인기 게시물

[ Web ] 웹 애플리케이션 아키텍처 (Web Application Architecture)

[ Web ] 서버 사이드(Sever Side) ? 클라이언트 사이드(Client Side)? 1 [서론, 클라이언트 사이드(Client Side)]

[ Web ] 웹 애플리케이션 서버 아키텍처의 정의 및 유형 ( Define and Types of Web Application Server Architecture )