Community

개발자 99% 커뮤니티에서 수다 떨어요!

← Go back

[TIL] IT 5분 잡학사전 #13 EP.39-EP.45

#book_club
2년 전
798

오늘 TIL 3줄 요약

  • 딥러닝과 머신러닝으로 학습하는 인공지능

  • 골라 쓰는 앱 개발 방식!

  • 사이버 무기로 사용되는 멀웨어😨

TIL (Today I Learned) 날짜

2023. 12. 20

오늘 읽은 범위

EP.39~EP.45

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

인공지능

인공지능은 일반 인공지능과 좁은 인공지능으로 나눌 수 있다. 일반 인공지능(general AI)은 인간의 행동 대부분을 하거나 인간보다 능력이 더 뛰어났을 때를 말하고 좁은 인공지능(narrow AI)은 한정된 영역에서 탁월한 기능을 수행하는 정도 일 때를 말한다. 현재의 인공지능의 기술은 아직 좁은 인공지능 수준에 있다.

머신러닝 & 딥러닝?

머신러닝은 인공지능을 학습 시키는 방법이다. 기계를 학습 시켜 데이터를 인식하게 만든다. 기계를 학습시키는 방법과 기계 스스로 학습하는 방법이 있다.

  • 지도 학습 : 인간이 입력해둔 학습 대상에 대한 특징(Label)을 토대로 여러 예를 통해 학습하여 대답한다.

    음악 추천 시스템 - 내가 들은 음악 데이터로 기계에게 좋아하는 음악을 학습 시켜 호불호를 계산해 확률이 높으면 추천해준다.
  • 비지도 학습 : 라벨이 없는 수만 개의 데이터와 프로세싱 파워를 바탕으로 어떤 특징이 있는지 스스로 찾아서 학습한다.

딥러닝은 머신러닝의 하위 개념으로, 머신러닝을 달성하기 위한 방법이다. 굉장히 많은 층을 이루고 있어 층이 깊다(deep)고 표현을 하면서 딥러닝이라고 불린다.


REST API(Representational state transfer API)

  • REST방식으로 설계한 API (URL에 백엔드에 요청할 작업을 명시)

  • URL에 패턴이 없이 단어를 혼용해서 사용하면 팀원들이 의미를 헷갈려 실수가 발생한다. 코드를 대량으로 수정하는 일이 생기지 않도록 규칙을 세우자!

    • URL에서 동사를 제외한다.

    • 할 일을 명시할때는 'HTTP메서드'라는 웹 기술을 사용한다.

      HTTP 메서드 : 같은 URL로 백엔드에서 각각 다른 처리를 할 수 있도록 일종의 갈림길 역할을 함
      GET(조회), POST(생성), PUT(수정), DELETE(삭제)

      => URL한개로 여러 작업이 가능해져 URL이 단순하게 바뀐다. 기능을 확장하기에도 좋아진다.

    • 쿼리를 도입하여 쿼리 파라미터를 사용하면 특정 키워드 검색 등이 가능해진다.


도커(Docker) 사용하기

어떤 컴퓨터에서도 같은 개발 환경을 준비할 수 있도록 해주는 편리한 도구이다. 개발 환경이 맞지 않은 상황 또는 개발 환경이 변경되었을 때 대처하기 쉽다. 도커를 운영체제와 서버에 설치하고, 도커 파일이라는 것을 생성하여 구현하고 싶은 환경 목록을 적으면 도커가 파일을 확인 후 필요한 것들을 내려받아 설치한다. 여러 프로그램을 개발하여 개발 환경이 여러 종류가 있다면, 도커 컨테이너로 나누어 관리가 가능하다.

컨테이너 : 도커가 준비한 프로그래밍 언어가 동작하는 환경. 각각 서로 분리되어 있고 독립적이라 컴퓨터 하나에 여러 컨테이너가 있을 수 있다.

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


모바일 앱 개발 방식

모바일 애플리케이션은 iOS, 안드로이드 운영체제 위에서 돌아가는 앱을 말한다. 크게 하이브리드, 크로스 플랫폼, 네이티브 세 가지 방식으로 제작할 수 있다.

  • 하이브리드 방식 : 웹 앱을 모바일에서도 사용할 수 있도록 하이브리드(hybrid)로 만든 것

    웹 앱 : 웹 뷰 -주소 창(내비게이션이)이 없는 브라우저- 로 만든 앱
    ✨HCJ만 알아도 개발이 가능하다.
    💥UI를 직접 설계해야 한다.
    💥자바스크립트로는 스마트폰의 제어가 어려워 성능을 온전히 활용하지 못한다.
  • 크로스 플랫폼 방식 : 특정한 언어로 코딩해 iOS, 안드로이드가 이해할 수 있는 코드로 변환해서 만든다.

    리액트 네이티브 -> 자바스크립트 코드 변환 -> 운영체제의 자바스크립트 엔진으로 실행
    플러터/다트 -> C언어/C++ 변환 -> 실행
    ✨코드를 한 번만 작성해도 두 환경에서 실행이 가능해 시간이 절약된다.
    ✨배경이 다양한 개발자 커뮤니티가 발전해 다양한 형태의 라이브러리, 튜토리얼이 있다.
    💥네이티브 언어로 변환하는 과정이 있어서 성능에 약간 문제가 있다.
  • 네이티브 방식 : iOS/안드로이드 만을 위한 언어로 코드를 작성하여 개발한다. iOS는 스위프트, 안드로이드는 자바나 코틀린을 사용한다.

    ✨스마트폰의 성능을 최대로 사용 가능하다.
    💥각각의 운영체제를 위한 언어를 배우고, 2개의 앱을 제작해야 한다.
    💥유지·보수 작업을 따로 해야 한다.

악성 소프트웨어

멀웨어(malware) = malicious + software : 국가나 특정 기관에서 다른 국가의 핵심 시설이나 인프라를 감시하거나 파괴하기 위해 제작하는 사이버 무기이다. 가장 잘 알려진 멀웨어로는 바이러스와 웜이 있다.

바이러스 : 숙주가 필요하다. 바이러스에 감염된 파일이라면 파일이 숙주이고 파일 속에 바이러스가 들어있다.
: 자기 자신을 복제하면서 전파된다. USB를 통해서도 전파된다.

웜의 침투

웜은 미사일을 통해 컴퓨터 안에 침투하고, 그 순간 페이로드를 배포한다. USB같은 장치를 통해 이동하여 다른 컴퓨터에 침투하고, 암호화된 상태에서 스스로 암호를 해제하고 침투한 컴퓨터의 정보를 본부로 보낸다. 컴퓨터의 루트(운영체제)에 설치가 되어 백신 프로그램보다 우위에 있어 백신 프로그램이 감시하는 녀석을 볼 뿐만 아니라 조종까지 할 수 있다.

제로 데이 취약점

아무도 발견하지 못한 취약점. 발견되는 날까지 고칠 수 있는 시간이 없어 붙여진 이름이다. 엄청 희귀하고 비싸다.

스턱스넷의 위험성

  • 마이크로소프트도, 백신 프로그램을 다루는 곳에서도 모르던 제로 데이를 4가지나 가지고 있음

  • 리얼텍 회사의 에어갭(Air gap) 컴퓨터에 저장된 인증 자료로 드라이버까지 설치😱

    에어갭(Air gap) : 인터넷에 절대 연결하지 않는 컴퓨터. 중요한 자료를 주로 보관
  • 그리고 아무 일도 없었다..? => 10만 대의 컴퓨터를 감염 시키고, 특정 발동 조건을 충족하는 목표물에서만 페이로드가 배포되도록 함

    • WinCC 프로그램이 관리하는 PLC(산업 현장에 있는 기계들을 감시/제어하는 장치)중 핵 원심 분리기를 노림😱😱


암호화폐와 NFT

암호화폐는 탈중앙화되어 정부, 은행 등의 영향을 받지 않는다. 사용자를 은행 자체로 만들어 스스로가 지갑과 키를 관리하며 자유롭게 관리하지만 그만큼 관리에 대한 책임이 따른다. 주소만 알면 금융 거래 내역이 공개가 된다.

코인 사기 피하기

  1. 코인은 누구나 만들 수 있다는 사실을 기억한다.

  2. 복잡하고 어려운 표현을 사용하는 수식어 가득한 사람은 거른다.

  3. 업데이트 날짜, 커뮤니티 참여자 수, 커뮤니티 주제 등의 진짜 정보를 확인하자.

  4. 만든 곳에서 마음대로 할 수 있는 '탈중앙화'되지 않은 코인은 피하자.

  5. 가격 변동 위험성이 없는 안전한 코인을 고른다.

=> 항상 조심하자

NFT는 뭘까?

대체 불가능한 토큰(non fungible token)을 말한다. 유일한 원본임을 증명하여 소유할 수 있도록 하는 기술이기 때문에 가치를 높여 줄 수 있다.

토큰(token) : '돈을 받는 기능'&'돈을 받고 토큰을 보내 주는 기능'을 합쳐 스마트 계약 기능을 구현한 것.

예시) 코인 계약

누군가 나에게 달러를 주면, 그것을 받는다.

달러를 받고, 코인을 보내 준다.

=> 토큰을 딱 1개만 발행하도록 스마트 계약을 만들고 그 안에 이미지, 영상, 전세 계약 등등을 넣는다.

구매자는 해당 매체가 들어있는 유일무이한 토큰 단 1개를 구매할 수 있다!

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

  • 엄청난 지식들이 휘몰아쳤다...

  • 암호 화폐/NFT는 그저 코인 얘기밖에 몰랐는데 생각보다 인터넷 환경과 기술에 상당한 영향을 끼치고 있다는 것을 알게 되었다. 인터넷 콘텐츠에 대한 소유권을 주장할 수 있는 시대가 되는 만큼 공부도 해봐야겠다는 생각이 들었다.. 근데 너무 어렵따.........

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

오늘 읽은 다른사람의 TIL

  • rami님의 TIL 👀보러가기

    키워드 중심으로 요약 정리를 깔끔하게 잘 해주셨다! 예시까지bb
  • ming님의 TIL 👀보러가기

    페이지 표시까지 있어 다시 찾아보기도 좋지만, 짧고 간결하게 요약하셔서 이해가 충분히 가능하다bb
  • hwayoon님의 TIL 👀보러가기

    조금 더 깊이있는 지식과 연결해서 설명해주셔서 더 재밌고 흥미가 생긴다. bb

| ._.)b...