[노개북] 10. TIL: IT 5분 잡학사전 e.39~45

summereuna🐥·2023년 1월 25일
0

노개북

목록 보기
10/11

TIL (2023.1.25.수)

DAY 13
📚 IT 5분 잡학사전
🔖오늘 읽은 범위: episode 39~45


📝 책에서 기억하고 싶은 내용을 써보세요.


39장. 인공지능, 머신러닝, 딥러닝

1. 인공지능(AI: Artificial intelligence)

  1. 일반 인공지능(General AI) 혹은 강한 인공지능(Strong AI)
    인간처럼 행동하거나 인간보다 능력이 더 뛰어난 인공지능
    지금 기술로는 만들 수 없음

  2. 좁은 인공지능(Narrow AI) 혹은 약한 인공지능(Weak AI)
    한 가지만 잘하는 인공지능
    실제 현실에서 딥러닝과 머신러닝으로 만드는 인공지능의 대부분

    • 예) 페이스북 얼굴 인식 기능, 빅스비 혹은 시리의 음성 인식 기술

2. 머신러닝

머신러닝은 인공지능을 학습시키는 방식으로 크게 두 가지 방법이 있다.

  1. 지도 학습(Supervised learning)
  2. 비지도 학습(Unsupervised learning)

(예) 음식 사진을 찍었을 때 핫도그인지 아닌지 판별하는 앱을 만든다면

  1. 지도 학습으로 핫도그 판별 AI 만들기
    1) 핫도그의 특징(소시지가 있다, 길쭉하다, 보통 소스가 뿌려져 있다)을 먼저 구분한다.
    2) 이런 특징, 즉 라벨(label)을 토대로 기계에 핫도그가 무엇인지 여러가지 예를 통해 학습시킨다.
    3) 사진 100장 중, 핫도그 인 것핫도그가 아닌 것알려준다.
    4) 기계는 인간이 준 라벨을 토대로 학습해서 답한다.
    : 이 음식은 라벨 60%에 부합하므로 핫도그일 확률이 60%이다.
  1. 비지도 학습으로 핫도그 판별 AI 만들기
    1) 지도 학습과는 반대로 라벨이 없는 데이터인 핫도그 사진만 수만장 기계에게 준다.
    2) 그러면 기계는 어떤 것이 핫도그인지 알아차리고 스스로 그 특징을 찾아 학습한다.

3. 딥러닝

딥러닝은 머신러닝을 달성하기 위한 방법으로 머신러닝의 하위 개념이다.
딥러닝이라고 하는 이유는 구현하는 과정에서 여러 겹으로 층을 만들기 때문이다. 즉, 여러 층으로 깊이(deep) 학습하기 때문이다.

  • 딥러닝의 대표적인 알고리즘으로는 뉴럴 네트워크(Neural Network)가 있다.

4. 머신러닝, 딥러닝을 배우는 가장 쉬운 방법

  • 파이썬
  • 텐서 플로우(Tensor Flow) :인공지능을 개발하는 도구로 가장 유명한 프레임 워크

40장. REST API

REST(Representational state transfer)란 설계 철학인데, REST 방식으로 설계한 API를 말한다.

영화 REST API를 만드는 과정으로 이해해 보자.

1단계: REST 없이 영화 API 설계하기

  • URL 설계
    • 영화 정보 생성: /createMovie
    • 모든 영화 정보 조회: /seeMovie
    • 특정 영화 정보 조회: /getMovie/avatar2

      문제점: URL에 패턴이 없고 단어를 혼용해 설계했다.

2단계: URL에서 동사 빼기

  • 명사로 URL 설계
    • 모든 영화 정보 조회: /movies
    • 특정 영화 정보 조회: /movies/avatar2

      장점: URL 단순화
      그런데 데이터 삭제나 변경하려면 URL을 어떻게 설계해야 할까?

3단계: HTTP 메서드 도입

HTTP메서드는 웹 기술로, 같은 URL로 백엔드에서 다른 처리를 할 수 있도록 일종의 갈림길을 만들어 준다.
(GET, POST, PUT, DELETE 등)

  • 하나의 URL /movies/avatar2에 아래 HTTP 메서드 사용
    • 조회 작업: GET
    • 생성 작업: POST
    • 수정 작업: PUT
    • 삭제 작업: DELETE

      장점: 기능 확장 좋아짐
      예) 아바타의 배우 정보 보기 GET /movies/avatar2/actors

4단계: 쿼리 도입하기

평점 9.8 영화 조회하려면 명사나 HTTP메서드 만으로 URL 설계하기 어렵다. 그럴 때 쿼리 파라미터를 이용하면 된다.

  • 쿼리 파라미터로 평점 9.8 영화 조회하기
    GET /movies?min+rating=9.8
  • 쿼리 파라미터로 2023년 영화 조회하기
    GET /movies?release_date=2023

41장. 도커(Docker)

아주 인기가 많은 도커! 왜 도커를 배우려고 하는지가 중요하다.

도커란?

  • 도커는 원하는 개발 환경을 도커 파일에 저장하여 준비해 준다.
  • 도커가 마련한 개발 환경은 컨테이너 형태로 존재하는데 개발에 필요한 도구를 따로 모아 준비할 수도 있고, 쉽게 복제할 수도 있다.

42장. 암호화폐

  1. 모든 코인이 가치가 있는 것은 아니다.
  2. 코인에 대해 수식어를 남발한다면 피하자.
  3. 코인, 커뮤니티 등 진짜 정보를 살피자.
  4. 탈중앙화된 코인인지 확인하자.
  5. 이론상 안전한 코인인지 확인하자.

암호 화폐 진짜 정보를 알아보는 질문 3가지

  1. 코드가 마지막으로 업데이트 된 날짜는 언제인가?
  2. 커뮤니티에 얼마나 많은 사람들이 참여하는가?
  3. 커뮤니티에서 가격만 이야기 하고 있지는 않은가?

43장. 하이브리드 앱, 크로스 플랫폼 앱, 네이티브 앱

iOS 앱, 안드로이드 앱, 즉, 모바일 애플리케이션을 만드는 3가지 방식으로 하이브리드 방식, 크로스 플랫폼 방식, 네이티브 방식이 있다.
이러한 방식으로 만든 앱을 하이브리드 앱, 크로스 플랫폼 앱, 네이티브 앱이라고 한다.

1. 하이브리드 앱

웹 사이트를 보여주는 웹 뷰이다. HTML, CSS, JS로 개발하여 iOS나 안드로이드에서 사용할 수 있다.

  • 장점
    네이티브 앱 개발 지식이 필요하지 않다.
  • 단점
    UI를 한땀 한땀 짜야 하고 스마트폰 고급 하드웨어 기능을 활용하기 어렵다.

  • 아파치 코르도바(Apache Cordova)

2. 크로스 플랫폼 앱

특정 언어로 코드를 작성하면 iOS나 안드로이드가 이해하는 네이티브 코드로 변환된다.

  • 장점
    개발자가 익숙한 코드로 한 번만 작성하면 되기 때문에 앱 하나로 iOS와 안드로이드 둘 다 사용할 수 있으므로 시간을 절약할 수 있다.
  • 단점
    네이티브 앱 성능을 아직 따라갈 수는 없다.
    • 리액트 네이티브(React Native): 리액트(React)로 코딩 -> JS로 변환 -> iOS/안드로이드에서 JS엔진으로 실행
    • 플러터(Flutter): 다트(Dart)로 코딩 -> C/C++로 변환 -> iOS/안드로이드에서 이해

3. 네이티브 앱

iOS 코드: 스위프트(Swift)
안드로이드 코드: 자바(Java), 코틀린(Kotlin)

  • 장점
    스마트폰 성능 최대로 사용 가능
  • 단점
    다른 앱에 비해 배우는데 시간이 더 걸린다.
    iOS/안드로이드 앱 배포하려면 각각 앱을 만들어야 한다.

44장. NFT

NFT는 대체 불가능한 토큰(Non Fungible Token)이다.

  • NFT의 핵심 기능
    • 돈 받는 기능
    • 돈 받고 토큰 보내는 기능

이 둘을 합쳐 스마트 계약(Smart contract)라고 한다.
스마트 계약의 대표적인 예로 코인이 있다.

NFT는 디지털 상에서 유일함을 소유할수 있게 하는 기술이다.


45장. 멀웨어(Malware)

멀웨어란 악의 있는(malicious) + 소프트웨어(software)의 합성어이다.
멀웨어에는 바이러스와 웜이 있다.

바이러스(Virus)

  • 숙주가 필요하다.
  • 파일을 내려받을 때 감염되면 그 파일이 숙주가 된다.

웜(Worm)

  • 숙주가 필요 없다. USB로도 전파될 수 있다.

  • 자기 자신을 복제하며 전파된다.

  • 사이버 무기로 사용된다.

  • 구성요소

    • 미사일
    • 페이로드

💬 오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요


REST API에 대해 확!!!실!!! 하게 이해했다.
도커가 왜 각광 받는지 알게 되었다. 도커를 사용해 보고 싶다.
모바일 애플리케이션을 만드는 방법이 이렇게 다양하다니 놀랍다.


❓ 궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.


인공지능 - 파이썬
사이버 보안은 어떤식으로 공부하면 될지

profile
Always have hope🍀 & constant passion🔥

0개의 댓글