2021/01 4

Thymeleaf - 표준 표현식

${...} : Variable expressions - OGNL 표현식, 스프링환경에서는 Spring EL ${shop.product.name} *{...} : Selection expressions - 변수 표현식과 동일하지만, 전체 컨텍스트 맵이 아닌 이전에 선택한 객체가 기준이됨 *{product.name} ... ... ... #{...} : Message (i18n) expressions - .properties 같은 파일에서 값을 읽어 표현 할 수 있다. Spring 환경에서는 MessageSource과 통합됨 (docs.spring.io/spring-framework/docs/4.3.30.RELEASE/spring-framework-reference/htmlsingle/#context-fu..

Spring 2021.01.27

Node.js - File system

파일목록 읽기 ( fs.readdir ) const fs = require('fs') fs.readdir('/file', (err, data) => { if (err) { console.error(err) } else { console.log(data) } }) const fs = require('fs') - fs 모듈 사용 readdir(path[, options], callback) - 비동기로 디렉토리안의 파일들 이름을 읽음 path | | - 파일 경로 options | - 옵션 encoding Default: 'utf8' - 문자열 인코딩 방식 withFileTypes Default: false - true일 경우 파일들이 fs.dirent 객체로 반환됨(참고) callback - 콜백 err ..

Node.js 2021.01.21

정확한 계산이 필요할 땐 float와 double은 피하자

정확한 계산이 필요할 땐 float와 double은 피하자 float와 double 타입은 과학과 공학 계산용으로 설계되었다. 이진 부동소수점 연산에 쓰이며, 넓은 범위의 수를 빠르게 정밀한 '근사치'로 계산하도록 세심하게 설계되었다. 따라서 정확한 결과가 필요할 때는 사용하면 안되며, 특히 금융 관련 계산과는 맞지 않는다. 0.1 혹은 10의 음의 거듭 제곱수를 표현할 수 없기 때문이다. 예를 들어 주머니에 1.03 달러가 있는데 그중 42센트를 썼다고 해보자, 남은 돈을 얼마인가? 다음은 어설프게 작성한 코드다 System.out.println(1.03 - 0.42); 안타깝게도 이 코드는 0.6100000000000001을 출력한다. 이는 특수한 사례도 아니다. 이번에는 1달러가 있는데, 10센트짜..

Java 2021.01.18

지역변수의 범위는 최소화하자

지역변수의 범위를 최소화하라 제목의 내용은 '클래스와 멤버의 접근 권한을 최소화하라'와 비슷하다. 지역변수의 유효 범위를 최소로 줄이면 코드 가독성과 유지보수성이 높아지고 오류 가능성은 낮아진다. C와 같이 역사가 깊은 프로그래밍 언어 중에는 지역변수를 코드 블록의 첫머리에 선언하는 경우가 많고, 이 방식을 습관처럼 따르는 프로그래머도 있다. 하지만 자바에서는 문장을 선언할 수 있는 곳이면 어디서든지 선언할 수 있다.(C도 C99 표준부터는 변경되었다.) 지역변수의 범위를 줄이는 가장 강력한 기법은 가장 처음 쓰일 때 선언하기다. 미리 선언부터 해두면 변수를 실제로 사용하는 시점엔 타입과 초기값이 기억나지 않을 수도 있다. 그리고 거의 모든 지역변수는 선언과 동시에 초기화해야 한다. 초기화에 필요한 정보..

Java 2021.01.05