2월, 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) 세부 설명에 조금 차이가 있어 보이지만 전체적인 틀은 매우 비슷해 보인다.  몇 가지 포인트가 되는 단어를 추출해 이를 연결해보자면 아래와 같은 의미를 산출 할 수 있다. 독립적이지만 연관되어 있

[ 생각 ] 왜 스타벅스는 세계적으로 인기가 많을까?

이미지
나는 언제나 스타벅스에 간다. 왜냐하면 세계어디든 존재하고, 스타벅스는 1인 자리도 충분히 많다. 그리고 노트북 충전을 할 수 있는 곳은 보통 스타벅스다. 그리고 어느나라건 스타벅스의 인테리어는 훌륭하다. 어느 가게는 그 나라의 그 지방의 특색을 더하는 인테리어를 하기도 한다. 오늘도 스타벅스에서 공부를 하던 도중에 왜 스타벅스는 인기가 많을까? 라는 생각이 떠올랐다. 그래서 오늘은 누구나 알고 있는 스타벅스에 대한 이야기를 하고자 한다. 오늘의 중심 이야기는 왜 스타벅스가 성공했으며, 특히 나를 포함한 사람들이 왜 그렇게 스타벅스를 좋아하는지에 대해 이야기를 해보려 한다. 먼저 스타벅스가 성공한 이유에 대해서 이야기 해보자. 스타벅스는 모두가 알듯이 커피 전문점이다. 그럼 스타벅스가 커피의 맛이 뛰어나기 때문에 성공했을까? 아니라면 스타벅스의 어떤점이 사람들의 마음을 사로잡았을까? 를 생각해보자. 스타벅스가 커피의 맛이 뛰어나서 그랬을까? 그건 아니다. 스타벅스의 직원은 보통 전문 바리스타가 하지 않는다. 스타벅스의 직원은 대부분 아르바이트 생이며, 커피는 전용 기계에서 내린다. 그렇다고 커피콩이 뭔가 특별함이 있을까? 그렇지 않다. 판매용으로 나오는 커피콩은 단지 스타벅스의 상표가 붙은 어디서든 살 수 있는 커피콩이며 특별함은 없다. 그렇다고 매장에서 쓰는 것도 특별한 커피콩이라고 볼 수는 없다. 그리고 나는 어느 카페를 가던 카페라떼 계열의 에스프레소에 우유가 들어간 커피를 좋아한다. 거기에 스콘까지 있다면 간단한 식사에도 훌륭하다. 내 입맛에 가장 맞았던 커피전문점은 한국의 커피빈이라는 카페의 카페라떼다. 물론 전문 바리스타가 내리는 카페라떼도 훌륭하지만 내 입맛에는 커피빈의 카페라떼가 가장 맛있었다. 내가 지금까지 마셔봤던 카페라떼 중에서 가장 훌륭했다. 따라서 나에게도 스타벅스의 커피는 나의 입맛을 사로 잡진 못했다.

[ 생각 ]텍스트(책)로 받아들이는 지식과 이미지(유튜브)로 받아들이는 지식에 대해

이미지
시작하기전에 나는 일반적으로 부르는 영상매체라는 것을 이미지 매체라 부른다. 이유는 간단하다. 영상 매체도 결국은 이미지를 빠르게 45장, 60장, 90장 겹쳐서 만든 것이고, 이를 FPS(Frame Per Second)라는 것과 거기에 음성 데이터로 구성되어 있기 때문이다.  따라서 영상도 또한 이미지라는 큰 틀 안에 있는 것에 불과하다 고 나는 생각하고 있다. 그래서 내가 여기서 말하는 이미지라는 것은 그림과 같은 이미지와 영상 이 두 가지를 포함한 개념이다. 그럼 본론으로 들어가보자. 나는 모든 지식을 책으로 부터 배우던 세대 그리고 현재, 지식을 유튜브와 같은 이미지로 배우던 세대 그 사이 어딘가에 있는 세대다. 그래서 나는 어린시절 책이라는 텍스트가 가득한 매체를 통해 지식을 습득했고, 내가 대학생 시절에는 책이라는 텍스트와 인터넷(전자책 포함)의 텍스트를, 그리고 지금에 와서는 책이라는 텍스트와 인터넷(전자책 포함)의 텍스트 그리고 유튜브라는 이미지 매체를 이용해 지식을 습득하고 있다. 갑자기 그런 생각이 떠올랐다. 지금 유튜브라는 매체에 익숙한 세대들은 이미지로서 지식을 받아들이는 경우가 많을탠데, 단순이 텍스트로 지식을 습득하는 것이 비효율적일까? 정말로 비효율적이라면, 어느 부분이 비효율적이며, 혹시 텍스트로 지식을 받아들인다면 유튜브로 받아드리는 것보다 어떤 면에서는 좋은점이 있지 않을까? 만약 압도적으로 유튜브로 받아들이는 지식이 더 효율적이라면 텍스트로 지식을 습득하는 방법은 버려야 할까? 라는 생각을 최근에 했었다. 그리고 이전에 종이책과 전자책에 대한 고찰을 해보았고, 오늘은 최종적으로 텍스트로 받아드리는 지식과 이미지로 받아들이는 지식에 대해 이야기해보려 한다. 위에서 이야기 했듯이, 나는 이 두 가지 매체에 매우 익숙한 세대이다. 물론 같은 세대라고 해도 조금씩 의견은 다를 수도 있다고 생각 한다. 위에서 언급

[ 생각 ] 각 나라 사람들은 어떻게 할까?(이전에 이야기 했던 각 나라의 정의에 기반해)

이미지
나는 보통 공부할 때, 카페에서 공부한다. 맛있는 커피를 마실 수 있으며, 여름에는 시원하고 겨울에는 따뜻하다. 결정적으로 나에게 집은 쉬는 공간이지 무언가를 하는 공간은 아니기 때문이다. 그러기 때문에 나는 어느 나라건 카페에서 공부를 한다. 어느날, 나는 항상 가던 스타벅스에 갔다. 그 날은 공휴일이여서, 사람들로 가득해 어떤 자리도 가득 차 있었다. 어떻게 할까를 생각하려는 찰나에 가게 점원이 나와서 기다리실 꺼냐고 물어봤다. 스타벅스는 보통 1인석도 많기 때문에 기다린다고 했다. 그리고 15분즈음 기다렸을까? 빈자리가 있다며, 안내를 받았다. 하지만, 그 자리는 1인석이 아닌 2인석이였다. 그것도 좋은 소파가 있는 2인석이였다. 나는 보통 2인석은 잘 앉지 않는다. 내가 조금 불편하더라도, 2인석은 2명이 앉아야 그 자리에 더욱 가치가 있다고 생각하기 때문이다. 하지만, 선택의 여지가 없었다. 그렇게 나는 소파가 있는 2인석에 앉았다. 뭔가 내키지는 않았지만, 훌륭한 소파였다. 그렇게 항상 먹던 초콜렛 스콘과 커피를 주문하고 앉아서 공부를 시작했다. 훌륭한 소파였기 때문에 평소보다 좀 더 집중이 되었던것 같다. 그리고 내 옆자리에는 누군가(한명) 앉아 있었다. 어느 순간 슬쩍 보니 사람은 없고, 자리에는 케이크를 다 먹었는지, 케이크를 감싸는 종이 포크, 그리고 남아 있는지 모를 종이로된 커피 컵이 있다. 그리고 결정적으로 짐을 놓는 거치대에 가방같은 짐이 다 사라져있었다. 단순히 이 상황에서는 여기에 있던 사람이 잠시 화장실을 간건지, 잠깐 용무가 있는지 모르는 그런 자리다. (대충 이런 느낌의 소파였다) 그리고 그 자리는 최대 5명이 앉을 수 있는 자리며, 앞에 사람이 있는지 없는지를 몰라 앉을까 말까 고민하는 사람들 (유모차를 끌고 있는 것을 보니 가족이였을 것이다)이 있었다. 이런 상황을 보고 이런 생각이 들었다. 각

[ 생각 ] 종이책과 전자책에 대해서

이미지
요즘 개발자로서의 공부보다 책을 읽기 때문일까 계속 다양한 생각이 떠오르는 것 같다. 나는 모든 지식을 책으로 부터 배우던 세대 그리고 현재, 지식을 유튜브와 같은 이미지로 배우던 세대 그 사이 어딘가에 있는 세대다. 그래서 나는 어린시절 책이라는 텍스트가 가득한 매체를 통해 지식을 습득했고, 내가 대학생 시절에는 책이라는 텍스트와 인터넷(전자책 포함)의 텍스트를, 그리고 지금에 와서는 책이라는 텍스트와 인터넷(전자책 포함)의 텍스트 그리고 유튜브라는 이미지 매체를 이용해 지식을 습득하고 있다. 갑자기 그런 생각이 떠올랐다. 지금 유튜브라는 매체에 익숙한 세대들은 이미지로서 지식을 받아들이는 경우가 많다는 것은 이제 누구도 의문을 품지 않는 사실이다. 왜 그럴까? 단순히 텍스트로 지식을 습득하는 것이 비효율적이기 때문일까? 정말로 단순히 비효율적이라면, 어느 부분이 비효율적이며, 혹시 텍스트로 지식을 받아들인다면 유튜브라는 이미지 매체 받아드리는 것보다 어떤 면에서는 좋은 점이 있지 않을까? 만약 압도적으로 유튜브로 받아들이는 지식이 더 효율적이라면 텍스트로 지식을 습득하는 방법은 버려야 할까? 라는 생각이다. 사실 전자책이 지금의 종이책들을 모두 대신할 것이라는 예측은 과거 부터 있었다. 그리고 그 시점이 올즈음에 그리고 조금 지났을 시절 모두 의아해했다. 전자책이 종이책을 대체하긴 했다. 하지만 전부는 아니고 일부였다. 이것은 어떤걸 암시하고 있을까? 결국 대다수의 사람들은 종이책만의 무언가가 있다고 생각하기 때문에 전부 대체되지 않은 것이다. 그리고 이 것은 시장에 결과로서 드러났다. 그래서 그 종이책만의 무언가가 어떤 것인지에 대해 텍스트와 이미지 매체 둘다 익숙한 세대에 있는 내가 감히 분석을 해보려고 한다. 사실 분석을 한다는 사실이 조금 부끄럽다. 나 혼자 그렇게 떠들어대며 혼자 마침표를 찍어버릴정도의 대단한 사람은 아니다. 그럼에도 불구

[ 생각 ] 그림을 그리는 것과 프로그래밍은 같다.

이미지
요즘 유튜브를 자주보는데, 우연히 밥로스의 영상이 편집된 영상을 봤다. 한국에서 밥로스는 그림을 그리는 것으로 유명하기 보다는 참 쉽죠?(That easy)라는 인터넷 밈으로 유명하다. 일반 사람이 보기에는 굉장히 어려워보이는 그림을 그려놓고 참 쉽죠?라고 말하는 것이 이 밈의 포인트적인 부분이다. 실제 밥로스는 여러분이 생각한것 만큼 그림은 어렵지 않다라는 것을 알려주기 위해 그런 말을 한 것 같지만 말이다. 어쨋든 직접 말을 번역해보면서, 느낀것이 있다. 밥로스의 말을 곰곰히 생각해보고 그의 사고를 나름 분석해보면서 "그림을 그리는 것은 프로그래밍을 하는 것과 같다"라는 재미있는 결론을 내게됐다. 밥로스의 영상 중 그가 이런 말을 한 장면이 있다. 그 대사의 텍스트는 아래와 같다. 「I get so mant cards and letters from people all over the country saying 저는 세계의 많은 사람들로 부터 이런 카드와 편지를 많이 받습니다. "Bob! what should I do if I'm in the middle of the painting, and decided I don't like it or [1]god forbid [2]it goes sour? " "밥! 만약 내가 그림을 그리고 있는 중에 마음에 들지 않거나 망치면 어떻게 해야하죠?" Well, [3]I don't like to start off with something you haven't already done 글쎄요, 나는 여러분들이 아직 시작도 하지 않은 것에 대해 언급하는 것을 좋아하지 않아요.  so,let me show you what you can do at home if you're not happy with the painting,and  if it's not going j

[ 생각 ] 휴식에 대해서

이미지
예전에 문득 길을 가다 이런 생각이 떠올랐던 적이 있다. 왜 나는 분명 토,일에 휴식을 취했음에도 불구하고 왜 월요일만 되면 피곤한 것일까? 라는 생각이다. 하지만 그 당시에는 내가 취하는 휴식 방법이 잘못됐으리라 생각도 하지 못했다. 그리고 최근에 들어서 어떤 경험을 하고 나서 진정한 휴식이 어떤 것 인지 깨달았다. 일반적으로 사람들이 휴식 시간에 무엇을 할까 라는 생각을 자주한다. 그리고 휴식이라는 이름으로 어떤 영화를 보거나 게임을 하거나 등등의 문화 활동을 하거나 친구, 연인, 가족과 함께 놀러간다. 이것이 일반적으로 받아드려지는 휴식이라는 개념이다. 하지만 이런 휴식을 충분히 취했음에도 불구하고, 다음날 월요일에는 무척이나 피곤하다. 왜 그럴까? 최근에 들어서 그 원인을 잠을 충분히 취하지 못하거나, 잠의 질이 떨어지기 때문이라고 말한다. 물론 나도 그 의견에 동의한다. 하지만, 그건 요인 중 하나 이지 결정적인 요인이 아니라고 생각한다. 내가 생각하는 결정적인 요인은 "휴식 방법"에 있다고 생각한다. 물론 이 휴식 방법은 사람마다 다를 수 있다. 내 예로 들어보면, 나의 휴식 방법은 아무것도 안 하는 것이다. 정말 많이 움직이지 않는다. 내가 움직일 때는 화장실 갈 때, 밥을 먹을때 일뿐 아무 생각도 못하게 편안히 볼 수 있는 것들을 본다. 그 때는 정말 아무것도 안한다. 단지 볼 뿐이다. 책에 대해 생각하지 않고, 사람에 대해 생각하지 않고, 나의 일에 대해 생각하지 않고, 내일에 대해 생각하지 않는다. 미래에 대해 생각하지 않고, 지금에 관해 생각하지 않는다. 모든 사고를 차단하고, 차단 하기 위해 , 단지 눈앞에 있는 작은 화면에 펼쳐지는 미디어에만 집중한다. 그렇게 하루 종일 보내고, 적당히 밥을 먹고(건강에 대해서도 생각하지 않는다) 잔 다음날 월요일에 일어나 일을 시작하면 최상의 컨디션으로 일 할

[ 생각 ]현재 전 세계 교육 시스템이 가지는 한계

이미지
전 세계 교육의 한계는 뭘까? 교육의 대한 문제는 한국 뿐만 아니라 전 세계에 해당하는 문제다. 사실 나도 이런 교육 시스템 속에서 살아왔다. 나의 부모님은 나와 형에게 반드시 너희는 대학을 졸업해야하며 대학만 졸업하면 괜찮아 질 것이다라며, 대학에 입학 하기 위한 "시험 공부"를 해야 한다고 항상 말했다. 그리고 난 그것이 "공부"인 줄 알았다. 어쨋든 잡소리는 여기까지 하고 본론으로 넘어가보자. 현재 교육은 시험 문제를 통해 사람을 평가 한다. 이런 시험 문제의 점수에 따라 학생들은 등급이 매겨진다. A등급, B등급, C등급, D등급 , E등급, F등급으로 말이다. 심지어 자기가 나온 대학교에 따라 사람들에 의해 등급이 매겨지기도 한다. 과거의 이런 점수들로 의해 들어갈 수 있는 상위권, 중위권, 하위권 대학 이렇게 말이다. 나는 이런 교육 방식에 대해 부정하는 것이 아니다. 다수의 사람에게 많은 지식을 머리에 넣기에는 아주 좋은 방식이라고 생각 한다. 그리고 세계의 수 많은 사람들이 이런 교육 시스템에서 훌륭하게 자랐다. 그리고 여기에 적응하지 못해 도중에 실패자들도 생겨났다. 그 실패자들은 빌 게이츠 스티브 잡스 마크 주커버그  이런 사람들이다. 아이러니 하게도 이런 교육 시스템을 훌륭히 완수하지 못한 패배자들이 세계의 패러다임을 바꾸고 있다. 왜 그럴까? 왜 많은 사람들이 젊을 시절 훌륭하게 자랐다고 훌륭하다고 판단의 근거가 되는 훌륭한 학점, 훌륭한 학위, 훌륭한 대학을 나온 사람들은 왜 세계의 패러다임을 바꿀 수 없을까? 나는 그 이유를 대학에서도 학점으로, 대학으로, 학위로 사람의 훌륭한점을 판단하는 것, 그리고 이런 기반으로 사회에 훌륭한 사람이 될 것이라는 인식 결정적으로 시험 문제로 이런 것을 단순히 5지선다의 객관식 문제로 대부분 판단하거나, 단순히 정답 맞추기에 초점이 맞춰져

[ Django, Python ] Python에서 Kawrgs와 Args라는 인수(Argument) 또는 매개변수(parameter)에 대해

이미지
・ Kawrgs 와 Args 라는 인수에 대해 : Args 와 Kawrgs 란 ? Python 이라는 언어를 다루다보면 kawrgs 와 args 라는 인수 (argument) 나 매개 변수 (parameter) 를 자주 볼 수 있다 . 나는 보통 라이브러리의 매개 변수 로서 많이 사용하는 것을 많이 봤다 . 이번 Django 를 다룰때도 역시 이 kawrgs 와 args 라는 인수 또는 매개변수가 자주보였다 . 그래서 이번에는 이 두 가지 인수 (argument) 혹은 매개 변수 (parameter) 의 의미에 대해 확실히 알고 넘어가 보기로 하자 . 우선 두 가지에 대해 알아보기 위해 , 먼저 알아야 하는 개념이 있다 . 키워드 인수 (Keyword Argument) 라는 개념 이다 . ・ Kawrgs 와 Args 라는 인수에 대해 : 키워드 인수 (Keyword Argument) 일반적으로 함수를 호출할 때 , 변수 혹은 함수의 정의되어있는 매개 변수 data type 에 맞는 data 를 인수 로 넣어주었다 . 만약 integer 형 의 값과 String 형 값를 받아 두 개를 이어서 리턴 해주는 sum_int_string 이라는 함수 가 있다고 가정해보자 . 그렇다면 아래와 같은 Python 코드가 될 것이다 . 그리고 위의 함수를 호출하는 코드는 아래와 같다 . 그리고 컴파일 해보면 아래의 사진과 같이 1Hello 라는 텍스트가 콘솔에 표시된다 . 하지만 아래와 같이 두 개의 인수를 바꿔서 호출하면 당연히 에러가 날 것이다 . 실제 아래와 같은 컴파일 에러 가 난다 . 하지만 , Python 에서는 키워드 인수 (Keyword Argument) 라는 것을 지원 해 준다 . 키워드 인수 (Keyword Argument) 란 정의한 함수의 매개변수의 이름으로 매개변수 이름에 인수를