본문 바로가기

전체 글

(121)
HTML/CSS 비디오 테두리 제거 video 태그를 활용하여 비디오를 재생할 때 테두리가 생기는 것을 볼 수 있어요. 이를 없애는 css는 매우 간단합니다. html css .player { outline: none; border: none; }
Node.js (Express) mongoose 연동 NodeJS에서 mongoose 모듈을 활용하여 mongodb를 연동해볼게요. 아주 간단해요. 이 글은 몽고DB를 연결하는 데에 목적이 있어요. (사실 연결할 때마다 구글에 검색해서 긁어오기 귀찮아서..) mongoose 모듈을 활용하여 crud하는 기능은 차후에 별도로 포스팅할 예정이에요~! mongoose 설치 npm install mongoose mongodb.js 설정 혹시 비밀번호가 있다면 mongodb://username:password@localhost:27017/demo const mongoose = require('mongoose') mongoose.connect('mongodb://localhost:27017/demo', { useNewUrlParser: true, useUnifiedT..
Node.js 패스워드 암호화 - bcrypt NodeJS에서 bcrypt로 패스워드 암호화하는 방법을 알아볼게요. bcrypt는 현업에서 많이 사용하고 있는 패스워드 암호화 알고리즘이에요. 기본적으로 salt를 추가하여 해싱하기 때문에 오래 전부터 많이 사용하는 SHA256이나 SHA512보다 보안성이 높다는 평가를 받아요. 물론 다른 알고리즘들도 어떻게 개발자가 salt를 활용하여 커스텀하게 구현하느냐에 따라 보안 강도가 달라지지만 bcrypt를 선택했다는 것만으로도 안정성을 어느 정도 보장받는다고 보시면 되요. 이제부터 NodeJS로 어떻게 평문을 bcrypt를 활용하여 암호화하고 검증하는지 코딩을 해볼게요. bcrypt 모듈을 설치 npm install bcrypt 이제 사용만 하면 되요. 일단 암호화해볼게요. bcrypt 모듈을 소스 상에서..
Node.js Logging 설정 (winston) NodeJS에서 로그를 남겨볼게요. 어떤 서버든지 실제로 서비스를 운영하려면 로그 남기는 것은 필수에요. 특히, 로그 파일만 보고 error가 정확히 어떤 파일의 몇 번째 라인에서 발생했는지 남는 것이 중요해요. 중요한 info 로그도 남길 수 있어야 해요. 예제를 통해 알아볼게요. 우선 아래 모듈을 설치해주세요. npm install winston winston-daily-rotate-file logger.js 아래 코드를 복사하여 원하는 경로에 넣어주세요. 저는 config라는 폴더를 만들어서 넣었어요. logDir 경로는 로그 파일이 저장되는 경로에요. 코드 적용하실 때에 logDir은 필수로 수정해주세요. var winston = require('winston') const winstonDaily..
Node.js exception handler - custom error Node.js에서 커스텀한 메시지를 내려볼게요. 실제로 발생하는 오류가 아닌 "비밀번호 불일치", "게시글 없음"과 같은 오류를 전달할거에요. 바로 예제로 가볼게요. Express Framework 환경이구요. 아마 에러 핸들러를 만드는 최소한의 코드일거에요. 수정하셔서 사용하시면 될 것 같습니다. 일단 custom-error, error-handler라는 파일을 만들었어요. custom-error.js class CustomError extends Error { constructor(code, message, ...params) { super(...params) if (Error.captureStackTrace) { Error.captureStackTrace(this, CustomError) } thi..
Spring Boot logback.xml 설정 logback.xml 파일을 사용해서 로깅 설정을 해볼게요. 스프링부트에서는 application.yml으로 로깅 설정이 가능하지만 할 수 있는 기능이 많지는 않아요. 그래서 실제 어느 정도 규모 있는 서비스를 운영하기 위해선 xml 파일로 설정해두는 것이 좋아요. src/main/resources 경로 밑에 logback-spring.xml 파일을 만들어주세요. 그러면 자동으로 애플리케이션을 실행할 때 파일을 읽어 설정값을 적용합니다. logback-spring.xml %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n ${filePath}/app.log ${filePath}/app.%d{yyyy-MM-dd}.%i.gz 1GB 10 %d{HH:mm:ss..
Spring Boot Logging 간단 설정 (application.yml) 아주 간단한 로깅 남기는 법이에요. 어느정도 규모가 작은 서비스는 application.yml 설정만으로도 커버할 수 있어요. 규모가 점점 커지면 logback.xml 파일로 세부적으로 설정해서 관리할 필요가 있어요. application.yml logging: file: path: /Users/hong/Logs/kotlin-spring max-size: 500MB max-history: 10 level: root: info me.hong.kotlinspring: debug 주의할 점은 logging.file.name 을 설정하면 프로젝트 루트 경로에 파일이 생기고 logging.file.path는 먹지 않아요. 이유는 자세히는 안 찾아봤어요.. 버그인지 의도한건지.. logging.file.max-si..
JavaScript 숫자 가격 표시 (천단위 콤마) 10000 -> 10,000 10000000 -> 10,000,000 요런식으로 금액에 콤마를 표기하여 보기쉽게 나타내고 싶은 경우가 있어요. 아쉽게도 아직 CSS로 표기할 수 있는 방법은 없는 것으로 알아요. JavaScript를 활용해서 천단위에 콤마를 찍어볼게요. Number.prototype.toLocalString() 사용 숫자를 특정 언어에 맞게 문자열로 변환해줍니다. var price = 10000; price.toLocaleString(); // 10,000 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString Number.prototype.toLocaleStr..