TIL - DAY 9
📝 책에서 기억하고 싶은 내용을 써보세요.
39. 인공지능, 머신러닝, 딥러닝, 아직도 구분하기 힘들다고?
인공지능에도 급이 있다? 좁은 인공지능(narrow AI or weak AI), 일반 인공지능(general AI or strong AI)
사람처럼 행동하는 인공지능, 일반 인공지능: 인간의 행동을 대부분 할 수 있거나 인간보다 능력이 뛰어났을 때를 말함(아직은, 현실에 없다!)
한 가지만 잘하는 인공지능, 좁은 인공지능: 실제 현실에서 딥러닝이 머신러닝으로 만드는 인공지능
머신러닝은 인공지능을 학습시키는 방법
기계는 직접 가르칠 수도 있고, 알아서 배우게 할 수도 있다
- 지도 학습(supervised learning): 인간이 기계에게 준 라벨(특징)을 토대로 학습해서 대답
- 비지도 학습(unsupervised learning): 라벨이 없는 데이터를 핫도그 판별 기능 학습시 핫도그 사진 수만장을 주고, 스스로 그 특징을 찾아 학습 하도록 함
머신러닝의 하위 개념, 딥러닝: 구현하는 과정에서 여러 겹으로 층으로 깊이(deep) 학습함으로 깊이(deep) 학습함
40. REST API라니, 휴식 API인가? 이게 대체 뭐죠?
영화 REST API를 만드는 과정으로 이해하는 REST(representational state transfer) API
- REST 없이 영화 API 설계하기(URL에 패턴이 없다)
- 영화 정보 생성: /createMovie
- 모든 영화 정보 조회: /seeMovies
- 특정 영화 정보 조회: /getMovie/inception
- 특정 영화 정보 삭제: /deleteMovie/inception
- 특정 영화 정보 수정: /editMovie/inception
- URL에서 동사 제외하기
- 모든 영화 정보 조회: /movies
- 특정 영화 정보 조회: /movies/inception
- HTTP 메서드 도입하기(URL로 백엔드에서 다른 처리를 할 수 있도록 일종의 갈림길을 만들어줌)
- GET(조회) /movies/inception
- POST(생성) /movies/inception
- PUT(수정) /movies/inception
- DELETE(삭제) /movies/inception
- 동사를 사용하지 않음으로써 URL이 단순하게 바뀐다. 특정 영화 정보의 조회, 생성, 수정, 삭제를 URL 1개로 모두 할 수 있다.
- 쿼리 도입하기
- GET /movies?min+rating=9.8
- GET /movies?release_date=2022
41. 도커가 뭐지? 왜 필요할까?
개발 환경 준비로 고생하는 사람들을 획기적으로 도와주는 도구, 도커
어떤 컴퓨터에서도 같은 개발 환경을 준비할 수 있도록 해주는 도구
- 사용하는 OS와 서버에 도커를 설치
- 도커 파일을 생성해 구현하고 싶은 환경 목록을 만든다(우분투 12 버전, 파이썬 3.10 버전, 깃, …)
- 파일 완정 후 컴퓨터(OS)와 서버(리눅스)에 전달 → 도커가 자동으로 필요한 것을 내려받아 설치
- 도커가 준비한 프로그래밍 언어가 동작하는 환경을
컨테이너
라고 한다.
도커는 원하는 개발 환경을 도커 파일에 저장하여 준비, 도커가 마련한 개발 환경은 컨테이너 형태로 존재하므로 개발에 필요한 도구를 따로 모아 준비할 수 있고, 쉽게 복제 할 수 있다.
42. 암호화폐의 진실
암호화폐를 정부가 규제할 수 있을까? 없다.
암호화폐를 없앨 수 있을까? 없앨 수 없지만, 거래소를 통해 간접적인 방법으로 규제 하고 있다.
암호화폐의 익명성과 책임의 균형: 암호화폐는 사용한 사람을 은행 자체로 만든다. 은행의 역할을 스스로 해야함
암호화폐와 개인 정보 보호 문제: 모든 정보가 공개된다. 비트코인 주소만 알면 돈이 얼마 있는지, 얼마를 받았는지, 얼마를 송금했는지 모든 정보를 알아낼 수 있다.
암호화폐로 사기를 당하지 않으려면
- 모든 코인에 가치가 있는 건 아니다(누구나 코드를 복사해서 코인을 만들 수 있다. 그래서 무조건 가치가 없다)
- 암호화폐에 대해 수식어를 남발하는 사람은 거르자 (탈중앙화된 오라클 프로토콜을 사용한, 머신러닝에 최적화된 유동성 풀을 만드는 코인 이라고 소개하는 글이 있었지만 가치 없는 코인을 파는 곳이 었다)
- 코인, 커뮤니티 등 진짜 정보를 살펴라
- 코드의 마지막 업데이트 날짜는 언제인가?
- 커뮤니티에 얼마나 많은 사람이 참여했는가?
- 커뮤니티에서 가격 이야기만 떠들고 있는가?
- 탈중앙화된 코인인지 살펴라 (탈중앙화되지 않는 코인은? 코인을 만든 곳에서 언제든지 마음대로 할 수 있어 매우 위험한 코인임)
- 이론상 안전한 코인을 골라라 (안전한 코인을 고를 수 있도록 계속 공부해야 함)
43. 하이브리드…앱? 뭐라고요?
애플리케이션을 만드는 방법: 하이브리드 방식, 크로스 플랫폼 방식, 네이티브 방식
하이브리드 앱
- 웹뷰: 웹 사이트를 보여 주는 브라우저의 윈도우 부분(주소창이 없는 브라우저를 웹 뷰라고 생각하면 됨)
- 웹 앱: 웹 뷰로 만든 앱
하이브리드 앱: HTML, CSS, JS로 개발한 웹 앱을 iOS에서도 안드로이드에서도 쓸 수 있도록 하이브리드(hybrid)로 만들어 앱을 판매하는 곳(구글 플레이스토어, 앱 스토어)으로 보내는 것
- 장점: 네이티브 앱 개발 지식이 필요 없음!
- 단점: UI를 한 땀 한 땀 짜야 해서 귀찮음!
크로스 프랫폼 앱
어떤 언어로 코드를 작성하면 그 코드가 나중에 네이티브 코드로 변환된다는 것
- 장점: 개발자가 익숙한 코드로 한 번만 작성해도 OK! (한 번에 iOS, 안드로이드 두 환경에서 실행 할 수 있다.)
- 단점: 네이티브 앱의 성능을 아직 따라갈 수 없음! (기술적 한계, 네이티브 언어로 변환하는 과정이 있어서 성능에 조금 문제가 있을 수 있다.)
네이티브 앱
iOS(스위프트)만을 위한, 또는 안드로이드(자바나 코틀린)만을 위한 언어로 코드를 작성하여 개발하는것
- 장점: 스마트폰의 성능을 최대로 사용할 수 있음!
- 단점: 다른 앱에 비해 배우는 데 시간이 2배 걸림!
44. NFT가 도대체 뭐길래?
NFT(non fungible token): 대체 불가능한 토큰
원리로 알아보는 토큰의 의미
이더리움(Ethereum)과 같은 블록체인으로 발행, 돈을 받는 기능과 돈을 받고 토큰을 보내주는 기능이 반드시 있어야 한다.
→ 스마트 계약(smart contract)
토큰을 잘 활용한 예가 바로 코인이다.
니꼬 코인 계약에 포함된 기능
- 누군가 나에게 달러를 주면, 그것을 받는다.
- 달러를 받고, 니꼬 코인을 보내 준다.
코인은 여러 개 있을 수 이어 화폐처럼 사용 그런데 토큰을 딱 1개만 발행할 수 있도록 스마트 계약을 만들고 이미지, 영상, 노래, 전세 계약서 등을 넣어 NFT를 발행
NFT 그림은 왜 이렇게 비쌀까?
유일한 원본, 진짜라는 사실이 가치를 크게 높여 주는 것, 유일한 원본임을 증명하는 기술
유일함을 소유할 수 있게 해준다.
45. 멀웨어, 바이러스, 웜 개념 몽땅 정리
멀웨어(malware): malicious(악의 있는)와 softwore(소프트웨어)의 합성어, 컴퓨터를 감시하거나 파괴하는 악성 소프트웨어, 이런 사이버 무기는 국가나 특정 기관에서 만들어서 사용, 다른 국가의 핵심 시설이나 인프라를 감시하거나 파괴하려고 제작
바이러스(virus)와 웜(worm)
바이러스와 웝은 복제되어 전파된다.
- 숙주가 필요한 바이러스: 바이러스는 숙주 필요, ‘감염된 파일을 내려받았다’ 라고 표현하는 이유, 바이러스가 파일 안에 들어있고, 그 파일(숙주)을 내려받아서 열 때 감염된다.
- 숙주가 필요없는 웜: 웜은 자기 자신을 복제하면서 전파된다. 그냥 USB를 통해서도 전파 할 수 있다.
웜은 컴퓨터를 어떻게 파괴시킬까?
웜은 미사일(missile)과 페이로드(payload)가 필요하다. 미사일을 통해 컴퓨터 안으로 침투하고, 그 순간 페이로드를 배포하는 방식으로 컴퓨터를 파괴시킨다.
컴퓨터 아주 깊은 곳 까지 들어갈 수 있는 미사일
웜이 이동 시나리오: 감염된 컴퓨터에 있다가 USB 같은 저장 장치와 연결되면 이것을 타고 다른 컴퓨터에 침투, 암호화된 상태로 컴퓨터에 도착해 스스로 암호를 해제하고 웜을 만들었던 본부에 연락함
컴퓨터의 보안 링 구조: 애플리케이션 링, 드라이버 보안 링, 중앙 보안 링, 가장 깊은 곳에 운영체제가 있다. 웜은 이곳에 설치 됨, 컴퓨터의 모든 자원을 관리하는 운영체제 바로 옆자리에, 이 말은 웜이 백신 프로그램보다 우위에 있다는 것을 의미함.
아무도 발견하지 못한 프로그램의 취약점, 제로 데이(zero day):아직 아무도 발견하지 못한 프로그램의 취약점을 뜻한다.
컴퓨터 드라이버까지 설치한 스턱스넷, 대체 얼마나 위험한 건가?
스턱스넷은 컴퓨터 드라이버를 설치하기도 했다. 이 녀석은 리얼텍(Realtek)이라는 대만 회사의 인증 자료로 컴퓨터 드라이버까지 설치한다. 컴퓨터 10만여 대나 감염시켰다고 하는데 아무것도 하지 않았다. 왜냐하면 이 웜은 공격을 시작할 때 특별한 발동 조건이 ㅣ있었기 때문이야.
핵 원심 분리기를 노린 스턱스넷
감염된 컴퓨터가 WinCC라는 프로그램을 실행하면 페이로드를 배포해서 공격을 시작하도록 설계되어 있었다. 산업 현장에 있는 기계들을 감시하거나 제어하는 장치, 핵 원심 분리기를 찾고 있었다. 분쟁 지역의 핵 시설을 마비시키기 위해 미국이나 이스라엘에서 퍼뜨렸다는 얘기가 있었다.
🔥 오늘 TIL 3줄 요약
- 딥러닝은 머신러닝의 하나이고, 머신러닝은 인공지능을 만드는데 필요한 방법이다.
- 애플리케이션을 만드는 방법: 하이브리드, 크로스 플랫폼, 네이티브 방식
- 멀웨어는 컴퓨터를 감시하거나 파괴하는 악성 소프트웨어, 바이러스는 숙주가 필요하고, 웜은 자기 자신을 복제하면서 전파
🤩 오늘 읽은 소감은? 떠오른 생각을 가볍게 적어보세요
끝났다!! 가볍고, 쉽게 읽을 수 있어서 좋았고, 1일 1로그 보다가 넘 지루해서 페이지가 나가지 않았는데, 이 책은 휘리릭 읽을 수 있어서 신나게 읽었다.
🔖 궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
Comments powered by Disqus.