[Info]Tags categorized posts and contents patterns..

[AJAX] Ajax Code E xamples.. [Book] About the book.. [CSS] CSS Code E xamples.. [DB] Sql Code E xamples.. [DEV] All development stor...

레이블이 교육인 게시물을 표시합니다. 모든 게시물 표시
레이블이 교육인 게시물을 표시합니다. 모든 게시물 표시

2017년 2월 10일 금요일

[Book] 나는 공짜로 공부한다..


출처 : Outsider's Dev Story https://blog.outsider.ne.kr/


나는 공짜로 공부한다 - 10점
살만 칸 지음
김희경.김현경 옮김
알에이치코리아(RHK)

교육은.. 어린 시절에 이루어져야 하지만, 어떤 강요도 있어서는 안 된다네. 강요로 얻은 지식은 마음에 남지 않기 때문이지. 어릴 때의 학습은 오락처럼 이루어져야 하네! 그래야 아이의 타고난 소질을 더 잘 발견할 수 있을 것이네. - 플라톤, "국가론"

이 책은 칸 아카데미를 만든 살만 칸(Salman Khan)이 쓴 책으로 현재의 교육에 대한 비판과 함께 교육이 어떻게 되어야 하는가에 대한 자기 생각과 함께 거기에 맞춰서 칸 아카데미가 어떻게 만들어지고 어떤 시도를 하고 있는지에 대한 책이다. 살만 칸은 유튜브에서 사촌 동생한테 수학을 가르쳐주다가 소위 떠서 다니던 회사를 그만두고 현재의 칸 아카데미를 만들었다. 관심 있다면 살만 칸이 TED에서 한 발표도 볼만하고 jQuery를 만든 존 레식도 현재 칸 아카데미를 다니고 있다. 정확한 전후 관계는 자세히 모르지만, 현재 수많은 교육사이트의 시작점이 칸 아카데미가 아니었나 생각하고 있다.
서비스의 성격상 내가 칸 아카데미를 사용하고 있지는 않지만, 칸 아카데미에 대해서 처음 알게 되었을 때부터 관심이 있었기에 살만 칸의 책이 나왔다길래 읽어보았다. 처음 칸 아카데미에 대해 들었을 때 좋은 인상을 받고 있다가 동영상으로 각자 공부하고 교사가 학생들이 어느 부분에서 어려움을 가졌는지를 시스템에서 확인하고 수업시간에는 교사가 이를 지원하거나 그 부분에서 어려움이 없었던 다른 학생이 도와주게 하는 교육에 대한 영상(다큐였나..)을 보았을 때는 너무 멋져서 반해버렸었다. 처음에는 그냥 칸 아카데미에 대한 관심과 칸 아카데미가 만들어낸 교육적 혁신에 대해 더 자세히 알고 싶어서 보았지만, 책을 읽고 난 후에는 "교육은 어떻게 되어야 하는가?"에 대한 더 진지하게 고민하게 되었고 기존에 너무 당연하다고 생각했던 많은 부분에 대해서 다시 생각해 보게 되었다. 개인적으로 자녀가 있으신 분들은 한 번씩 읽어보면 여러모로 도움이 될 거라고 생각한다.

책의 초반부터 과거의 교육 방식은 완전히 수동적인 학습방법이고 세상은 점점 능동적인 정보처리 방식을 요구하기에 교육방식에서 천 년에 한 번꼴인 전환점이 왔다고 믿기 때문임을 밝히고 있다. 이는 과거에는 어쩔 수 없는 부분이 있다고 하더라도 지금은 기술의 발전으로 인해서 더 나은 교육방식으로 바꿀 수 있는 시대가 왔다는 의미이다.


우리는 그들이 실패하도록 설정해놓고 있다.

이 책에서 여러 가지를 얘기하고 있기는 하지만 가장 큰 것은 사람들은 서로 다른 속도로 배운다라는 부분인 것 같다. 지금의 교육은 모든 학생을 똑같은 속도로 가르치고 있기 때문에 배우는 속도가 느린 학생들(전체적으로 느리거나 특정 부분에서 느리거나)이나 개인적인 이유로 일부 과정에서 등한시한 학생들은 이전 부분을 이해 못했기 때문에 뒤로 갈수록 점점 뒤처지게 된다. 여기에 현재 교육시스템을 이들에게 등급을 매겨서 학생들이 좌절감을 느끼게 하고 배움의 기쁨을 잊어버리게 한다는 것이다. 그래서 살만 칸은 완전학습을 주장한다. 현재의 교육은 70~80점 정도로 진급을 결정하는 데 이는 반대로는 1/4은 모르고 있다는 의미인데 살만 칸은 여기에 반대하고 각자 다른 속도로 배울 수 있게 하지만 하나의 개념을 완전히 이해하고 다음 개념을 이해하도록 한다는 것이다. 여기서 또 하나는 모든 지식은 서로 연결되어 있고 사회에서는 이 연결관계가 중요한데 교육과정에서는 각 부분을 따로 끊어서 관리하므로 학생들도 서로 간의 연관관계를 맺는 기능을 갖지 못한다는 것이다. 그리고 학생들은 원래 수동적이지 않다.는 것이다. 그래서 학생들이 배우는 모든 단계에서 학습에 적극적인 자세를 취하도록 격려받아야 한다는 것이다.


정상이란 당신이 익숙한 것이다.

물론 여기에 숙제, 방학, 시험 등에 대해서 자세한 설명을 자세하게 있다. 이렇게 간단히만 적어놓으면 자칫 이상론으로 보일 수도 있다. 하지만 이 책을 읽으면서 그런 생각이 들지 않는 것은(현실적인 어려움은 별개로 하고) 실제로 칸 아카데미가 이를 현실로 만들고 있기 때문이다. 수년 동안 살만 칸이 칸 아카데미를 통해서 교육시스템에 대해서 고민하면서 실험한 대부분의 내용이 들어있고 실제로 해낸 결과(매우 잘 된 결과라 할지라도)가 있기에 이 책에서 살만 칸이 말하는 내용을 힘이 실려있다.


천재성은 물론이고 창의력을 가르칠 수 있는지는 모르겠다. 그러나 확실히 억압할 수는 있다.

그렇다고 책이 어렵지는 않다. 생각해 볼거리는 엄청나게 많을지언정 어려운 내용은 없고 번역도 잘 되어 있어서 술술 읽힌다. 대신 책 제목은 정말 최악이라고 생각한다. 원제는 The One World Schoolhouse: Education Reimagined인데(책 내용 중에는 한세상 학교라고 번역한듯하다) 이 제목을 "나는 공짜로 공부한다."이라는 싸구려식으로 지은 데는 정말 분통이 터질 정도이다. 누가 책 제목을 지었는지 모르겠지만, 책의 가치를 전혀 보여주지도 않고(공짜라는 거의 상관도 없다.) 이 좋은 책은 아주 평범한 책으로 만들어 버렸다. 서점에서 책 제목을 보고 이 책을 읽을 사람이 과연 있을지 의심이 들고 책 제목을 보고 읽어본 사람은 왠지 낚였다는 생각이 들 것 같다.

오랜만에 좋은 책을 읽어서 기분이 좋다. 초기에 칸 아카데미를 보았을 때 이 좋은 서비스를 국내에선 어떻게 할 수 없을까? 라는 생각을 하면서 서비스를 찾아본 적이 있었는데 zziuni님을 통해서 현재 칸 아카데미에 대해서 꽤 많은 번역이 이뤄지고 있음을 알게 되었다.(나중에 참고해볼 것 같아서 일단 기록!)



My Comment..
해당 글을 보다보니 다른 것보다 하나의 문장에 눈에 들어왔다.. "사람들은 서로 다른 속도로 배운다" 라는 문장인데.. 햄은 아마 다른 의미에서 해당 문장을 집중했을지 모르겠다.. 그런데 난 아이가 태어나고 그 아이를 바라보면서 요즘 부쩍 교육, 정치, 사회 전반적인 문제에 관심을 많이 갖고 있다..

왜냐면 내 아이가 자라나서 지낼 환경들이기 때문이다.. 그런 점에서 볼 때 우리나라의 교육은 무척 잘못됬다고 생각하며, 본문에 지적해준 몇몇 부분은 공감을 상당히 하게 된다.. 나도 그랬지만 다 이해하지 못하고 넘어가고, 남들이 다 넘어가니 나도 휩쓸려서 넘어가고, 결국에 돌아서보면 어떤 것 하나 이해하지도 못하고 기억에 남지도 못한다..

같으 개념으로 볼 수 있는 것인지는 모르지만 우리나라의 교육 자체도 해외처럼 좀 여유있는..?? 가르침의 방식으로 바뀌었음 좋겠다.. 급하게 많은 것을 어린 나이에 빨리 가르치기 보단 아주 작은 것 하나를 가르치더라도 스스로 이해하고 개념을 확실하게 잡으면서 넘어갔음 좋겠다..

아마도 내 아이도 학교에 들어가면 그렇게 배울 것이다 빠르게 빨리 빨리 더 많이.. 같은 시간에 이해를 못하면 못난 사람이 되고, 부족한 사람이 될 것이다.. 우리 나라의 현실이 그러하니 말이다.. 남들보다 못하면 다른것이 아닌 부족한 사람이 되버리니.. 참 안타깝다..


내가 과연 얼마나 지금의 생각을 나중에도 유지할 수 있을지는 모르겠지만.. 혹시라도 추후에 이 글을 다시 보게 되면 생각하자.. 내가 지금 이렇게 생각했다는 것을.. 그리고 우리 아이를 이해하려고 마음 먹었던 것을.. 기억하자..

2016년 6월 2일 목요일

[Talk] RT:FM, 나는 프로그래머다 meetup (일반)..

이제 5월도 다가고 6월이다.. 너무 덥다;; 한여름에는 어떻게 지내야 될지 이거 원.. 그런데 오늘 아침부터 친구 P 군에게서 톡이 와있는것 아닌가..

근데 이쯤에서 내가 친구 P 군B 군이라고 할 때도 있는 듯한데 동일인물이다.. ㅋㅋㅋ.. 무튼 그래서 톡을 확인해보니 교육이 있다는 문자였다..

해당 교육 링크를 들어가보니 타이틀은 "RT:FM, 나는 프로그래머다 meetup (일반)" 이었다.. 내용은 개발자 생존 전략 : 개발자의 새로운 역할, 개발자를 위한 공부법, 이직 그리고 취업 부분에 대한 교육이었다..

사이트를 가보면 알겠지만 교육 참가비용은 16,500 원 이다.. 유료이지만 상당히 저렴한 가격이기에 아주 좋다고 볼 수 있다.. 이정도의 금액도 투자를 안한다면 그건 좀 그렇지.. ??? 솔직히 나도 과거에는 투자하기 시러씀.. ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ.. 무튼간에 해당 교육은 제한 인원이 300명이어서 늦게 신청하는 사람은 참석이 불가능하다.. ㅎㅎ..

교육에 대한 소개는 아래와 같다.. 이미지가 좀 크다보니 위에 링크를 통해서 보는 것이 더 확실하다..





강사소개는 아래와 같다.. 생각보다 많은 분들이 참여하고 계신데.. 시간 대비 너무 많은것을 알리려고 하는 것이 아닐까 하는 우려가 살짝 생긴다..




교육에 대한 소개는 대략 이정도이다.. 디테일한 설명을 뒤로한채 이미지를 통으로 가져와서 올린 이유는 드물겠지만 혹~~~~~~~~~~~~~~~~시라도 내 블로그에 와서 정보를 보시고서 신청하려는 분에게 도움을 주고자.. 후다닥 글을 올리려고 그랬다.. 수정이야 머 올리고나서 천천히 하면 되니까..

2016년 4월 21일 목요일

[EP]웹 보안 취약성 관한 교육..

나른한 오후에 보안 교육을 받았다.. 1차, 2차 교육이 있었는데 오늘이 2차고, 1차는 어제였다.. 어제는 개인휴가였기 때문에 오늘 듣게 되었다..

어찌보면, 해당 회사에서 근무하면서 거의 매년 또는 전/후반기에 교육을 듣게 된다.. 특별한 케이스가 아니면, 교육의 내용이 엄청 바뀌지는 않는 듯 하다..

하지만, 내가 블로그를 시작한게 올해부터였기 때문에 처음으로 포스팅을 해본다.. 만약, 추후 교육을 또 받았는데 바뀐것이 많다면, 추가 포스팅을 해보도록 하겠다.. 지금 기준에서는 거창한 포스팅은 아니기 때문에 세부적인 내용은 개발자 스스로 조금 더 검색을 해서 확인을 해야된다.. 이 글은 이런게 있다 정도의 개념이라고 보면 된다.. 무엇보다 해당 회사도 그렇지만, 약 30여개의 보안항목 중에 실질적으로 중요도를 높여서 확인하는 것은 9개 정도이다.. 가장 큰 이유는 각 회사마다 업무에 따른 중요도의 기준이 틀리 듯 이곳의 중요도 기준이 그러하다..

상주하고 있는 인력이 교육을 해주셨는데 마음이 급하셨는지 회사 소개 및 본인 소개는 없었다.. 타이틀 소개와 목차 소개 후 바로 본론으로 고고.. 그렇다면 교육에서 언급한 9가지 항목에 대해서 간단한 소개와 대응 방안을 보도록 하자..

다시 말하지만, 이건 간단한 소개정도이고 실질적인 적용은 자신이 다니는 회사에 맞게 검색을 더 해야되며, 소스를 더 찾아봐야 된다.. 요즘 웹 개발에 있어서 이정도를 주로 보안 취약성으로 많이 본다?? 정도가 딱 알맞다..

1. SQL 인젝션
  • 기본정의 : SQL 내에 있는 파라미터를 조작해서 쿼리처럼 실행이 되도록 해서 DB 제어를 한다.
  • 해결방법 : preparedStatement 를 사용해서 변수 바인딩을 하거나 특수문자 필터링 처리를 한다.

2. XSS [크로스 사이트 스크립트]
  • 기본정의 : 웹 사이트 내에서 임의의 스크립트를 실행한다.
  • 해결방법 : replaceAll 등을 통해서 필터링 처리를 하거나 꼭 사용해야 하는 특수문자라면 필터링 처리를 했다가 데이터를 받는 부분에서 다시 복원하는 방식으로 사용한다.

3. 파일 업로드
  • 기본정의 : 시스템 컨트롤이 가능한 파일을 업로드 하는경우를 뜻한다.
  • 해결방법 : 허용된 확장자만 업로드가 되도록 코딩을 하거나 추축불가능한 파일명 및 경로사용 내지는 서버사이드 구현을 통해 사전 위험도를 관리한다.

4. 파일 다운로드
  • 기본정의 : 지정된 파일외에 서버내 파일을 다운로드해서 임의로 사용하는 것을 뜻한다.
  • 해결방법 : 사용하는 모듈을 Index 화해서 사용하거나 요청하는 user 의 권한을 확인 후 처리하도록 한다.

5. 불충분한 인가
  • 기본정의 : 접근 권한에 대한 체크로직이 없어서 접근하게 되는 경우를 뜻한다.
  • 해결방법 : userID 및 권한 등을 추가적으로 검증하는 로직을 추가한다.

6. 쿠키변조
  • 기본정의 : 쿠키 값 변조를 통해서 접근 및 권한상승을 임의로 한다.
  • 해결방법 : 서버 측 session 을 사용해서 값을 전달한다. 

7. 디렉터리 인덱싱
  • 기본정의 : 불필요 파일로 인해서 web 구조를 파악하게 하는 것이다.
  • 해결방법 : 각 server 측 특성에 맞도록 인덱싱 기능을 제거해서 관리하도록 한다. 무엇보다 불필요 파일에 대해서 관리를 철저히 하도록 한다.

8. 프로세스 검증누락
  • 기본정의 : 기존 프로세스  흐름을 우회해서 처리가 가능하도록 한다.
  • 해결방법 : server side 검증 로직을 추가하거나 기존 단계에 대한 검증여부를 재차 확인한다. javascript 보다는 server 에서 처리를 하는쪽을 권장한다.

9. 정보누출
  • 기본정의 : 주요 정보 노출로 인한 2차 공격이 가능해진다.
  • 해결방법 : server 설정을 변경하거나 jsp, javascript, json 등의 처리를 할 때 표시되는 정보를 삭제하거나 마스킹 처리를 하도록 한다.

9가지 항목은 위와 같다.. 그런데 해당 교육을 받으면서 아쉬움이 좀 있었다면, 실제 업무에서 사용하고 있는 소스의 일부분을 발췌해서 대응 방안을 보여줬으면 어떨까 싶다..

물론 같이 일하는 개발자들이 각자의 소스에 맞게끔 수정해서 적용하고 사용하고 있긴 하지만 예시가 너무 틀에박힌 샘플성이 아니었으면 하는 마음이었다.. 그럼 조금이나마 집중도가 올라가지 않았을까..??..

또한, 교육이 끝난 후 개인적으로 질문을 한 것이 있었다.. 근데 머가 떨린다고 그렇게 어버버 했는지 모르겠다.. 이놈의 울렁증.. ㅡ;;ㅡ 무튼.. 질문의 요는 "취약성에 대해서 유틸화 해서 각 인스턴스마다 각자 사용하고 있는데 그 유틸 파일에 대한 최신화를 업체에서 해주거나 검증이 가능한가..??" 였다..

위와 같은 질문을 한 배경을 간단히 얘기하자면 과거에 XSS 취약성 문제로 기본적으로 되어있던 유틸 파일을 통해서 수정을 했었다.. 그런데 나중에 추가 보안 요청을 해온 이유중에 하나가 요즘에는 어떠어떠한 부분도 필터링에 포함이 되어야 하는데 그 부분이 누락되었다는 것이다.. 그래서 질문을 한 것이다.. 혹시나 하면서..

솔직히 기대를 안하고 한 질문이긴 한데 어떤 대답이 나올지 짐작이 되기 때문이었다.. 그런데 역시나 답은 이러했다.. "현 상황을 알고는 있으며, 최신화를 통한 공통화를 시킬까 했지만 현 상황으로는 안된다" 라고 말이다..

답변을 해주신 분에게 감정이 있거나 혹은 서운하거나 그러진 않았다.. 다만 해당 회사 뿐 아니라 모든 회사들이 보안이 어쩌고 21세기가 어쩌고 미래를 어쩌고 IT 선진화 등등 보기 좋은 말은 그렇게들 하면서도 정작 내부적으로 작은 프로세스 혹은 유틸 등 무엇인가를 바꾸기엔 대중에게 내놓는 슬로건과는 거리가 있다는게 아쉬울 뿐이었다..

그 간격이 조금이라도 빠른 시일내에 좁혀지길 바랄 뿐이다..

2016년 2월 18일 목요일

[DEV]Silverlight 1.0 시작하기..

출처 : Outsider's Dev Story https://blog.outsider.ne.kr/

지난 주 부터 실버라이트 교육을 받고 있다. 가끔 회사에서 직장인 환급 교육관련해서 메일이 오곤 했는데 그닥 눈에 띄는 것도 없고 교육에 대한 자세한 내용도 없고 해서 크게 신뢰할 수도 없다보니 그냥 항상 지나쳤었는데 이번 교육과정들은 웹개발쪽만 있어서 고민을 좀 했는데 마침 실버라이트 1.0/2.0 강좌가 눈에 띄어서 듣기로 했다.

어차피 내돈은 한푼도 안드는거고 주말에 시간만 좀 투자해 주면 되는거였기 때문에... ㅎㅎ 실버라이트 혹은 RIA관련 기술에 대한 관심이 계속 있었지만 다른 일에 치여서(핑계겠지만...) 시작을 전혀 못하고 있었는데 교육을 받으면 반강제(?)적으로도 하게 되고 새로운 랭귀지라서 기초만 좀 익히면 그 다음은 혼자서도 어느정도 할 수 있을 것이라고 생각을 해서 신청을 했다. 그래도 8주 주말 압박은 좀.. ㅡ..ㅡ




어쨌든 지금은 실버라이트 1.0을 배우고 있다. 내가 좀 착각하고 있던 것이 1.1을 없어지다 보니까 1.0도 신경을 안써버리게 된것.... ㅡ..ㅡ

일단 시작이니까 실버라이트 얘기를 좀 하면 MS가 작년에 RIA기술로 실버라이트1.0이라는 기술을 발표했다. 실버라이트는 웹에서 사용할 수 있는 RIA기술로서 윈도우즈 Vista가 출시되면서 등장했던 WPF의 일부기능을 추려서 실버라이트라고 내 놓은 것이다. RIA시장은 현재는 Flash/Flex가 장악하고 있다고 생각하고 있고 실버라이트가 최근에 치고 올라오고 있고 그 외에도  OpenLaszlo나 JavaFX등이 있다.



실버라이트는 브라우저별로 실버라이트 런타임만 설치하면 사용할 수 있기 때문에 플래시 플레이어처럼 어느정도 보급만 되면 불편없이 자연스럽게 사용할 수 있다. 자세한 내용은 잘 모르지만 리눅스 쪽에서도 문라이트라는 녀석이 있어서 리눅스에서도 실버라이트를 볼 수 있다.(실제로는 호환성이 어떤지 모르겠지만... 지금도 베타가 계속나오는 통에 윈도우에서도 런타임 설치에 좀 문제가 있는듯... 파폭에서 잘 설치 안될때도 많고... ㅎ)

실버라이트 1.0은 자바스크립트와 XAML로 이루어져 있다. 그래픽적인 요소들의 정보를 XAML이라는 이름의 XML로 가지고 있고 이것을 자바스크립트로 다루어서 동작하도록 할 수있다. 블랜드라는 툴을 이용해서 디자이너들은 XAML파일을 내보낼 수 있고 개발자는 XAML파일을 이용해서 비쥬얼 스튜디오로 실버라이트 개발을 할 수 있는 협업구조이다.(이런 형태의 협업은 Flex쪽에서도 거의 동일한듯....)

1.0은 내가 보기에는 발표정도의 의미가 강하다. MS가 우리 이런거 한다 하면서 시장 분위기 조성하고 준비하기 위한.... 모두가 알고 있듯이 진짜는 실버라이트 2.0에 있다. 원래는 1.0을 출시하고 올해 1.1을 출시하려고 했지만 MS에서 준비하다보니 1.1의 분량이 너무 많아서 1.1의 이름은 2.0으로 변경하였다. 2.0에서는 C#을 포함하여 여러가지 언어를 지원하고(정확한 지원 언어에 대해서 못찾겠네) 1.0에서 안되던 많은 부분을 지원하고 있어서 많은 사람들이 기대를 하고 있고 현재 Beta 2까지 나와있는상태이다.





일단 실버라이트를 돌려보자. 새로운 언어를 만나면 시작이 Hello World이듯이 실버라이트도 일단 띄워야 멀 하든지 말든지 할 것 아닌가. 현재 실버라이트 1.0에 대해서만 배우고 있는 관계로 일단 1.0에 대해서만 얘기한다. 2.0은 추후에....

Html

<object type="application/x-silverlight" id="silverlightControl" width="300" height="300">
    <param name="source" value="XMLFile.xaml"/>
    <param name="background" value="#1b2d3d" />
    <param name="onError" value="onSilverlightError"/>
</object>


Html파일안에 위처럼 Object태그로 이용해서 삽입할 수 있다.  background속성은 페이지의 배경색과 맞추기 위해서 넣은 속성이다. source 프로퍼티로 XAML파일을 지정해 준다. 어떤 내용을 어떻게 보여줄 지에 대한 정보를 답고 있다. 여기서는 간단한 도형만 보여준다.

Xml

<Canvas xmlns="http://schemas.microsoft.com/client/2007"
              xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Ellipse Height="200" Width="200" Stroke="Black" StrokeThickness="10" Fill="SlateBlue" />
</Canvas>


위의 XAML파일은 Silverlight 1.0 QuickStarts에서 가져왔다. XAML에 대한 내용을 작성하기는 양도 많고 어디서 부터 해야할 지도 몰라서...



물론 실버라이트를 보려면 실버라이트 런타임이 설치 되어 있어야 하고 실버라이트가 설치되어 있지 않을때 자동적으로 인스톨링크가 연결된다거나 하는 처리는 되어 있지 않다. 실버라이트를 설치하려면 실버라이트 설치페이지를 통해서 설치할 수 있다. 책에는 Object태그로 실버리아트를 임베드하는 것은 사파리에서는 돌아가지 않아서 embed태그를 써야한다는데 런타임이 2.0으로 업데이트되서인지 지금은 object태그로 4대브라우저(IE, 파이어폭스, 오페라, 사파리)에서 다 잘 돌아간다.


덧) 이것저것 배우고 있기는 한데 아직 정리가 안되서 포스팅하기가 쉽지 않네....