노마드코더 챌린지/노개북 - IT 5분 잡학사전

[북클럽][TIL] <IT 5분 잡학사전> - Day 13. 최신 기술

엘레나림 2024. 4. 24. 17:40
728x90

오늘 읽은 범위

  • 마당 5. 최신 기술 편 ep39 ~ 45

 

책에서 기억하고 싶은 내용

  • ep39 : 인공지능, 머신러닝, 딥러닝
    • 인공지능 = AI(artificial intelligence)
    • 사람처럼 행동하거나 혹은 더 뛰어난 일반 인공지능(general AI, strong AI) 은 아직 현실에 존재하지 않음. 
    • 한 가지만 잘하는 좁은 인공지능(narrow AI, weak AI) 이 대부분. 한정된 영역에서만 동작한다는 특징. 얼굴 인식, 음성 인식 기술에 탑재.
    • 머신러닝 = 인공지능을 학습시키는 방법
      • 지도 학습 (supervised learning) : 몇 가지 특징(라벨)을 통해 무엇인지 여러 케이스로 학습시키는 방법. 인간이 기계에게 준 라벨을 토대로 학습해서 대답. 추천 시스템에 사용 (내가 좋아할지 싫어할지 계산해서 확률이 높은 것을 추천해줌)
      • 비지도 학습 (unsupervised learning) : 라벨이 없는 데이터 수만 개와 엄청난 프로세싱 파워를 바탕으로 스스로 그 특징을 찾아서 학습하는 방식. 직접 가르치치 않고 스스로 학습해서 대답,
    • 딥러닝 = 많은 층으로 깊이(deep) 학습하게끔 구성되어 있는 머신러닝의 한 종류
    • 머신러닝을 배우려면 가장 유명한 머신러닝 프레임워크인 텐서플로(tensor flow)! ㄱㄱ

 

  • ep40 : REST API
    • REST(representational state transfer) 방식으로 설계한 API
      • 일관된 단어 사용
      • 동사는 삭제. 명사만 사용
      • HTTP 메서드 GET(조회), POST(생성), PUT(수정), DELETE(삭제) 를 활용 -> url 단순화, 기능 확장성
        cf) HTTP 메서드 : URL로 백엔드에서 다른 처리를 할 수 있도록 일종의 갈림길을 만들어줌
        • ex) GET /movies/inception/actors : 영화 인셉션의 배우 정보를 조회
      • 필터링 하고싶다면 쿼리 파라미터 도입
        • ex) GET /movies?min+rating=9.0 : 평점 9.0 이상인 영화를 조회

 

  • ep41 : 도커
    • 도커(Docker) : 어떤 컴퓨터에서도 같은 개발 환경을 준비하도록 하는 도구. 도커 설치 후 구현하고자하는 환경, 버전 등의 목록이 적힌 도커 파일을 생성. 어떤 컴퓨터에서든 해당 도커 파일을 확인하여 동일하게 설치됨
    • 컨테이너 : 각각 분리되어 있고 독립적으로 동작하는 환경.
      컴퓨터 1대에 여러 개발 환경이 만들어져 수많은 컨테이너가 존재할 수 있음. 미리 분리해서 관리하면 특정 환경에서 개발 중인 애플리케이션의 사용량에 따라 컨테이너 갯수를 줄이거나 늘리기 편함. (도커 & 컨테이너가 없다면, 매번 서버를 구하고 개발 환경 재설정하고 재시작하는 등 반복 작업이 수반될 수 밖에 없음)

 

  • ep42 : 암호화폐
    • 정부는 승인된 거래소에서만 암호화폐를 살 수 있게 하여 암호화페 구매자를 관리할  수는 있으나, 구매한 이후 암호화폐의 행방 알 수 없음. 즉, 암호화폐로 얻은 수익에 대한 과세 불가능. 
    • 암호화폐는 사용자를 은행으로 자체로 만들고, 지갑과 키를 잃어버리지 않게 사용자 스스로 관리해야하는 책임이 따름. 
    • 암호화폐 세상에서는 주소만 알면 금융 거래 기록이 모두 공개됨
    • 익명성이 보장되어 사기를 당하기 쉬움!
      • 모든 코인이 가치있는 것은 아님. 수식어가 많은 사람의 코인은 가치가 없을 확율 높음.
      • 탈중앙화된 코인인지 확인. 탈중앙화되지 않았다면 코인을 만든 곳에서 언제든지 마음대로 할 수 있는 위험한 코인.
      • 마지막 코드 업데이트일이 오래되지 않아야 함.
      • 커뮤니티에서 참여는 하지않고 가격에 대한 언급만 있는 경우 pumps and dumps 가능성 있음. (pumps and dumps: 가격만 올려서 팔고 도망가는 것)
      • 이론상 안전한 코인을 골라라. 스테이블 코인 (stable coin) -> 다른 자산에 코인 가치가 연결되어 가격 변동이 거의 없음

 

  • ep43 : 하이브리드 앱
    • iOS, 안드로이드 운영체제 위에서 돌아가는 앱을 만드는 방식은 하이브리드 방식, 크로스 플랫폼 방식, 네이티브 방식
    • 하이브리드 앱
      • 웹 뷰(브라우저의 윈도우 부분)로 만든 앱 = 웹 앱 = HTML, CSS, 자바스크립트로 개발된 영역
      • 웹 앱을 iOS, 안드로이드에서 쓸 수 있도록 하이브리드로 만들어진 것
      • 장점: 네이티브 앱 개발 지식이 따로 필요 없음
      • 단점: UI를 직접 다 짜야함. 자바스크립트로는 스마트폰 제어가 한정적임.
      • 아파치 코르도바(Apache Cordova)
    • 크로스 플랫폼 앱
      • 특정 언어로 코딩하면 나중에 iOS, 안드로이드가 이해할 수 있는 코드로 변환.
      • 리액트 네이티브(React Native) : 리액트 방식으로 코딩하면 자바스크립트로 변환되고, 변환된 코드를 iOS/안드로이드는 자바스크립트 엔진으로 실행
      • 플러터(Flutter) : 다트(Dart) 라는 언어로 코딩하면 C/C++로 변환되고, iOS/안드로이드에서 이해하고 바로 실행됨.
      • 장점: 익숙한 코드로 한 번만 작성해도 iOS, 안드로이드 환경에서 실행됨. 한 번에 2개 앱을 만들 수 있음!
        다양한 개발자들이 모여 다양한 형태의 라이브러리, 튜토리얼 생김
      • 단점: 느리진 않지만, 네이티브 앱의 성능 따라가기 어려움.
    • 네이티브 앱
      • iOS, 안드로이드 각 운영체제만을 위한 언어로 개발. iOS는 Swift, 안드로이드는 자바나 코틀린을 사용
      • 장점: 스마트폰의 성능을 최대로 사용
      • 단점: 배우는 시간 소요. 개발과 유지 보수도 각각 따로 해주어야 함.

 

  • ep44 : NFT
    • NFT(non fungible token), 대체 불가능한 토큰
    • 토큰은 블록체인으로 발행. 핵심 기능인 스마트 계약이 반드시 구현되어야 함.
      • 스마트 계약 = 돈을 받는 기능 + 돈을 받고 토큰을 보내주는 기능
    • 토큰을 잘 활용한 예 = 코인
    • 코인은 여러 개 있을 수 있고 화폐처럼 쓰이기도 하지만, 토큰을 1개만 발행할 수 있도록 스마트 계약을 만들고 그 안에 이미지를 넣으면 NFT의 개념이 됨 -> 대체 가능한 토큰 : 암호화폐(탈중앙화)와 대체 불가능한 토큰 : NFT
    • 유일한 원본이라는 사실이 높은 가치가 됨. 유일하다는 것을 증명하는 기술 NFT
    • 역사적인 사건 또는 팬이라면 유일한 것을 소유하고 싶어하는 욕구. 디지털 속에 유일함, 소유권이라는 개념이 생김 -> 모든 것을 판매할 수 있어 산업에 큰 변화 생길 것! NFT 전시용 디스플레이, NFT 콘서트 티켓 등

 

  • ep45 : 멀웨어, 바이러스, 웜
    • 멀웨어(malware) = malicious(악의 있는) + software : 악성 소프트웨어
    • 사이버 무기인 멀웨어는 국가/특정 기관에서 만들어서 다른 국가를 감시하거나 파괴하려는 목적으로 제작됨. 바이러스, 웜은 복제되어 전파되는 멀웨어.
    • 바이러스(virus) : 숙주 필요. 감염된 파일을 내려받아 바이러스에 감염되면, 그 파일이 숙주. 바이러스는 그 파일 안에 들어 있음.
    • 웜(worm) : 숙주 필요없음. 자기 자신을 복제하며 전파
      • 미사일(missile) & 페이로드(payload) 필요
      • 미사일을 통해 웜이 컴퓨터 안으로 침투. 그 순간 페이로드를 배포 -> 컴퓨터 파괴

 

오늘 읽은 소감은? 떠오르는 생각들

  • 암호화폐에 대해서 아무것도 몰랐는데, 재밌는 사실들을 많이 알았고 흥미로웠다
  • 앱은 안드로이드만 다뤄봤었는데, ios 네이티브, 하이브리드 등 모바일 개발도 한번 해봐야겠다!
  • 대충 알고있던 개념들이 확실히 정리되는 날이어서 아주 뿌듯하다 ㅎㅎ
  • 내일까지만 더 힘내보자! 더 이상 과제 미제출하면 바로 눈앞에서 챌린지를 놓친다ㅠㅠ

 

궁금한 내용 또는 잘 이해되지 않는 내용

  • 보안 쪽은 어렵다.... 웜 이해 못함.. 복습 때 다시 정리해보도록 하자!

 

N줄 요약

- 인공지능은 사람처럼 행동할 수 있는 기술. 인공지능을 학습시키는 방법은 지도 학습 머신러닝, 비지도 학습 머신러닝이 존재함. 딥러닝은 머신러닝 종류. 

- HTTP 메서드 GET/POST/PUT/DELETE 와 쿼리를 활용하여 REST API 설계

- 도커는 원하는 개발 환경을 도커 파일에 저장하여 준비하고, 만들어진 개발 환경은 컨테이너 형태로 존재

- 하이브리드 앱은 웹 앱을 하이브리드로 만든 것, 크로스 플랫폼 앱은 특정 언어가 나중에 변환되는 방식, 네이티브 앱은 운영체제에 맞는 언어로 만들어진 앱

- 암호화페, NFT, 사이버 무기 개념 정리

 

 

오늘의 2번째 과제 : 나의 최애 북틸

https://coding-with-jina.tistory.com/248

- 블로그에 보기 좋게 정리하시고, 챗gpt를 활용해서 추가로 적어놓으신 부분이 좋았다

 

https://nomadcoders.co/community/thread/9767

- 이번 회차에서 가장 성실하게 북틸 작성해주신 것 같아서 자극이 많이 되었다! 

 

https://nomadcoders.co/community/thread/9663

- 마지막 챕터를 작성한 분들의 북틸을 다 읽어보았는데, 제일 잘 정리되었다