안녕하세요. OCOL 입니다.
OCOL의 네 번째 쿠키🍪
2020.10.11

네 번째 쿠키🍪
오늘은 조금 새롭게 단장한 OCOL의 뉴스레터입니다. 사실, 저번 뉴스레터로부터 도착한 피드백을 보고 수정한 것인데요. 어떤 의견이든 뉴스레터의 발전을 위한 의견이라면, 언제나 환영입니다! (OCOL은 피드백을 꼼꼼히 확인합니다👍) 그럼, 오늘의 쿠키도 즐겨주세요🍪
by TULA
라즈베리파이 개발 도우미
라즈베리 파이를 편하게 사용할 수 있는 프로그램 몇가지
안녕하세요, 여러분. 오늘은 가볍게 라즈베리파이에 개발을 할 때 설치하면 좋은 프로그램들을 설명해보려 합니다. 주로 SSH로 라즈베리파이와 연결했을 때 사용하는데요. 개발을 한 프로그램을 옮기거나, GUI 형태의 프로그램을 실행시켜야 하거나, 개발 중인 노트북에서 원격으로 라즈베리파이에 붙는 프로그램 등. 제가 사용하면서 편했던 프로그램 3가지를 공유해보겠습니다!

1. File Zilla
첫번째, File Zilla 클라이언트 프로그램 입니다. (설치는 이곳에서 가능합니다.) 라즈베리파이로 파일을 전송하거나, 반대로 라즈베리파이에서 파일을 전송받아야 할 때 주로 사용하는 프로그램인데요. SFTP 방식으로 파일을 주고받습니다. 여기서 SFTP란 SSH 방식으로 파일을 주고 받는 프로토콜입니다.   
2. putty
putty란 SSH 연결뿐만 아니라 여러 방식으로 서버에 원격 접속을 할 수 있는 프로그램입니다. 윈도우 커맨드 창에서 SSH를 지원하지 않을 때 사용하기 좋았으나 사실 이제 윈도우 커맨드에서도 SSH접속이 가능해졌기 때문에 필수 프로그램은 아닙니다. 다만 접속 해야하는 라즈베리파이가 많아지거나 로그인 정보를 저장해서 사용하고 싶을 경우 설정들을 저장해서 사용이 가능합니다.
3. MobaXterm
putty와 비슷한 역할을 하는 프로그램입니다. ssh 연결을 지원하는 원격 접속 프로그램인데, GUI 프로그램도 실행시킬 수 있어 애용하고 있습니다. 라즈베리파이에서 커맨드로 GUI 프로그램을 실행시켰을 때 사용하시면 좋습니다.
글을 마치며
사실상 헤드리스 라즈베리파이를 위한 프로그램 소개가 되었네요! 개발을 하다보면 사용중인 노트북이나 컴퓨터에서 바로바로 라즈베리파이에 붙을 수 있도록 도와주는 프로그램들이 소중하더라구요. 물론 케이스 바이 케이스지만, 아무래도 실제로 개발하는 컴퓨터가 따로 있다보니 위의 프로그램들을 애용하게 된 것 같습니다. 아니, 이 프로그램이 빠졌다니 싶으신 분이 계신다면 제보는 언제나 환영입니다. 🤭
좀 더 자세한 정보나, 댓글은 본글 링크로 와주시면 됩니다😆
by 한닢
RSA 암호화
RSA 알고리즘에 대해 가볍게 알아봐요
RSA 암호화는 공개키 암호화로 비대칭키 알고리즘을 이용합니다. 대략적인 과정은 다음와 같습니다. (1) A가 공개키와 개인키를 만듭니다. (2) A에게 정보를 보내고 싶은 사람이 공개키를 이용해 정보를 암호화합니다. (3) A는 암호화된 정보를 개인키를 이용해 복호화합니다. 그럼 일단 키부터 만들어볼까요?
공개키는 n, e, 개인키는 n, d의 숫자로 구성되어 있습니다.
  • n = p * q (p, q는 소수입니다.)
  • e는 1과 Φ(n) 사이의 숫자 중 임의로 정합니다. 단, 이때 e와 Φ(n)은 서로소 입니다. *Φ(n) = (p — 1) * (q — 1)
  • d는 (e * d) mod Φ(n) = 1을 만족하는 숫자 중에서 임의로 정합니다.
이제 키는 만들었으니, 암호화와 복호화를 직접해봅시다. 암호화가 되기 전의 정보를 🍎, 암호화가 된 이후의 정보를 🔒로 표현하겠습니다. (아이콘을 이용하니까 눈에 잘 들어오죠?)
  • 암호화  →  공개키 n, e를 이용해   →   🔒 = 🍎^e mod n 
  • 복호화  →  개인키 n, d를 이용해   →   🍎 = 🔒^d mod n 
위의 두 식으로 암호화 및 복호화가 진행됩니다. 이 RSA 암호화 방식의 안정성은 큰 숫자를 소인수 분해하는 것이 어렵다는 것과 나머지 역연산의 어려움, 두 가지에 기반을 두고 있습니다. 그래서 컴퓨터의 계산이 엄청나게 빨라진다면, 이 암호화 방식의 안정성은 사라지게 되는 것입니다.
만약 이 컴퓨팅 능력이 크게 개선될 하나의 “터닝 포인트”가 생긴다면?
위의 질문에 대한 답을 다음 쿠키에서 다뤄보려고 합니다. 기대해주세요😉
by TULA
인문학적 시선으로 인공지능 파헤치기 [5호]
보기 좋은 코딩 환경이 쓰기도 좋다
모두들 나이가 들수록 기억력이 약해진다고들 하지만, 이런 생각에 휩싸여 다소 우울해질 때는 서점에 가 초등학생 문제집과 대학교 강의교재를 비교하길 바란다.
우리네 대학교재에는 '그림'이 없다. 어린 시절 그 많은 지식들을 쉽게 머릿속에 저장할 수 있었던 이유는 '그림' 덕분이다. 하지만 문자 언어보다 형상 언어를 깎아내리는 한국 풍토상, 학습 단계가 올라가면서 특정 개념에 연관된 그림을 만나기란 쉬운 일이 아니다. 사실 이 글도 웹을 기반으로 하는 매체 특성상 활자가 너무 많다. 돌이켜 보면, 코드도 모두 글로 이루어져 있다. 그렇다면 프로그래밍을 하는 방법은 검은 화면에서 멍하니 키보드만 두들기는 일밖에 없을까?
다행히도 우리가 다룰 파이썬의 경우 IPython(대화형 파이썬, Interactive Python의 줄임말)이 존재한다. 파이썬 기본 인터프리터에서는 상상할 수 없는 그래프 기능과 다채로운 색깔까지 지원된다. __개발환경계의 그림책__이다. 만약 코드를 실행하던 중 에러가 발생했을 때 어디에서 무슨 이유로 발생했는지도 자세히 알려 준다. 게다가 웹브라우저에서도 데이터 분석, 모델 훈련 등의 작업을 할 수 있다.
IPython 세계에서 '프로젝트 주피터(Project Jupyter)'는 프로그래밍 언어들을 웹사이트에서도 자유롭게 빌드할 수 있는 미래를 목표로 추진 중인 오픈소스 프로젝트다. 주피터랩은 개발환경 인터페이스다. 주피터랩을 사용하기 위해서는 사용자가 컴퓨터에 이것저것 파일들을 설치해야 하지만, 그조차도 할 필요 없는 툴이 존재한다. 바로 구글이 제작한 코랩(Colaboratory)이다. 구글이 데이터 사이언티스트와 머신러닝 엔지니어에게 놀이터를 제공한 셈이다.
'보기 좋은 떡이 먹기도 좋다'라는 말이 있다. 코딩 환경도 마찬가지다. 태초의 의사소통은 소리와 몸짓, 그림으로 이루어졌으므로 우리는 보기 좋은 개발환경을 선택할 권리가 있다. 그 곁에 IPython과 코랩이 함께할 것이다.
**자세한 사항, 신랄한 토론거리, 생생한 사진은 본글 링크로 이어집니다.
by Suyeon Park
[4화] 우리 버디님은 인공지능

by Suyeon Park
오늘의 음악은?

🎵 Mariposa - Peach Tree Rascals
오늘 쿠키의 글 링크를 아래에 모아두었습니다.
오늘의 쿠키는 여기까지 입니다.
조금 바뀐, 네 번째 쿠키는 어떠셨나요?
오늘의 쿠키가 좋았다면?
👆👆👆
친구나 동료에게 공유해주세요!
😉좋은 건 나눠 먹어야죠!
OCOL
one.cookie.one.line@gmail.com