안녕하세요. OCOL 입니다.
OCOL의 일곱 번째 쿠키🍪
2020.11.29

일곱 번째 쿠키에서는,
  • 라즈베리파이 활용하기
  • Capture the Flag!
  • 넘파이(Numpy)와 함께 땅따먹기를 - 02
  • 오늘의 음악은?
순서로 구성되어 있습니다. 마지막에 본글 링크가 모여 있으니 끝까지 편하게 읽으셔도 좋습니다. 오늘 쿠키도 즐겨주세요😉
by TULA
📢 잠깐 뉴스레터 전에,
공지가 하나 있습니다. 2020년 12월 마지막 달에는 OCOL의 재정비 기간을 가져보려고 합니다. 그래서 OCOL의 뉴스레터와 미디엄을 한 달간 휴재할 예정입니다. 2021년, 더 나아진 OCOL로 돌아오겠습니다! 😉
라즈베리파이 활용하기
안녕하세요, 오늘은 라즈베리파이를 활용하는 방법에 대해 이야기해보려고 합니다. 전에 라즈베리파이에 대해 설명을 했을 때, 작은 컴퓨터와 같다고 이야기 했었습니다. 사실상 컴퓨터에서 동작 가능한 것들은 대부분 동작이 가능하죠. 인터넷 서핑이나, 코딩같은 것들이요. 다양한 것들이 가능한데 그중에서도 이렇게도 함께 사용할 수 있다, 싶은 방법들을 한 번 모아봤습니다. 참고하시고, 라즈베리파이로 개발을 하실 때 한 번 참고해서 진행해보시길 바랍니다. 그럼 이번주도 힘차게 시작해보겠습니다!
1. 카메라와 함께 쓰기
라즈베리파이에 카메라를 달아서 사용해보신 적 있나요? 라즈베리파이에 카메라를 달면 무수히 많은 프로젝트를 진행해볼 수 있습니다. 카메라를 통하여 사물 인식이나 번호판 인식, 자율 주행 등 다양한 프로젝트를 시도해볼 수 있습니다. 더불어 텐서플로우 라이트와 같이 휴대용/IoT 기기를 위한 프레임워크도 존재해 개발하기엔 더욱 좋습니다.
2. 클라우드와 함께 쓰기
라즈베리파이도 각종 클라우드 서비스와 연동할 수 있습니다. AWS, Google, IBM 등 다양한 클라우드 IoT와 연동해서 사용할 수 있습니다. 각 기기들과 연동하여 기기의 상태 체크, 통신 및 데이터 관리 등을 사용할 수 있습니다. 각 클라우드 서비스를 활용하여 IoT 서비스를 구축하면 관리하기 쉬우니 한 번쯤 실습해 보시는 것을 추천드립니다. 엣지 컴퓨팅을 구현할 때 역시 클라우드와 함께 연동해서 사용하시면 됩니다.
3. Sense HAT과 같이 쓰기
라즈베리파이 통합 센서 보드인 Sense HAT 입니다. 라즈베리파이 바로 위에 결합하는 방식이며, 방향, 압력, 온습도센서와 함께 8x8 LED도 함께 달려있는 보드입니다. 여러가지가 함께 달려 있어 사용하기에 편리합니다. 개인적으로 Qiskit과 관련된 실습을 할 때 결과를 시각화 하고 싶을 경우에 8x8 LED에 표시하는 예제를 많이 사용했었습니다. 만약 8x8 LED만 사용할 경우엔 라즈베리파이에서 에뮬레이터를 통해서도 실습이 가능합니다. 하지만 여러가지 센서가 함께 달려있어 다양한 실습이 가능하므로 실물로 구해보시는 것도 좋을 것 같습니다.
글을 마치며
라즈베리파이를 다양한 측면에서도 활용하실 수 있길 바라는 마음에서 간단하게 이번 글을 작성해봤습니다. 라즈베리파이를 활용하는 다양한 프로젝트를 진행해보실 때 이 글을 참고하여 다양한 프로젝트를 구상해보셨음 합니다. 사실 오늘을 마지막으로 IoT가 아닌 백엔드 분야로 뉴스레터를 제작하게 될 것 같습니다. 그렇다고 IoT 분야의 공부를 끝마치는 것이 아니니 걱정 마세요! 제보는 언제나 환영입니다. 여러분과 꾸준히 공부해나가도록 할게요. 이번 주도 고생 많으셨습니다.🙌
by 한닢
Capture the Flag!
CTF 시작하기
Flag를 찾는 대회 CTF에 대해 들어보셨나요? CTF의 뜻은 제목에서도 볼 수 있듯이 “Capture the Flag”의 줄임말입니다. 이 대회에서는 숨겨진 Flag를 찾아서 제출해, 정해진 시간 내에 가장 높은 점수를 받는 팀이 우승합니다. 대회 문제 유형은 (1) 웹 해킹, (2) 암호학, (3) 시스템 해킹, (4) 포렌식, (5) 리버싱, (6) 네트워크, (7) 그 외의 문제들, 이렇게 총 7가지로 나누어집니다.
CTF는 가장 유명한 DEFCON CTF부터 한국의 CODEGATE CTF까지 굉장히 종류가 많습니다. 그렇지만 이런 대회에 초심자가 무턱대고 시작하기에는 부담스러운 부분이 많습니다. (일단 팀을 모으는 것부터 어렵죠.) 그래서 저는 개인적으로 picoCTF를 추천합니다. 해당 사이트는 카네기 멜론의 정보 보안 전문가들의 작품으로, CTF의 연습 문제도 풀어볼 수 있고 정보 보안 관련 리소스도 제공합니다. CTF가 처음이라 막막하다면 이 사이트를 시작으로 재미를 붙여가보는 건 어떨까요?

CTF의 의미는 지루한 정보 보안 공부를 재밌게 배울 수 있다는 점에 있습니다. 저도 최근에 picoCTF의 문제들을 풀어보고 있는데요. 문제들을 풀면서 느끼는 점은 마치 방탈출 게임이 떠오른다는 겁니다. 숨겨져 있는 Flag가 마치 그 다음 방으로 나아가는 키를 찾는 기분과 비슷했습니다. 정보 보안에 관심이 있는 분이라면 아마 재밌게 하실 수 있을 겁니다😇
by TULA
인문학적 시선으로 인공지능 파헤치기 [8호]
넘파이(Numpy)와 함께 땅따먹기를 - 02
<숲에서 나무 찾기>
이제 넘파이 배열의 각 요소들에 집중할 시간이다. 데이터를 아무리 많이 수집해도 그 안에 있는 원소들에 자유롭게 접근해 재가공할 수 없다면 말짱 헛것일 테니.
넘파이 배열 인덱싱 Cheating Sheet
배열의 원소에 접근하는 행위를 인덱싱(indexing)이라고 한다. 지금까지 뉴스레터나 본글을 애독한 독자라면 각각의 인덱스가 0부터 시작한다는 것을 눈치챘을 것이다. 
그렇다. 컴퓨터의 인덱스는 0부터 시작한다. 이 점을 항상 명심할 것!

1. 1차원 넘파이 배열의 인덱스를 명시하며 접근하기
x1 = np.array([5, 0, 3, 3, 7, 9])
first = x1[0]
third = x1[2]
final = x1[-1] # 파이썬의 장점
semi_final = x1[-2]
2. 2차원 넘파이 배열의 경우
x2 = array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
element = x2[0, 1] # 결과값: 10
3. 배열 슬라이싱(slicing): 다양한 원소에 한 번에 접근하기  
x1[:5] # array([0, 3, 3, 7. 9])
x1[1:] # array([0, 3, 3, 7. 9])
x1[1:3] # array([0, 3])
x1[1::2] # array([0, 3, 9])
x[::2] # array([5, 3, 7])

넘파이 배열 모양 바꾸기 Cheating Sheat
1. reshape() 메소드 사용하기.
   추가로 np.newaxis와 ‘:’를 덧붙이면 새로운 축을 추가할 수 있다.
2. np.concatenate():
   튜플이나 배열의 리스트를 첫 번째 인수로 취한다.
   인수로 들어온 배열을 합친다.
   다차원 배열에서는 np.vstack, np.hstack, np.dstack을 활용하는 것이 바람직하다.
3. np.split()으로 배열을 분할할 수 있다.
   np.hsplit, np.vsplit, np.dsplit도 존재한다.
출력 예시, 배열 관리에서의 주의사항 등을 알고 싶다면(‘알고 싶다면’이라고 썼지만 ‘알아야 한다’.) 본글을 꼭 정독하길 바란다.
by Suyeon Park
오늘의 음악은?

🎵 I'd Like to Hitch a Ride with Santa Claus - The Andrews Sisters
오늘 쿠키의 글 링크를 아래에 모아두었습니다.
올해 마지막 OCOL 뉴스레터를 읽어주셔서 감사합니다🍪
구독자분들 모두 연말 마무리 잘하시길! 👍💖  
오늘의 쿠키는 여기까지 입니다.
일곱 번째 쿠키는 어떠셨나요?
오늘의 쿠키가 좋았다면?
👆👆👆
친구나 동료에게 공유해주세요!
😉좋은 건 나눠 먹어야죠!
OCOL
one.cookie.one.line@gmail.com