Community

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

← Go back

IT 5분 잡학사전 - TIL Day.13

#book_club
1년 전
622

TIL (Today I Learned) 날짜

2023-09-06(수)

오늘 읽은 범위

ep.39 ~ 45

오늘 TIL 3줄 요약

  • 인공지능(AI)은 지도/비지도 학습 방법으로 스스로 학습하여, 인간 이상의 능력을 발휘할 수 있는 시스템이다.

  • REST API는 REST 방식으로 설계한 API로, URL을 좀 더 간결하고 의미있게 설계 및 사용할 수 있다.

  • 앱을 만드는 방법은 여러가지가 존재하며, 기존 웹 기술로도 충분히 가능하다.

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

  • 일반(강한) 인공지능 : 인간의 행동을 대부분 할 수 있거나 인간보다 능력이 더 뛰어난 인공지능. 지금의 기술로는 일반 인공지능을 만들 수 없다.

  • 좁은(약한) 인공지능 : 실제 현실에서 딥러닝이나 머신러닝으로 만드는 대부분의 인공지능. 한정된 영역에서만 동작한다는 특징이 있다.

  • 머신러닝 : 인공지능을 학습시키는 방법.

    • 지도 학습 : 라벨(정답)이 있는 데이터를 토대로 학습시키는 방법. 직접 가르치는 학습.

    • 비지도 학습 : 라벨이 없는 데이터로 학습시키는 방법. 직접 가르치지 않는 학습.

    • 딥러닝 : 엄청나게 많은 층으로 구성되어 있는 머신러닝의 한 종류.

  • Python의 Tensor Flow 프레임워크를 통해 인공지능을 개발할 수 있다.

  • REST API : REST 방식으로 설계한 API.

    • URL에서 동사를 제외하여, URL이 단순하게 바뀐다. (명사만 사용)

    • HTTP 메서드를 도입하여, 기능적으로 구분 및 확장한다. (GET, POST, DELETE, PUT 등)

    • 쿼리 파라미터를 사용해 조건에 맞는 API를 불러올 수 있다.

  • 도커(docker) : 개발 환경 준비로 고생하는 사람들을 획기적으로 도와주는 도구.

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

    • 원하는 개발 환경을 도커 파일에 저장하여 준비해 준다.

    • 예를 들어 개발 컴퓨터와 서버 컴퓨터의 OS가 서로 다른 상황일 때, 문제를 해결할 수 있다. 각 컴퓨터에 도커를 설치한 후 도커 파일(구현하고 싶은 환경 목록이 적혀 있음)을 완성하고, 각 컴퓨터에 전달하면 도커가 자동으로 파일을 확인한 후 필요한 것을 내려받아서 설치한다.

  • 컨테이너 : 도커가 준비한 프로그래밍 언어가 동작하는 환경이며, 개발 환경을 컨테이너로 나누어서 관리한다.

    • 각각 서로 분리되어 있고 독립적이라서 컴퓨터 하나에 수많은 컨테이너가 있을 수 있다.

    • 컨테이너를 미리 분리해서 관리하면, 개발 환경이 갑작스럽게 변해도 쉽게 대처 가능하다.

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

  • 하이브리드 앱 : 웹 사이트를 보여주는 웹 뷰로 만든 앱이며, HCJ로 개발한 웹 앱을 iOS와 Android 둘다 사용할 수 있도록 한다.

    • 장점 : 네이티브 앱의 개발 지식이 크게 필요하지 않다.

    • 단점 : UI를 직접 한 땀 한 땀 짜야 하기 때문에 귀찮고, 스마트폰의 성능을 온전히 활용하지 못한다.

    • 하이브리드 앱을 만들고 싶다면 '아파치 코르도바'를 사용할 것.

  • 크로스 플랫폼 앱 : 특정한 언어로 코딩 후 나중에 iOS, 안드로이드가 이해할 수 있는 네이티브 코드로 변환해서 만드는 앱. (ex. React Native, Flutter)

    • 장점 : 개발자가 익숙한 코드로 한 번만 작성해도 iOS, 안드로이드라는 두 환경에서 실행할 수 있다는 장점(시간 절약)과 배경이 다양한 개발자가 한 자리에 모인다는 장점이 있다.

    • 단점 : (기술적인 한계) 네이티브 앱의 성능은 아직 따라갈 수 없다. (네이티브 언어로 변화하는 과정이 있기 때문에 성능에 조금 문제가 있기 때문.)

  • 네이티브 앱 : iOS 또는 안드로이드만을 위한 언어로 코드를 작성하여 개발한 앱이며, iOS는 스위프트라는 언어를 사용하고 안드로이드는 JAVA나 코틀린이라는 언어를 사용해서 만든다.

    • 장점 : 스마트폰의 성능을 최대로 사용할 수 있다.

    • 단점 : 다른 앱에 비해 배우는 데 시간이 2배 걸린다. (iOS와 안드로이드 앱을 각각 따로 만들어야 하기 때문.)

  • NFT(Non Fungible Token) : 대체 불가능한 토큰을 뜻하며, 유일한 원본임을 증명하는 기술.

    • 토큰 : 스마트 계약('돈을 받는 기능'과 '돈을 받고 토큰을 보내주는 기능')이 반드시 있으며, 암호화폐처럼 블록체인으로 발행하지만 단 하나 뿐인 것.

  • 멀웨어(malware) : 악성 S/W.

    • 바이러스(virus) : 숙주가 필요하며, 복제되어 전파된다.

    • 웜(worm) : 숙주가 필요하지 않으며, 자기 자신을 복제하면서 전파된다.

      웜은 미사일을 통해 컴퓨터 안에 침투하며, 그 순간 페이로드(payload)를 배포하는 방식으로 컴퓨터를 파괴시킨다.

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

  • 암호화폐 함부로 거래하지 말 것.

오늘 읽은 다른사람의 TIL

  • @blueseo : 간결한 정리에다가 예시까지 있어, 좀 더 이해하기 편했습니다.

  • @inalee : 외부 자료까지 가져와 정리가 잘 되어있고, 이른 아침부터 부지런히 하신다. 본받자. 추후에 시간나면 첫 TIL부터 정독할 예정이다.

  • @changaling : 딱 필요한 부분만 깔끔하게 정리가 잘 되어있어, 집중이 잘 됩니다.