Develope 53

[Javascript]덧셈(+) 연산자 사용법

아래와 같이 조건문 안에 +를 사용하여 String에서 Number로 형변환을 시키는 코드가 있어, + 연산자의 몇가지 사용 예를 정리한다. const arry = ['1', '0']; arry.map(item => { if (+a) { ... } ... });더하기 일반적으로 사용하는 덧셈을 하도록 사용할 수 있다. 1 + 2; // 3 const a = 1; const b = 2; a + b; // 3전위, 후위 연산자 숫자를 증가시키기 위해 사용되며 전위, 후위로 사용할 수 있다. let a = 1; ++a; // 2; a; // 2; let a = 1; a++; // a; a; // 2;형변환 +을 이용하여 String을 Number 형식으로 형변환을 할 수 있다. +..

Develope/Javascript 2021.02.06

[Javascript]Tilt(~) 연산자 사용법

Tilt(~) 연산자 사용법 틸트(Tilt) 연산자를 사용하게 되면 내부적으로 32비트 정수로 변환 후 NOT 연산자를 실행한다. 9 ~9 // -10 최종적으로 2의 보수 -(n+1)와 같다. Tilt(~)를 사용하여 참, 거짓 처리 -(n+1)와 같다는 성질을 이용하여 조건문에서 Tilt(~)를 이용할 수 있다. const str = "Hello World"; if (~str.indexOf("ll")) { console.debug('참'); } else { console.debug('거짓'); } const arry = [1, 2, 3]; if (arry.findIndex(item => item === 2)) { console.debug('참'); } Tilt(~)를 두개 사용하여 비트 잘라내기 Ti..

Develope/Javascript 2021.02.03

NVM을 이용하여 Node.js 버전 변경 또는 관리하기

NVM을 이용하여 Node.js 버전 변경 또는 관리하기 프로젝트를 진행하다 보면 가끔식 호환이 되지 않는 경우가 발생해 Node.js 버전을 통일시켜 사용해야한다. 그때마다 특정 버전을 설치하여 사용하기에는 비효율적이므로 NVM을 통하여 사용하고자 하는 버전으로 변경시켜 사용한다. NVM 설치하기 Unix, Linux Unix, Linux 환경에서는 cURL, Wget를 사용하여 설치할 수 있다 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash 설치를 위한 자세한 과정..

Develope/Node.js 2021.01.27

점진적 향상법, 우아한 성능저하법

점진적 향상법, 우아한 성능저하법 점진적 향상법 구식 기술 환경에서 동작할 수 있는 기능을 구현하고, 최신 기술을 사용할 수 있는 환경에서는 더 나은 사용자 경험을 제공할 수 있는 최신 기술을 제공하는 방법이다. 즉, 구식 환경에서도 충분히 서비스를 사용할 수 있고, 최신 환경이라면 더 나은 기능들을 사용할 수 있도록 만드는 것이다. 우아한 성능저하법 최신 기술을 기반으로 기능을 구현한 뒤, 구형 기술을 기반한 환경에서도 유사하게 동작하도록 만드는 방법이다. 최신 브라우저에서는 100만큼의 기능을 제공하고, 구식 브라우저에서는 50 정도의 기능만을 제공하게 제작하는 방법이다.

Develope/기타 2021.01.14

[Javascript]Truthy, Falsy

Javascrript에서 모든 값은 다음 둘 중 하나의 값을 갖는다. Boolean으로 강제로 형변환하면 false가 되는 값 이를 제외한 나머지의 값 Boolean 으로 강제로 형변환시 false의 값을 가지게 되는 값들은 아래와 같다. false 0 -0 0n "" null undefined NaN 위의 값과 같이 강제로 형변환시 false의 값을 가지게 되는 경우를 falsy 그 외의 경우를 truthy라 한다. 참고 자료 https://developer.mozilla.org/ko/docs/Glossary/Truthy

Develope/Javascript 2021.01.13

Recoil - Cannot update a component (`Batcher`) while rendering a different component 에러에 대하여

Recoil 상태 관리 라이브러리 적용해보는 중에 해당 에러가 발생하였습니다. Cannot update a component (`Batcher`) while rendering a different component ...recoil에서 Batcher라 불리는 컴포넌트를 통하여 RecoilRoot 컴포넌트 내에 있는 값들을 대체하도록 되어있는데, 이러한 내용이 react v16.13.0부터 anti-pattern으로 warning 메시지를 출력하도록 설정되었다는 내용입니다. 2020-07-08 현재까지도 해당 경고 메시지가 발생하며, 해당 메시지가 불편할 경우 v16.12으로 downgrading하여 사용해야할 것 같습니다. 2020-07-02 현재 해당 이슈는 github에 이슈에 보고되어져 있으며, 좀..

Develope/React 2020.07.02

[Javascript]파일 용량 byte 단위 계산

파일용량 표시하기 위해 파라미터 값에 숫자를 입력시 byte 단위로 계산하여 출력하는 함수입니다. function formatByteSizeString(bytes, decimals = 2) { if (bytes === 0) { return '0 Byte'; } const k = 1000; const dm = decimals; const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']; const i = Math.floor(Math.log(bytes) / Math.log(k)); return `$..

Develope/CodeLab 2020.06.30

[Jackson]UnrecognizedPropertyException 발생 원인 및 해결책

Jackson Annotations을 사용하며 아래와 같은 에러가 발생하였습니다. com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "paper_title1" 해당 에러는 JSON 데이터에는 특정 property가 존재하나, Class에는 해당 field가 존재하지 않아서 데이터를 맵핑시키지 못하여 발생하는 현상입니다. 해결책 Class 단위에서 해결하는 방법 Class에 @JsonIgnoreProperties를 선언하여 무시하도록 처리합니다. @JsonIgnoreProperties(ignoreUnknown = true) public class A { ... }ObjectMapper에서 Unknown F..

Develope/Java 2020.06.30

[Javascript]올림, 내림, 반올림과 같은 수학적 처리를 위한 Math 객체

자바스크립트(Javascript)는 올림, 내림, 반올림과 같은 수학적 처리를 위하여 Math 내장 객체를 제공합니다. 또한 Math는 Number 자료형만 지원하며 ES2020에서 추가된 BigInt와는 사용할 수 없습니다. Math는 다음과 같은 상수와 메서드를 제공합니다. 메서드 Math는 정말 많은 수학적 메서드를 제공합니다. 여기서는 모든 메서드를 설명하지 않고 주로 사용하는 메서드만을 설명하겠습니다. Math.abs(x) x의 절댓값을 반환합니다. Math.abs(-1) // 1 Math.abs(1) // 1 Math.ceil(x) x보다 크거나 같은 수 중에서 가장 작은 정수를 반환합니다.(올림 처리) Math.ceil(1.234) // 2 Math.ceil(1.567) // 2 Math.f..

Develope/Javascript 2020.06.29