개발자 99% 커뮤니티에서 수다 떨어요!
오늘 TIL 3줄 요약
인공지능, 머신러닝, 딥러닝 구분
모바일 애플리케이션을 만드는 방법 3가지 하이브리드 방식(앱), 크로스 플랫폼 방식(앱), 네이티브 방식(앱)가 있다.
도커는 어떤 컴퓨터에서도 같은 개발 환경을 준비할 수 있도록 해주는 도구이다.
TIL (Today I Learned) 날짜
2023.12.20
오늘 읽은 범위
EP.39 ~ EP.45
책에서 기억하고 싶은 내용을 써보세요.
AI : 인공지능
좁은 인공지능과 일반 인공지능으로 나뉨
일반 인공지능 : 인간의 행동을 대부분 할 수 있거나 인간보다 능력이 더 뛰어 났을 때를 말함
좁은 인공지능 : 몇 가지 일만 할 줄 알지만 그것을 탁월하게 잘함
딥러닝이나 머신러닝으로 만드는 인공지능은 대부분 좁은 인공지능
머신러닝과 딥러닝은 인공지능이 학습하는 방식 또는 인공지능을 학습시키는 방식을 말함
지도 학습 : 사물의 특징을 머신러닝에서는 라벨(label)이라고 하는데, 기계 자율로 판단하지 않고 인간이 기계에게 준 라벨을 토대로 학습해서 대답하는 것
비지도 학습 : 라벨이 없는 데이터를 주고 기계에 정답을 미리 알려주지 않고 사진 수만 장과 프로세싱을 바탕으로 스스로 그 특징을 찾아서 학습
딥러닝 : 엄청나게 많은 층으로 구성되어 있는 머신러닝의 한 종류
딥러닝이라고 하는 이유는 실제로 구현하는 과정에서 여러 겹으로 층을 만들기 때문
머신러닝 :인공지능을 만드는 데 필요한 방법
REST API : REST 방식으로 설계한 API
REST의 본질은 어떤 설계 규칙
단어를 혼용해서 API를 설계하면 x
동사를 사용하면x
동사를 사용하지 않으면 URL이 단순하게 바뀌고 기능을 확장하기 좋아진다는 장점이 있음
HTTP 메서드 도입
URL로 백엔드에서 다른 처리를 할 수 있도록 일동의 갈림길을 만들어 주는 녀석
대표적으로 GET(조회), POST(생성), PUT(수정), DELETE(삭제)가 있음
쿼리 도입하기
명사나 HTTP 메서드만으로는 설계가 어려울 때 쿼리 파라미터 사용
도커(docker) : 어떤 컴퓨터에서도 같은 개발 환경을 준비할 수 있도록 해주는 도구
원하는 개발 환경을 도커 파일에 저장하여 준비해 준다.
컴퓨터에서 여러 프로그램을 개발할 때 필요한 여러 종류의 개발 환경들을 컨테이너로 나누어서 관리해줌
도커가 준비한 프로그래밍 언어가 동작하는 환경을 컨테이너라고 함
도커 컨테이너는 각각 서로 분리되어 있고 독립적이라서 컴퓨터 하나에 수많은 컨테이너가 있을 수 있음
암호화폐
정부가 규제할 수 없지만, 거래소를 통제하는 간접적인 방법으로는 규제 가능
암호화폐는 사용한 사람을 은행 자체로 만듦
재산을 안전하게 보관하는 역할을 우리 스스로 해야 함
모든 정보가 공개되기 때문에 개인 정보 보호 문제가 있음
모바일 애플리케이션
하이브리드 방식(앱), 크로스 플랫폼 방식(앱), 네이티브 방식(앱)이 있음
하이브리드 앱 : HTML, CSS, JavaScript로 개발한 웹 앱을 모바일에서도 쓸 수 있도록 하이브리드로 만들어 앱을 판매하는 곳으로 보내는 것
주소창(네비게이션)이 없는 브라우저
장점 : 네이티브 앱의 개발 지식이 크게 필요하지x
단점 : UI를 한 땀 한 땀 짜야 하고, 스마트폰의 고급 하드웨어 기능을 활용하기 어려움
크로스 플랫폼 앱 : 특정한 언어로 코딩하면 나중에 네이티브 코드로 변환됨
장점 : 코드를 한 번만 작성해도 iOS, 안드로이드 두 환경에서 실행 가능
단점 : 네이티브 언어로 변환하는 과정이 있어서 성능에는 조금 문제가 있을 수밖에 없음
네이티브 앱 : iOS만을 위한, 안드로이드만을 위한 언어로 코드를 작성하며 개발
장점 : 코드와 스마트폰 사이에 중간 단계가 하나도 없이 연결되어 있어서 스마트폰의 성능을 최대로 사용할 수 있음
단점 : iOS, 안드로이드를 위한 언어를 모두 배워야 하고, 같은 앱을 만들어도 2개의 앱을 만드는 시간이 필요하며 유지, 보수도 따로 해야 함
NFT : 대체 불가능한 토큰, 유일한 원본임을 증명하는 기술
토큰 : 이더리움과 같은 블록체인으로 발행
'돈을 받는 기능'과 '돈을 보내 주는 기능'이 반드시 있어야 함
위 두 기능을 합쳐서 스마트 계약이라고 함
토큰을 잘 활용한 예는 코인이 있다.
멀웨어(malware) : 악성 소프트웨어, 컴퓨터를 감시하거나 파괴함
바이러스(virus)와 웜(worm)이 가장 많이 알려져 있음
바이러스 : 숙주가 필요함, 어떤 파일을 내려 받아서 열 때 감염되었다면 그 파일이 숙주
웜 : 숙주 필요x, 자기 자신을 복제하면서 전파됨
미사일(missile)과 페이로드(payload)가 필요
미사일을 통해 컴퓨터 안에 침투하고, 그 순간 페이로드를 배포하는 방식으로 컴퓨터를 파괴
미사일은 컴퓨터 아주 깊은 곳까지 들어갈 수 있어서 페이로드보다 더 위험함
제로 데이(zero day) : 아직 아무도 발견하지 못한 프로그램의 취약점
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
모바일 애플리케이션을 만드는 방법 3가지에 대한 장단점을 알게 되었다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
멀웨어, 바이러스, 웜 각각의 개념은 이해가 되지만 뒤쪽에 나오는 스턱스넷부분부터는 이해가 잘 되지 않는 것 같다.
최애틸
hwayoon님의 TIL (https://nomadcoders.co/community/thread/8916)
각 챕터별로 깔끔하게 정리를 잘 해놓으신 것 같다.