개발자 99% 커뮤니티에서 수다 떨어요!
새로운 언어 공부하기
공식 문서 살펴보기
문법 익히기
다른 언어와 비교해서 비슷한 부분 집중해서 보기
새 언어로 직접 코딩하기
튜토리얼 해보기 - 오픈소스 프로젝트를 가져와서 튜토리얼을 참고삼아 해체 및 다시 만들기
나만의 프로젝트 만들기 - 이미 만들어봤던 주제의 프로젝트를 새 언어로 만들기
Javascript로 할 수 있는 것들
하이브리드앱, 크로스플랫폼앱, 데스크톱용 소프트웨어, 게임, 3D, 가상 현실, 증강 현실 개발, 머신 러닝
라이브러리와 프레임워크의 차이점은 제어권의 차이!
어떤 도구에 대해 내가 모든 결정을 다 할 수 있다면 그것은 라이브러리
라이브러리를 교체한다고 해서 프로젝트의 모든 것이 무너지지 않는다. 사용한 부분만 고치면 됨.
누군가 정한 규칙에 따라 도구를 사용하고 있다면 프레임워크
우리가 프레임워크의 규칙을 바꿀 수 없음.
프레임워크는 신중하게 결정해야 하지만, 그만큼 완성도가 높은 결과물을 보장함
NoSQL
SQL과 성격이 완전 다름
NoSQL Database 종류
Document DB : MongoDB → JSON Document 형태로 저장
Key-value DB : CassandraDB, DynamoDB → Column Wide
읽는 속도가 정말 빠르다는 장점이 있다
애플, 넷플릭스, 인스타그램, 우버 같은 회사가 카산드라디비 사용
듀오링고는 다이나모디비를 사용
Graph DB : 노드로 관계를 표현
페이스북이 사용
해시함수
입력값을 무작위값으로 변경해서 리턴함 → 비밀번호 시스템 구현에 적합
동일한 입력값에 대해 동일한 출력값을 가진다
입력값이 바뀌어도 출력값은 완전 다르게 바뀐다
반대로 입력한다고 해서 원래 값이 나오지 않는다. → 한쪽 방향으로 설계된 함수
레인보우 테이블 : 해시 함수가 변경한 값을 원래 값과 연결한 표 → 알려지면 위험해짐
솔트(Salt) : 무작위 테스트 → 비밀번호와 솔트를 합쳐서 해시 함수에 통과시키면 원래 비밀번호를 레인보우 테이블에서 찾을 수 없음!
선언형 프로그래밍
원하는 결과값을 선언
결과 중심으로 코드를 작성하기 때문에 실수가 적고 동료가 이해하기 쉬움
ex) replaceAll함수 이용하기
→ 모든 선언형 프로그래밍은 명령형 프로그래밍 위에 쓴다고 할 수 있음
명령형 프로그래밍
원하는 결과값에 어떻게 도달하는지 선언
할 일을 세세하게 지시할 수 있지만, 개발자가 실수하기 쉽고 동료가 이해하기 어려움
ex) replaceAll 함수 구현하기
NFT(Non Fungible Token) : 대체 불가능한 토큰
토큰의 2가지 핵심 기능 → 스마트 계약(Smart Contract)
돈을 받는 기능
돈을 받고 토큰을 보내주는 기능
토큰을 잘 활용한 예가 코인임
토큰을 딱 1개만 발행할 수 있도록 스마트 게약을 만들고 그 안에 이미지, 영상, 노래, 전세 계약 등을 넣으면 NFT가 탄생하게 됨
유일한 원본, 진짜라는 사실이 가치를 크게 높여줌
유일한 원본임을 증명하는 기술 → 인터넷 상에서 재산권을 증명하는 기술
안드로이드 공식 언어이고, 자바와 100% 호환되는 코틀린(Kotlin) 공부하기
크롬 익스텐션 (BuiltWith Technology Profiler) 설치해서 평소에 궁금했던 사이트 어떤 기술로 개발되었는지 확인해보기
클린코드(Clean Code, 저) 읽기
NoSQL Database 공부해보기
NFT에 대해 좀 더 알아보고 활용할 수 있는 방안 생각해보기, 나만의 NFT 만들어보기
운이 좋게도(?) 수술 전날 챌린지가 종료 되네요. 병원에서 독후감을 쓰고 있습니다. 지난 2주 동안 집에서도 병원에서도 책을 읽으면서 잠시나마 다른 잡 생각을 날릴 수 있었습니다. 모르던 내용들도 많아서 니꼬쌤은 어쩜 이렇게 방대하게 많은 분야들을 속속들이 알고 있는지 신기해하면서 읽어 나갔어요. 오늘 마지막으로 알게된 부분과 앞으로 더 공부해야 할 것들을 정리하니 정말 책 한 권을 알차게 봤다는 보람이 느껴집니다. 자신만의 생각을 가지고 다양하게 작성하신 다른 분들의 TIL을 보면서 많이 배웠습니다. 2주 동안 즐거웠어요!