개발자 99% 커뮤니티에서 수다 떨어요!
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 : 딱 필요한 부분만 깔끔하게 정리가 잘 되어있어, 집중이 잘 됩니다.