6월, 2020의 게시물 표시

[ 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 - Entropy ] 엔트로피 세계관과 양적 완화(Quantitative Easing, QE) : 양적 완화에 대해

이미지
현재 우리들의 주된 경제 정책은  대부분 양적 완화라고 해도 과언이 아니다. 그렇다면 엔트로피 세계관과 양적 완화에 대해 이야기해보기 전에  우선 양적 완화에 대해  이야기하는 것 부터 출발 하는것이  옳을 것이라 생각한다.  그렇다면 양적 완화란 무엇일까? 양적 완화가 무엇이길래  선진국들이 그렇게 하고 싶어 하는 것일까? 양적 완화는 Quantitative Easing 으로  줄여서 보통 QE라고 불리고 있는  케인즈 경제학(거시 경제학의 총 수요) 기반의 재정 정책이다. 케인즈 경제학(거시 경제학의 총 수요)에 따르면, 총 수요(AD) = 소비자 지출(C) + 투자(I) + 정부 지출(G) +  순 수출(NX → X(총 수출액) - M(총 수입)) 의 수학적 모델로 정의로 가능한데, 결국 총 수요(AD)는  이 4가지 요소에 의해 결정된다는 것이다. 따라서 거시 경제학 관점에서 경제가 불안하다는 것은 이 4가지 요소의 어느 요소가  부족하기 때문이라고 볼 수 있는데, 예를 들어 소비자 지출(C)가 부족하다면, 정부 지출(G)를 더욱 늘려 보완한다는 식으로 할 수 있다. 과거의 국가들이  정부 주도의 국가 공공 산업을  진행하는 이유가  이 거시 경제학 모델에서 나온 아이디어다. 이러한 4가지 요소 중에서 정부가 가장 손쉽게 할 수 있는 것이  정부 지출(G)이며, 이러한 정부 지출을 늘림으로써  총 수요(AD)를 증가 시킬 수 있기 때문이다. (사실 알수는 없지만 믿고 있다고 봐야 할지도 모르겠다) 한국의 과거부터 경기부양책에  공공 사업이 계속해서 나오는 이유가 이런 거시 경제학의 기반을 두었기 때문이다. 그렇다면  양적 완화를 진행한다면 , 어떤 효과를 볼 수 있을까에 대해  궁금증이 떠오를 것이다. 소비자 지출(C)일까? 아니면 투자(I)? 정부 지출(G)? 순 수출(NX)? 아니면 이 4가지 요소 전부를 촉진시키는  효과를 볼 수 있을까? 그렇다면 이제 다음으로 넘어가 양적 완화를 통해 얻을 수 있는  효과들에 대해 이야기 해보자. ・첫 번째 효과

[ Essay - Entropy ] 엔트로피에 대해

이미지
유년기때 읽은 해밍웨이의 노인과 바다와 청년기에 읽은 해밍웨이의 노인과 바다 그리고 중년기에 읽은  해밍웨이의 노인과 바다가 다르다고 했던가. 최근에 제레미 리프킨의  엔트로피를 다시 한번 읽었다. 이유는 과거에 제대로 읽지 않았기 때문에 시간이 된다면 최우선으로  다시 읽자라는 생각을 했었기 때문이다.  물론 유년기와 청년기 사이의 시간만큼은 아니지만 말이다. 어쨋든 다시 읽으면서 나는 엔트로피와 현재에 대한  에세이를 쓰고 싶은 욕구가 쓰나미가 밀려오듯이  나에게 다가왔다. 그래서 다른것을 우선 제쳐두고 이것부터  내가 만족할때 까지 쓰려고 한다. BEP 프로젝트를 우선 해야할까 싶기는 하지만 에자일 부분에서 잘 나아가지 않는 바람에 작성이 밀리고 있다. 어쨋든 쓸때없는 이야기는 여기까지 하고 이런 엔트로피 세계관에 기반해 사회 여러 문제들을 생각해보면  조금은 해결책이 나오지 않을까하는 생각에서 시작했다. 다시 말해서 리프킨의 주장에 설득당했다는 이야기이다. 그렇다면 설득당해버린 김에 여기에 올라타서 현실 세계를  조금 들여다보기로 하기로 했다. 이번 에세이는 다른 글들과 다르게  꽤나 긴 글이 될 것이다. 왜냐하면 이런 엔트로피 세계관을 대입해  사회 문제에 대해 이해하려는 시도를  해보고 싶기 때문이다. 그렇다면 먼저 엔트로피가 무엇인지에  대해 알아볼 필요가 있을 것이다. 엔트로피란 무엇인가 엔트로피 법칙에 대해서는  단순한 지식 쑤셔넣기에 익숙한 현대인이라면  열역학의 제 1법칙과 제 2법칙에 대해  한번 쯤은 들어본적이 있을 것이다.  이에 대한 정의는 아래와 같다. "우주에 있는 모든 에너지의 총화는 일정하고(제1법칙) 모든 엔트로피는 끊임없이 증대된다(제2법칙)" 제 1법칙은 흔히 알고 있는 에너지 보존 법칙 예를 들어 자동차가  가솔린에서 에너지를 얻는 방법으로 설명하자면 가솔린에서 얻을 수 있는 총 에너지는 엔진을 움직이는 에너지와 배기 가스 속의 에너지의 합과 같다는 것이다. 다음으로 제 2법칙은 이런 과정에서 사용 불

[ Essay - etc ] 유용성(utilitas) 그리고 의무와 희생에 대해

이미지
키케로의 의무론과 밀의 공리주의에 대한 책을  읽고 이에 대해 고찰을 했을 때, 나는 이런 유용성(utilitas)에 대해 다시금 생각하게 되었다. 왜냐하면 민주주의의 근본 중 하나인  공화정 시대에 살았던 키케로 그리고 밀이 살았던 근대 시절 보다 현대에 와서 이런 유용성에 대한  철학적 생각에 대해 더욱 필요성을 느꼈기 때문이다. 내가 볼때 현대인들은 의무에 대해 너무나도 남발하고 있는 것 처럼 보다. 남성의 의무, 여성의 의무를 시작해 모든 것이 의무 투성이다. 하지만 의무에 대해 고찰하면 고찰할 수록 의무라는 단어는 결코 남발할 만큼 가벼운 단어는 아니다. 의무는 희생하는 것이 아니다. 의무를 어떤 사람에게 지게 했으면 의무를 행한 자에게 만족하지 못하더라도 그에 걸맞는 해택을 주어야 하는 것이다. 하지만, 이런 의무를 남발해  마치 희생과 같은 단어 처럼 인식되어져 있는 것처럼  나에게는 보였다. 따라서 이런 의무들을 분리할 필요가 있다고 생각한다. ・키케로의 의무론에서의  의무와 유용성(utilitas) 키케로의 <<의무론>>을 보면 다음과 같은 구절이 있다. 「구분하는 데 있어서 무엇인가를 빠뜨리는 것이  최대의 결점 인데도 위의 구분에서는 두 가지가 간과되었다. 왜냐하면 어떤 것이 도덕적으로 선하고,  명예로운가  나쁘고,  추한 것인가 하는 문제뿐만아니라, 도덕적으로 선하고,  명예로운 것이 두 가지가 제시되었을 때, 어떤 것이 유익한지에 관해서도  사람들은 보통 고려하고 있기 때문이다. 따라서 저 파나이티우스가  세 가지로 생각했던 것은  마땅히 다섯 가지로 구분되어야 한다고 확신한다. 첫째,  도덕적으로 선하고,  명예로운 것에 대하여는 이중적으로 논의되어야 할 것이고, 돌째,  유익함에 대해서도 마찬가지로 논의되어야 하며, 그리고 마지막으로  이들에 대한 비교가  검토되어야 할 것이다. 」  그리고 피나이티우스가 이야기한 세 가지라는 것은 아래와 같다. 「어떤 행동을 하려고 결정할 때, 고려해야 할 사항은 삼중적이다.

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

이미지
이전 글에서 클라이언트 사이드에 대해서  어느 정도 직감을 잡았으리라 생각 된다. 그 다음 부터는 크게 설명할것이 없을 듯하다. 왜냐하면 클라이언트 사이드와 크게 다를바가 없기 때문이다. 따라서 이번에는 서버 사이드에 대한 이야기보다 서버 사이드와 클라이언트 사이드 이 두개를 놓고 이야기하는 것에 중점을 둘 것이다. 그럼 이제 서버 사이드에 대한 이야기부터 시작해보자. 서버 사이드(Server Side) 클라이언트 사이드와 동일하게  나의 직감을 이야기 하면 서버(제공자) 측에서 수행되는 것들 혹은  애플리케이션(언어 등) 으로 정의 내리고 싶다. 물론 클라이언트 사이드에서 이야기한대로 정의는 사람마다 다를 수 있다. 서버 사이드의 목표는 클라이언트에 전달할  정/동적 웹페이지를 만들어서 보내는 것이다. 이에 사용되는 언어 혹은 도구로서 언급될 수 있는 것들은 Java, PHP, Ruby, Python, Node.js 등을 언급할 수 있다. 서버 사이드는 클라이언트로 보낼  웹 페이지(HTML,  JavaScript 등이 담긴 )를  만들어 보내며, 정말 중요한 작업들(사용자 유효성, DB 관련 등)을 수행 한다. 즉 웹에서 서버와 클라이언트는  정해진 웹 페이지로 서로 커뮤니케이션을 한다고 볼 수 있다. 서버 사이드와 클라이언트 사이드의 상관 관계 그렇다면 1부에서 마지막에서 잠깐 언급했던  메모리의 이야기로 다시 돌아와보자. 나는 1부 마지막 쯤에  그럴 수 밖에 없는 서버 측의 이유 가 있다고 이야기를 했다. 그에 대한 이야기를 하고자 한다. 많은 이유가 언급될 수 있는데 그 중 가장 큰 이유는  서버의 수보다 클라이언트 수가  절대적으로 많을 수 밖에 없기 때문이다. 제한적인 서버 수에 비해 사용자가 압도적으로 많기 때문에 혹은 많을 수 있기 때문에 가급적 서버의 부담을 줄일 수 밖에 없다. 하지만 서버가 수용할 수 있는 한계는 있고, 사용자는 많거나 많을 수 있는 상황에서 사용자 유효성 검사, DB관련 처리 등의 정말 필요한 처리를 제외하고는 클라이

[ 생각 ] 이방인으로서의 고달픔

이미지
저번 이야기에서 이방인에 대해 이야기하면서 이방인으로서의 삶의 장점에 대해 많이 이야기한 것 같다. 반대로 오늘은 단점에 대해 그리고 그런 단점을 해결하기 위한 이야기 해보려 한다. 그때도 이방인으로서의 단점으로  사회라는 큰 틀에서는 어느정도 보호 받을 수 있지만, 공동체 안에서는 보호받을 수 없다고 언급한적 있다. 이런 공동체 안에서 보호 받을 수 없는 것중에  가장 고달픈 것은 '문화적 차이'다. 왜냐하면,  이런 문화적 차이에 따라  언어, 행동, 규칙 등이 상반될수 있기 때문이다. 따라서 이런 모국에서의 '문화'에 익숙한 이방인들이 이런 문화적 차이에서 오는 언어, 행동, 규칙 등에 대해 특히, 이것이 '암묵적'으로 정해진 것을  알아내려고 할 때 가장 난감하다. 왜냐하면, 그런 문화적 차이를 암묵적으로 이해하고 있는 사람들은 그것에 대해 알고 있지만, 이방인들은 이런 '암묵적인 문화'에 대해 모르며, 자국민 조차 이런 '암묵적인 문화'에 대해 따로 언급하지 않기 때문이다. 예를 들면, 어떤 행위는 이방인의 모국에서는 칭찬의 행위이지만, 이방인이 머무는 나라에서는 모욕의 행위일 수 있기 때문이다. 또한 '암묵적인 문화'의 경우  자국민은 이방인에게 무언가의 '시그널'을 보내지만, 대게 이방인은 그런 '시그널' 조차 지나쳐버리며, 알아차린다고 해도  이 '시그널'이 어떤 의미를 가지는지 알 수 없기 때문이다. 따라서 잘못하면 행동하면, 이방인들의 행동이 상대로 하여금 불쾌감을 줄 수 있다. 물론 자국민들 또한 이방인들이  그것을 모르고 한 행위라는 것은 잘 알고 있다. 하지만 그렇다 하더라도, 그것이 극도의 불쾌감을 줄 수 있는 행동이라면 자국민들은 그런 불쾌감을 쉽게 감추기 힘들다. 즉,  그런 이방인들이 모르고 한 행위라는 '이성'보다  극도의 불쾌감이라는 '감성'이 더 커지게 되기 때문에 &#

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

이미지
이쪽 공부를 하고 있거나 개발자로서 일을하다 보면 서버 사이드(Server Side)나  클라이언트 사이드(Client Side)라는 말을 들어본 적이 있을 것이다. 특히 개발자가 아니거나 주니어라면  생각보다 제대로된 직감을 가지기는 힘들 것이다. 그런 느낌을 받는다면 당연한 것이다. 처음부터 모든 것을 아는 사람은 없을 것이고, 세상의 모든 것을 아는 사람 또한 없을 것이다. 사실 웹 프로그래밍에서 서버 사이드와  클라이언트 사이드는 엄청난 큰 의미를 가진다. 어느쪽에 중심을 두느냐에 따라 프로젝트의 방향이 다르기 때문이다. 물론 현재에는 클라이언트 사이드 쪽에  중심을 두기는 하지만  5G를 눈앞에 두고 있고, AI가 발전하고 있는 이 시점에서 그래도 제대로된 직감을 가지고 가야 대비할 수 있지 않겠는가? 평소 같으면 큰 그림을 그리고  작은 그림으로 가는 방식으로 갔었겠지만 좀 더 쉽게 직감에 도달하기 위해 이번에는 조금 다른 방식으로 가보기로 하겠다. 웹 브라우저가 차지하는 메모리 어떤 사람은 평소 이런 의문점을 가지고 있는 사람들이 있을 것이다. 왜 웹 브라우저는 메모리를 많이 차지하지? 라는 생각이다. 내가 이 작업을 하고 있는 시점에  총 6개의 브라우저가 열려있는데 총 메모리는 240.4MB 나 사용하고 있다. 단순히 탐색만 했을 뿐인데 이렇게 많은 메모리를 차지한다는 것은 조금 이상하지 않은가? 웹에 대해 잘 모르는 사람들에게는  당연한 의문이다.  이상할 수 밖에 없을 것 이다. 하지만 Web 개발자에게는 어느 정도  이에 대한 직감을 가지고 있을 것이다. 결론부터 말하면  현재 Web쪽에 무거운 처리는 대부분은 클라이언트 사이드 언어로 작업하기 때문이며, 이에 따라 처리 비용이 높기 때문이다. 이에 대한 이야기는 차례대로 설명하기로 하겠다. 클라이언트 사이드(Client Side)란? 클라이언트 사이드의 정확한 정의는 알 수 없다. 아마 사람들마다 이야기가 조금 다를 것이다. 나는 그 이유에 대해  IT의 기술들은 대부분 필요에 의해 먼저

[ 생각 ] 일본의 히키코모리들이 40~50대가 된 시점에서

이미지
2020년 현재시점, 일본의 히키코모리들이 40~50대에 진입하였다. 일본의 히키코모리라는 단어는 꽤 오래전부터 사용되어져 왔지만, 한국의 한 밈으로써 사용된것은 불과 10년도 안된것 같다. 이 히키코모리들이 많이 있던,  그리고 이런 단어가 일본에서 쓰여진 세대는 단카이 주니어(일본어 : 団塊ジュニア) 즉, 단카이 세대의 자식들의 세대가 1990년대에  많이 알려져있는 일본의 '잃어버린 20년'의  중심에 있던 젊은이였던 시절이다. 바로 단카이 주니어 세대들 중  패배자들이 이 '히키코모리'이다. 단카이 주니어 바로 다음 세대를  '포스트 단카이 주니어'라 칭하는데, 이번 주제와 맞지 않으니  여기까지만 언급하도록 하겠다. 내가 이 단카이 주니어 세대의 패배자들  '히키코모리'를 주목하는 이유는  한국도 지금 젊은 세대들이  정확히는 80년대 후반 부터 90년생들이 이런  취업을 하지 못하는 현상이  비슷하게 나타나고 있기 때문이다. 물론 단카이 주니어 세대의 패배자들인 '히키코모리'들은  '일본의 잃어버린 20년'을 면전에 맞았기 때문에 비교적 일본 쪽이 더 심할 수도 있다. 우선, 이 80년대 후반 부터  90년대생을 XX세대라고 정의가 필요할 듯 싶은데, 이 세대가 유아기(20세 이전)에는 인터넷이 발달했고, 이들이 청년기(20세 이후)에는 스마트폰의 등장으로  인터넷과 기계에 익숙해지고, 사람과 사람간의 관계의 인터넷이 밀접한 관련을 가지게 되는 첫번째 세대가 탄생했으니 여기서 이를 '네트워크 세대'라 칭하겠다. 따라서 이런 네트워크 세대에서  일본의 '히키코모리'들과 같이 사회에서 허용되는 신입으로서의 취업에 실패해 그 나이대에 가져야하는  커뮤니케이션 능력을 가지지 못하며, 이에 따라 사회와 단절되어,  사회인으로서 한 사람분을 못하게 될 때, 정확히는 '자아'가 무너지고, '자존감'이 회복을 못하는 시기가