자바스크립트에서 Math 함수를 사용하지 않고도 소수점 처리를 할 수 있다. 바로 toFixed()와 toPrecision()을 사용하는 것이다. toFixed()와 toPrecision()은 숫자를 특정 자릿수로 제한하는데 사용되는 함수라는 공통점이 있다. toFixed toFixed(digits) : 숫자를 소수점 이하 digits 자릿수까지 반올림하여 문자열로 반환한다. 고정된 소수 자릿수로 포맷하며, 반환된 문자열은 지정된 소수 자릿수까지 소수점 이하의 숫자를 포함한다. const num = 3.14159; console.log(num.toFixed(2)); // 출력 결과: "3.14" console.log(num.toFixed(4)); // 출력 결과: "3.1416" console.log(n..
자바스크립트에서 소수점을 올리거나 내릴 수 있는 Math 함수들은 다음과 같다. 소수점 올림, Math.ceil() Math.ceil(x) : 주어진 숫자 x를 올림하여 반환한다. 즉, x보다 크거나 같은 가장 작은 정수를 반환한다. Math.ceil(4.2) // 결과값 : 5 Math.ceil(9.9) // 결과값 : 10 Math.ceil(-4.2) // 결과값 : -4 Math.ceil(-9.9) // 결과값 : -9 소수점 내림, Math.floor() Math.floor(x) : 주어진 숫자 x를 내림하여 반환한다. 즉, x보다 작거나 같은 가장 큰 정수를 반환한다. 음수인 경우에 소수점 아래를 내림하여 정수를 반환함. Math.floor(4.7) // 결과값 : 4 Math.floor(9.2..
기존에는 자바스크립트에서 var로 변수를 선언했지만 ES6부터 let과 const가 도입되었고, 필요에 맞게 변수를 정의·선언하는 것이 더 용이해졌다. 자바스크립트에서 var, let, const로 변수를 선언할 때, 각각의 키워드는 변수의 범위(scope)와 할당 가능성(mutability)에 대해 다른 동작을 한다. 이 점을 기억해두면서 var, let, const는 각각 무엇이 다른지 알아보자. var var는 ES5까지 주로 사용된 변수를 선언하는 키워드이다. var는 오래된 자바스크립트 코드와의 호환성을 위해서 사용하는 것이 권장되어질 정도로 오래된 방식이다. 오래되었기 때문에 여러가지 문제점들이 발견되었으며, 이 문제를 해결하기 위해 나온 것이 let과 const라고 할 수 있겠다. 1) 함수..
회사에서 자주 쓰는 단어들인데 문득 과연 나는 이 뜻을 정확하게 이해하고 있는지 궁금해졌다. 금일 금일(今日)에서 금(今)이란 이제, 지금, 오늘을 뜻하는 말이다. 즉, 금일은 지금 지나가고 있는 오늘(today)을 의미한다. 금일 3시까지 문서를 작성해주세요 → 오늘 3시까지 문서를 작성해서 달라 명일 명일(明日)에서 명(明)은 '밝을 명'으로, 날이 밝으면이라는 뜻을 가진다. 즉, 명일은 밝아오는 내일(tomorrow)를 의미한다. 명일 1시부터 회의를 시작하겠습니다. → 내일 1시에 회의 시작 작일 작일(昨日)에서 작(昨)은 '어제 작'이란 한자로, 어제(yesterday)를 의미한다. 작일부터 문의게시판을 운영하고 있습니다. → 어제부터 문의게시판 운영 여기서 응용하면 재작일이라고 표현하기도 하는..
도움되셨다면 광고 한 번씩만 눌러주세요 !! 1. 다음 중 사무실 오염물질별 관리기준으로 옳지 않은 것은? 1 초미세먼지(PM2.5) - 50㎍/㎥ 이하 2 일산화탄소(CO) - 1,000ppm 이하 3 이산화질소(NO2) - 0.1ppm 이하 4 포름알데히드(HCHO) - 100㎍/㎥ 이하 정답 : 2번 2. VDT 증후군을 예방하기 위한 조치사항으로 거리가 먼 것은? 1 손은 팔꿈치 높이로 놓이게 하고 팔걸이는 작업공간 가까이 배치한다. 2 발꿈치가 땅에 닿지 않도록, 의자 높이를 조절하여 사용한다. 3 등받이는 조절가능하고 적절한 지지대가 있는것을 사용한다. 4 모니터는 화면 상단과 눈높이가 일치하도록 맞추어 사용한다. 정답 : 2번 3.다음 중 사무실 내 카페트, 페인트, 사무용 가구, 의복, 화..
솔리디티에서는 변수가 저장되는 데이터 영역으로 크게 3가지가 있다. 각각의 데이터 영역은 사용되는 목적과 특성에 따라 다르게 사용되는데, 이 데이터 영역들의 특징을 알아보자. 설명 내용이 길면 맨 아래 요약된 글을 참고하자. Storage 솔리디티에서 storage는 블록체인에 영구적인 상태를 저장하는 영역이다. 모든 스마트 컨트랙트의 상태는 블록체인의 상태로 저장되며, 상태 변경 함수가 호출될 때마다 해당 상태의 변경 사항이 블록체인의 storage에 저장된다. contract Example { uint256 public myNumber; } 위 코드에서 myNumber는 uint256 타입의 상태 변수이다. 이 변수는 스마트 컨트랙트의 storage 영역에 저장된다. myNumber 변수는 Examp..
솔리디티에서 함수를 정의할 때 함수 옆에 붙어서 제약을 걸어주는 키워드들이 존재한다. 이 키워드를 사용하면 그 함수에 부가적인 기능을 추가할 수 있는데 키워드들을 잘 사용하면 컨트랙트의 가스 비용을 줄이거나 간편하게 제약을 걸 수 있다. view 솔리디티에서 view가 붙은 함수는 블록체인에서 상태를 변경하지 않고 값을 읽기만 하는 함수이다. view 함수는 단순히 데이터를 읽기만 하고 변경하지 않기 때문에, 다른 컨트랙트를 호출할 수 있지만 상태를 변경하는 함수는 호출할 수 없다. 따라서 view 함수는 블록체인 안에서 상태 변경이 발생하지 않으며, 실행될 때 가스비의 없이 무료로 실행된다. 다음은 view 함수의 예시이다. pragma solidity ^0.8.0; contract Example { ..
솔리디티에서 override 키워드는 솔리디티 0.6.0 버전 이후에 추가된 기능으로, 상위 컨트랙트(contract)에서 정의된 함수를 하위 컨트랙트(contract)에서 재정의(override)할 때 사용한다. 상위 컨트랙트에서 정의된 함수와 같은 이름과 형식을 갖는 함수를 하위 컨트랙트에서 정의하면, 이를 override 했다고 한다. 이때, override한 함수는 상위 컨트랙트에서 정의된 함수와 이름, 매개변수 형식, 반환값 형식이 동일해야 한다. 즉, 상속받은 함수를 덮어쓰기 위해 같은 이름, 같은 매개변수를 가진 함수를 다시 정의할 때 사용하는 것이다. 솔리디티는 override를 통해 컨트랙트 간의 상속 관계를 구현할 수 있다. override(오버라이드, 재정의) override된 함수는..
솔리디티에서 msg.sender는 가장 중요한 전역 변수(global variable) 중 하나 이다. msg.sender는 현재 스마트 계약을 호출한 계정의 주소를 나타내며, 이것을 통해 스마트 계약은 누가 트랜잭션을 실행했는지 확인할 수 있다. 예를 들어, 계약을 배포한 주소에서 트랜잭션을 호출하면 msg.sender는 배포한 계정의 주소가 된다. 또, 다른 계정에서 트랜잭션을 호출하면 msg.sender는 그 계정의 주소가 된다. 즉, msg.sender를 사용하면 스마트 컨트랙트를 실행하는 사용자 또는 다른 컨트랙트의 주소를 확인할 수 있어, 스마트 컨트랙트는 msg.sender를 기반으로 조건 분기 등의 로직을 구현할 수 있다. msg.sender는 스마트 계약 보안을 유지하기 위해 매우 중요하..
간단하게 코드를 작성하거나 파일을 오픈할때 sublime text를 이용하는데 다른 툴을 쓸때도 자동정렬 기능이 있었으니 sublime text도 있을거라 생각했는데 사용자가 직접 설정해줘야한다고 한다. 1. Sublime Text의 메뉴창을 켜서 [Preferences] > [Key Bindings]을 클릭한다. 2. 아래와 같은 창이 나타날텐데, 왼쪽은 Sublime Text의 Default 설정이고 오른쪽은 사용자 Default 설정이다. 우리는 오른쪽 창에서 수정해줘야 한다. 오른쪽 창에 아래의 코드를 넣자. [ { "keys": ["command+i"], "command": "reindent", "args": {"single_line": false} } ] 이렇게 설정하면 앞으로 Cmd + I ..