전체 글 64

[Rust For Solana] Comments

다른 언어와 마찬가지로 // 와 /* */가 쓰이면서 문서같은 것을 작성할 때 ///가 쓰이며 문서 자체에 대한 주석이 필요할 때 //! 를 사용하면 됨 이런 식으로 작성한 이후에 아래 코드처럼 실행시켜보면 해당 코드가 target/doc 에 저장되며 cargo doc --open 명령어를 입력 시 이렇게 문서가 작성되며 초록색으로 된 add_one을 클릭시 아래 화면을 바뀐다 이외에 또 다른 스타일로 //! 가 있는데 이 명령어는 주석 뒤에 오는 항목을 문섷화 하는게 아닌 주석을 포함하는 항목을 문서화한다. 4번째 줄 위로 //! 를 포함한 문서의 설명을 넣어서 다시 cargo doc --open 을 실행시켜보면 My Crate부분이 추가된 것을 알 수 있음 일단 당장 문서를 만들건 아니니까 여기까지 ..

Rust/Basics 2022.03.28

approve를 활용한 코인(USDT/테더) 빼가는 스캠 조심하는 법

우연히 오픈카톡방에서 테더로 이더리움을 채굴하는게 가능하냐는 분의 말에.. 안된다고 설명해드리면서 자초지종을 들어보니.. 테더를 예치했고 그거로 채굴이 가능한거 아니냐는 것 그러면서 한화 1200만원이 보내진 것 같다고하시는데 ?????? 알려주신 웹을 들어가보니 암튼 알려주신 곳을 들어갔는데... 정말 기대했던 것과 똑같이 지갑 연결을 유도하며 배경은 아무것도 나오지 않는다.... 지갑 연결 창을 닫으면 지갑 연결을 하고 들어오라며..... 유도를 하는데 절대 들어가지 말자. 그래도 혹시몰라 더 알려주는데 지갑을 연결해서 들어가면 웹인데도 이렇게 모바일 환경으로 짜여진 허졉한 사이트가 나온다. 이런걸 어떻게 당하느냐고 할 수 있는데 웹으로 들어가면 이렇지만 당하신분은 코인베이스 월렛을 사용하셨는데 진짜..

IT 2022.03.24

[Rust For Solana] 첫번째 프로그램

어떤 언어를 배울 떄와 마찬가지로 hello world를 만들어보자요 우리의 패키지 관리자 cargo를 통해 새로운 프로그램을 만들어달라고 부탁해보면 음 뭔가 잘 만들어진 것 같다. 안을 보면 main.rs 러스트 파일과 깃이 무시할 수 있게 만든 gitignore 그리고 Catgo.toml 설정파일이 생긴다 (toml = Tom's Obvious, Minimal Language 톰이라는 분이 만든.. 러스트 커뮤에서 많이 쓴단다) 자 이제 main.rs를 보면 엔트리 포인트는 항상 펑션의 이름(?) 으로 이름지야한다. (다시 확인해보겠음 ) fn은 느낌 오듯이 펑션을 선언하는 방식이고, 나머지는 다음에 알려주겠음. 일단 이대로 실행을 시키기 위해선 터미널에서 해당 폴더로 들어간 이후에 cargo run..

Rust/Basics 2022.03.23

[Rust for Solana] 설치 & 환경 세팅

솔라나 환경에서 스마트 컨트랙트를 작성해보기 위해 러스트를 배워보기로 했다. 우선 러스트 공홈에서 Get Started를 들어가보면 저 코드를 터미널에 넣어주시면 curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh 다 끝나고 나서 내려서 어딨는지 물어보면 이렇게 위치를 나타내준다. 그러면 설치 끝! 이후에 VSCode에서 dependencies 관리를 위해 ⌘ + ⇧ + X 누른 후 확장 프로그램 Crates 를 다운받아준다. Cargo가 Rust내에서 빌드 시스템이자 패키지 관리자이다! JS에서 npm같은 역할이라고 예상된다. 추가로 당연하듯이 러스트를 설치해줍니다! 일단은 여기까지!

Rust/Basics 2022.03.23

[JavaScript] 배열과 메서드

배열은 다양한 메서드를 제공합니다. 학습 편의를 위해 본 챕터에선 배열 메서드를 몇 개의 그룹으로 나눠 소개하도록 할게요 요소 추가-제거 메서드 배열의 맨 앞이나 끝에 요소(item)를 추가하거나 제거하는 메서드는 이미 학습한 바 있습니다. arr.push() - 맨끝에 요소 추가 arr.pop() - 맨 끝에 요소 제거 arr.shift() - 맨 앞 요소 제거 arr.unshift() - 맨 앞에 요소 추가 이 외에 요소 추가와 제거에 관련된 메서드를 알아봅시다. splice 배열에서 요소를 하나만 지우고 싶다면 어떻게 해야할까요? 배열 역시 개체형에 속하므로 프로퍼티를 지울 때 쓰는 연산자 delete를 사용해볼 수 있습니다. let arr = ["I", "go", "home"]; delete ar..

JavaScript/Basics 2022.03.22

[JavaScript] 배열

키를 사용해 식별할 수 있는 값을 담은 컬렉션은 객체라는 주료구조를 이용해 저장하는데, 객체만으로도 다양한 작업을 할 수 있습니다. 그런데 개발을 진행하다 보면 첫번째 요소, 두번째 요소, 세번째 요소 등과 같이 순서가 있는 컬렉션이 필요할 때가 생기곤 합니다. 사용자나 물건, HTML 요소 목록같이 일목요연하게 순서를 만들어 정렬하기 위해서 말이져~ 순서가 있는 컬렉션을 다뤄야 할 때 객체를 사용하면 순서와 관련된 메서드가 없어 그다지 편리하지 않습니다. 객체는 태생이 순서를 고려하지 않고 만들어진 자료구조이기 때문에 객체를 이용하면 새로운 프로퍼티를 기존 프로퍼티 '사이에' 끼워 넣는 것도 불가능합니다. 이럴 땐 순서가 있는 컬렉션을 저장할 때 쓰는 자료구조인 배열을 사용할 수 있습니다. 배열 선언 ..

JavaScript/Basics 2022.03.22

[JavaScript] 문자열

자바스크립트엔 글자 하나만 저장할 수 있는 별도의 자료형이 없습니다. 텍스트 형식의 데이터는 길이에 상관없이 문자열 형태로 저장됩니다. 자바스크립트에서 문자열은 페이지 인코딩 방식과 상관없이 항상 UTF-16 형식을 따릅니다. 따옴표 따옴표의 종류가 무엇이 있었는지 상기해봅시다. 문자열은 작은따옴표나 큰따옴표, 백틱으로 감쌀 수 있습니다. let single = '작은따옴표'; let double = "큰따옴표"; let backticks = `백틱`; 작은따옴표와 큰따옴표는 기능상 차이가 없습니다. 그런데 백틱엔 특별한 기능이 있습니다. 표현식을 ${…}로 감싸고 이를 백틱으로 감싼 문자열 중간에 넣어주면 해당 표현식을 문자열 중간에 쉽게 삽입할 수 있죠. 이런 방식을 템플릿 리터럴(template l..

JavaScript/Basics 2022.03.18

[JavaScript] 숫자형

모던 JS는 숫자를 나타내는 두가지 자료형을 지원합니다. 일반적인 숫자는 '배정밀도 부동소수점 숫자???(double precision floating pooint number)' 로 알려진 64형식의 IEEE-754에 저장됩니다. 튜토리얼 전체에서 이 형식을 사용하여 숫자를 표현할 예정입니다. 임의의 길이를 가진 정수는 BigInt 숫자로 나타낼 수 있습니다. 일반적인 숫자는 2의 53승 이상이거나 -2의 53승 이하일 수 없다는 제약 때문에 BigInt라는 새로운 자료형이 만들어졌습니다. BigInt는 아주 특별한 경우에만 사용되므로, 별도의 챕터 BigInt에서 자세한 내용을 다루겠습니다. 자, 그럼 일반적인 숫자(?)에 대해서 자세히 알아보자 숫자를 입력하는 다양한 방법 10억을 입력해야한다고 상..

JavaScript/Basics 2022.03.16

[JavaScript] 원시값의 메서드

JS는 원시값(문자열,숫자 등)을 마치 객체처럼 다룰 수 있게 해줍니다. 원시값에도 객체에서처럼 메서드를 호출 할 수 있죠. 원시값의 메서드에 대해선 곧 학습할 예정인데 그 전에, 원시값은 객체가 아니란 것을 상기하도록 합시다 원시값과 객체는 다음과 같은 차이점이 있습니다. 원시값: 원시형 값입니다.(Primitive value) 원시형의 종류는 문자열(string), 숫자(Number), bigInt, 불린(Boolean), 심볼(Symbol), null, undefined으로 총 일곱가지입니다. 객체: 프로퍼티에 다양한 종류의 값을 저장할 수 있습니다. {name: "john", age: 30}와 같이 대괄호 를 사용해 만들 수 있습니다. 자바스크립트에는 여러 종류의 객체가 있는데, 함수도 객체의 일..

JavaScript/Basics 2022.03.16

[JavaScript] 객체를 원시형으로 변환하기

obj1 + obj2처럼 객체끼리 더하거나 빼는 연산을 하면 어떻게 될까? 이 모든 경우에 자동 타입 변환이 일어나는데, 객체는 원시값으로 변환되고, 그 후 의도한 연산이 수행된다. 원시형 자료가 어떻게 문자, 숫자, 논리형으로 변환되는지만 알아봤다. 이젠 메서드와 심볼에 대한 지식을 갖췄으니 본격적으로 이 공백을 메꿔보자 객체는 논리 평가 시 true를 반환합니다. 예외없이, 따라서 객체는 숫자형이나 문자형으로만 타입 변환이 일어난다고 보면 됨. 숫자형으로의 타입 변환은 객체끼리 빼는 연산을 할 때나 수학 관련 함수를 적용할 때 일어남 객체 date끼리 차감하면(date1 - date2) 두 날짜의 시간 차이가 반환. 문자형으로의 형 변환은 대개 alert(obj) 같이 객체를 출력 하려고 할 때 일어..

JavaScript/Basics 2022.03.15