개발자 99% 커뮤니티에서 수다 떨어요!
오늘 TIL 3줄 요약
재택근무는 자신을 통제할 수 있어야 함 → 일의 시작과 끝, 일하는 공간을 명확히 하기
네이티브앱은 스마트폰의 성능을 최대로 활용할 수 있음(각각의 OS를 위한 언어로 작성해서 개발하기 때문), 하이브리드 앱과 크로스 플랫폼 앱은 한 번의 코드 작업으로 두 환경에서 실행 가능함. 작업하는 코드가 웹 기술이면서 그대로 활용을 하는 하이브리드 앱과 달리 크로스 플랫폼 앱은 작업 코드가 네이티브 코드로 변환됨. 성능의 문제가 있을 수 있음. 하지만 잘 활용한다면 최적의 방법임.
웹 개발을 위해 어떤 과정으로 공부할 지 큰 그림을 그려라!
TIL (Today I Learned) 날짜
2023. 09. 06
오늘 읽은 범위
EP39 인공지능, 머신러닝, 딥러닝, 아직도 구분하기 힘들다고?
EP40 REST API라니, 휴식 API인가? 이게 대체 뭐죠?
EP41 도커가 뭐지? 왜 필요할까?
EP42 암호화폐의 진실
EP43 하이브리드…앱? 뭐라고요?
EP44 NFT가 도대체 뭐길래?
EP45 멀웨어, 바이러스, 웜 개념 몽땅 정리
책에서 기억하고 싶은 내용을 써보세요.
인공지능(AI, Artificial Intelligence)
일반 인공지능 : 사람처럼 행동하는 인공지능 → 현실에 없음
좁은 인공지능 : 정해진 일을 탁월하게 하는 인공지능 → 빅스비(Bixby), 시리(Siri), 알파고 등
머신러닝(ML, Machine Learning) : 인공지능을 학습시키는 방법
지도 학습(Supervised Learning)
인간이 기계에게 준 라벨을 토대로 학습
비지도 학습(Unsupervised Learning)
라벨이 없는 데이터로 학습
정답을 미리 알려주지 않고 기계는 수많은 데이터와 프로세싱 파워를 바탕으로 스스로 정답을 찾아서 학습
딥러닝 : 머신러닝을 달성하기 위한 방법, 머신 러닝의 하위 개념
코드를 묶은 것을 층이라고 하는데, 층이 굉장히 깊어서(deep) 딥러닝이라고 함
엄청나게 많은 층으로 구성되어 있는 머신러닝의 한 종류다!
배울수 있는 방법
파이썬 공부 → Tensor Flow(인공지능 개발하는 도구) 공부
REST(REpresentational State Transfer) API
REST 방식으로 설계한 API
URL에서 동사 제외하기 → URL이 단순해지고 기능 확장이 쉬움
HTML 메소드 활용하기 → 하나의 API 주소로 4가지 일을 할 수 있음
GET : 조회
POST : 생성
PUT : 수정
DELETE : 삭제
조건이 필요할 때에는 쿼리 파라미터 이용하기
도커(Docker)
어떤 컴퓨터에서도 같은 개발 환경을 준비할 수 있도록 해주는 도구
개발 환경이 맞지 않은 상황 또는 개발 환경이 변경되었을 때 유연하게 대처 가능
서로 다른 개발 환경에서 도커 적용하기
PC(윈도우)에도 서버(리눅스)에도 도커 설치하기
도커파일(Dockerfile) 생성 : 구현 환경 목록 작성
PC와 서버에 도커파일 전달 → 도커는 자동으로 파일을 확인해 필요한 것을 내려받아서 설치함
컨테이너 : 도커가 준비한 프로그래밍 언어가 동작하는 환경
여러 개발 환경을 컨테이너로 나누어서 관리할 수 있음
도커 컨테이너는 각각 서로 분리되어 있고 독립적임
어플리케이션 사용량이 증가/감소하면 컨테이너 개수를 조정하여 쉽게 관리 가능
도커와 컨테이너가 없다면 사용량이 늘어날 때마다 서버를 구매하고, 환경을 설정하는 작업을 반복해야 할 것임
암호화폐
암호화폐는 정부가 없앨 수 없음 → 없애려면 세상의 모든 인터넷을 꺼야 하는데 사실상 불가능함
거래소를 통제하는 간접적인 방법으로 규제할 수는 있음
DeFi(Decentralized Finance) : 탈중화된 금융
암호화폐는 재산을 안전하게 하는 역할을 스스로 해야 함 → 스스로 은행역할을 해야 함
진짜 암호화폐
누구나 코드를 복사해서 코인을 만들 수 있기 때문에 코인은 무조건 가치가 없음
코인의 마지막 업데이트 날짜, 커뮤니티 참여율, 커뮤니티 글의 퀄리티(가격만 얘기하고 있지는 않은지) 등을 따져봐야 함
탈중화되어 있는 코인이 진짜
이론상 안정된 코인인지 확인
하이브리드, 크로스 플랫폼, 네이티브 앱 → 모바일 어플리케이션을 만드는 방식
하이브리드앱 : 웹 앱
장 : 네이티브 앱의 개발 지식이 필요 없음
단 : 스마트폰의 성능을 온전히 활용하지 못함
크로스 플랫폼 앱 : 특정 언어가 iOS, 안드로이드 네이티브 코드로 변환된 앱
장 : 한 번의 코드 작성으로 두 환경에서 실행 가능, 배경이 다양한 개발자가 모여 다양한 라이브러리, 튜토리얼이 생겨 커뮤니티가 발전함
단 : 네이티브 앱의 성능을 따라갈 수 없음, 네이티브 언어로 변환하는 과정에 있어서 성능의 문제가 있을 수 밖에 없음
적절하게 쓰기만 한다면 크로스 플랫폼 앱 개발 방식은 최고의 선택!
네이티브앱 : 각 OS를 위한 언어로 코드를 작성해 개발된 앱
장 : 스마트폰의 성능을 최대로 사용할 수 있음
단 : iOS, 안드로이드를 위한 각각의 언어를 배워야 함, 같은 기능의 앱을 2개 만드는 시간이 필요함, 유지보수도 따로 해야 함
NFT(Non Fungible Token) : 대체 불가능한 토큰
토큰의 2가지 핵심 기능 → 스마트 계약(Smart Contract)
돈을 받는 기능
돈을 받고 토큰을 보내주는 기능
토큰을 잘 활용한 예가 코인임
토큰을 딱 1개만 발행할 수 있도록 스마트 게약을 만들고 그 안에 이미지, 영상, 노래, 전세 계약 등을 넣으면 NFT가 탄생하게 됨
유일한 원본, 진짜라는 사실이 가치를 크게 높여줌
유일한 원본임을 증명하는 기술 → 인터넷 상에서 재산권을 증명하는 기술
멀웨어(Malware), 바이러스(Virus), 웜(Warm)
멀웨어는 Malicious(악의 있는) Software의 합성어로 악성 소프트웨어
바이러스(Virus)와 웜(Warm)은 멀웨어의 종류
바이러스
숙주가 필요함
파일을 내려 받음으로써 전파됨
웜
숙주가 필요하지 않음
자신을 복제하면서 전파됨
미사일과 페이로드가 필요함. 미사일을 통해 컴퓨터 안에 침투하고 페이로드를 배포하는 방식으로 컴퓨터를 파괴시킴
웜이 컴퓨터를 파괴시키는 과정
감염된 컴퓨터에 있다가 USB 같은 저장 장치와 연결되면 이것을 타고 다른 컴퓨터에 침투함
스스로 암호를 해제차고 웜을 만들었던 본부에게 컴퓨터 정보를 보냄
컴퓨터의 루트에 설치되기 때문에 백신 프로그램보다 우위에 존재함
제로 데이(zero day) 취약점 : 어떤 프로그램의 취약점이 발견되는 날까지 고칠 수 있는 시간이 없는 것을 의미
스턱스넷(Stuxnet) : 역사상 가장 복잡하고 강력했던 사이버 무기, 웜
제로 데이 취약점을 4개 가지고 있었음
Realtek 컴퓨터 드라이버를 설치함 → 컴퓨터 드라이버는 에어갭(Air gap, 인터넷에 연결하지 않는 컴퓨터)에 저장하기 때문에 리얼텍 회사에 접근해서 해당 자료를 추출했다는 얘기임
컴퓨터 10만여대를 감염시킴
이 웜은 핵 원심 분리기에서 지멘스(Siemens) WinCC(PLC프로그램) 프로그램을 실행할 때 공격을 시작하도록 설계되어 있었음
→ 분쟁 지역의 핵 시설을 마비시키기 위함
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
나도 REST API를 휴식 API인가? 라고 생각했던 적이 있었다 ㅋㅋㅋ
나만의 NFT 만들 수 있을까?
웜 바이러스라고 말하고 있었는데, 웜과 바이러스는 각각 다른 것이었음!
더 알아보기
최대 TIL
pcn02115님 TIL : 깔끔한 정리 좋네요.
blueseo님 TIL : 예시코드를 작성해 이해가 쉬워요. (고양이 아이콘이 귀여워서 클릭하게 되네요)
inalee님 TIL : 마치 일기장을 보는 듯한 생생한 글이 인상적입니다. 제 링크 오류 알려주셔서 감사해요.