✏️기록하는 즐거움
article thumbnail

 

🏷️ 오늘 읽은 범위: Ep.39 ~ Ep.45

 


 

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


EP.39 인공지능, 머신러닝, 딥러닝, 아직도 구분하기 힘들다고?

[🏷️226p-231p]

인공지능

일반 인공지능(general AI/strong AI) 좁은 인공지능(narrow AI/weak AI)
대화, 게임이 가능하고 판단도 내릴 수 있다. 몇 가지의 한정된 영역에서만 동작한다.
지금 기술로는 일반 인공지능을 만들 수 없다. 실제 현실에서 딥러닝이나 머신러닝으로 만드는 인공지능에 속한다.

 

머신러닝 vs. 딥러닝

머신러닝 딥러닝
인공지능을 학습시키는 방법 인공지능이 학습하는 방식, 머신러닝의 한 종류
ex. 지도 학습(supervised learning),비지도 학습(unsupervised learning) ex. 뉴럴 네트워크(neural network)
지도 학습(supervised learning)
기계가 자율적으로 판단하지 않고 인간이 기계에게 준 라벨을 토대로 학습해서 대답하는 것
비지도 학습(unsupervised learning)
라벨이 없는 데이터를 주어서 기계가 스스로 판단하게 학습시키는 것

 

EP.40 REST API라니, 휴식 API인가? 이게 대체 뭐죠?

[🏷️232p-236p]

REST API

API의 한 종류로 REST(representatinal state transfer) 방식으로 설계한 API이다.

1개의 URL에 HTTP 메서드를 적용해서 데이터의 조회, 생성, 수정, 삭제 기능을 개발할 수 있다.

여기서 URL에는 동사가 아닌 명사를 사용해주어야 한다.

 

EP.41 도커가 뭐지? 왜 필요할까?

[🏷️237p-241p]

도커(docker)

개발 환경이 맞지 않은 상황 또는 개발 환경이 변경되었을 때 유연하게 대처할 수 있게 해준다.

 

도커의 문제 해결 방법

개발할 때의 운영체제가 윈도우, 구동해야 하는 서버의 운영체제가 리눅스일 때 도커는 어떻게 개발 환경을 맞출까?

  1. 윈도우와 서버에 도커를 설치한다.
  2. 도커 파일이라는 것을 생성하여 구현하고 싶은 환경 목록을 작성한다.
  3. 도커 파일을 컴퓨터(윈도우)와 서버(리눅스)에 전달하면 도커는 자동으로 그 파일을 확인하여 필요한 것을 내려받아서 설치한다.

컨테이너(container)

도커가 마련한 개발 환경은 컨테이너 형태로 존재하므로 개발에 필요한 도구를 따로 모아 준비할 수도 있고, 쉽게 복제할 수도 있다.

 

EP.42 암호화폐의 진실

[🏷️242p-246p]

암호화폐는 사용한 사람을 은행 자체로 만든다.

스스로 지갑과 키를 신중하게 관리해야 하기 때문에 암호화폐로 얻을 수 있는 큰 이득에는 자유와 책임이 따른다.

 

EP.43 하이브리드…앱? 뭐라고요?

[🏷️250p-254p]

애플리케이션을 만드는 방법

  1. 하이브리드 방식
  2. 크로스 플랫폼 방식
  3. 네이티브 방식

위 방식들을 사용한 앱들을 하이브리드 앱, 크로스 플랫폼 앱, 네이티브 앱이라 부른다.

 

하이브리드 앱

웹 사이트를 보여 주는 웹 뷰.

주소 창(내비게이션)이 없는 브라우저를 웹 뷰라고 하고, 웹 뷰로 만든 앱을 웹 앱이라고 한다.

즉, HTML, CSS, 자바스크립트로 개발한 웹 앱을 iOS나 안드로이드에서도 쓸 수 있도록 만든 앱이다.

장점 단점
네이티브 앱 개발 지식이 필요 없다. UI를 직접 짜야 한다.
  스마트폰의 성능을 온전히 활용할 수 없다.

 

크로스 플랫폼 앱

특정한 언어로 코드를 작성하면 나중에 iOS, 안드로이드가 이해할 수 있는 코드로 변환해서 만든 것

ex.

  1. 리액트 네이티브로 만든 앱 ⇒ 리액트 기반 코딩 방식 ⇒ 자바스크립트 코드로 변환 ⇒ iOS, 안드로이드가 자바스크립트 엔진으로 실행
  2. 플러터로 만든 앱 ⇒ 다트(Dart) 언어 사용 ⇒ C/C++로 변환 ⇒ C, C++ 모두 iOS, 안드로이드에서 이해할 수 있기 때문에 바로 실행된다.
장점 단점
개발자가 익숙한 코드로 한 번만 작성하면 iOS,
안드로이드 두 환경에서 실행할 수 있다.
네이티브 언어로 변환하는 과정이 있기 때문에
네이티브 앱의 성능을 따라갈 수 없다.

 

네이티브 앱

iOS는 스위프트(swift), 안드로이드는 자바(java)나 코틀린(kotlin)을 사용해서 만든 앱.

장점 단점
스마트폰의 성능을 최대로 사용할 수 있다. iOS, 안드로이드를 위한 언어를 다 배워야하고, 유지보수도 따로 해야 한다.

 

EP.44 NFT가 도대체 뭐길래?

[🏷️255p-259p]

NFT(Non Fungible Token)

대체 불가능한 토큰이다.

토큰은 이더리움(Ethereum)과 같은 블록체인으로 발행되어 ‘돈을 받는 기능’‘돈을 받고 토큰을 보내 주는 기능’스마트 계약(smart contract)이 존재한다.

토큰을 잘 활용한 예로 코인을 들 수 있다.

코인은 여러 개 있을 수 있지만, NFT는 딱 1개의 토큰만 발행할 수 있도록 스마트 계약을 만들고 그 안에 이미지를 넣은 것이다.

 

NFT 그림이 비싼 이유

유일한 원본, 진짜라는 사실이 가치를 높여 주는 것!

 

EP.45 멀웨어, 바이러스, 웜 개념 몽땅 정리

[🏷️260p-265p]

멀웨어(malware)

malicious(악의 있는) + software(소프트웨어)의 합성어

컴퓨터를 감시하거나 파괴하는 악성 소프트웨어를 의미한다.

 

바이러스(virus) vs. 웜(worm)

멀웨어에 속하는 바이러스와 웜은 복제되어 전파되지만 다른 개념이다.

바이러스
숙주가 필요하다. 자기 자신을 복제하면서 전파된다.
ex. 어떤 파일을 내려받아서 열 때 감염되었다면
그 파일이 숙주, 파일 안에 바이러스가 존재한다.
USB를 통해서도 전파할 수 있다.

 

웜(worm)

웜은 미사일과 페이로드가 필요한데 미사일을 통해 컴퓨터 안에 침투하고, 그 순간 페이로드를 배포하는 방식으로 컴퓨터를 파괴시킨다.

웜은 감염된 컴퓨터에 있다가 USB 같은 저장 장치와 연결되면 이것을 타고 다른 컴퓨터에 침투한다.

웜은 제로 데이(zero day) 취약점 때문에 백신 프로그램보다 우위에 있다.

 

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


최신 기술에 관심을 가지고 알아보려고 해도 기존 기술들을 알아가는데 벅차서 알아볼 시도를 하지 않았는데 오늘 읽은 최신 기술 챕터에서 가볍게나마 개념들을 알 수 있어서 좋았다.

특히나 도커는 많은 프로젝트에서 사용한 기술 목록에 작성되어 있는 것을 보았는데 아주 nice한 프로그램이었다는걸 다시금 깨달았다.

역시 많이 사용되는 기술에는 그만한 이유가 있다!

점점 개인 프로젝트로 적용하고 싶은 기술이 늘어난다..ㅎㅎㅎ

앞으로는 깊진 않더라도 최신 기술에 관심을 가지게 될 것 같다👍

 

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


HTTP 메서드
웹 기술을 의미한다.
같은 URL로 백엔드에서 다른 처리를 할 수 있도록 일종의 갈림길을 만들어 준다.
ex. GET(조회), POST(생성), PUT(수정), DELETE(삭제)
컨테이너(container)
도커가 준비한 프로그래밍 언어가 동작하는 환경
제로 데이(zero day)
아직 아무도 발견하지 못한 프로그램의 취약점.
어떤 프로그램을 개발할 때는 늘 취약점이 남는데 발견되는 날까지는 고칠 수 있는 시간이 아예 없는 거나 마찬가지이기 때문에 제로 데이라는 이름이 붙었다.
profile

✏️기록하는 즐거움

@nor_coding

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!