개요 과거 전산실 근무 시절 인하우스 개발된 시스템을 유지보수하다가 놀란 것은 생각보다 많은 비율로 사용자의 비밀번호를 암호화하지 않은채 그대로 데이터베이스에 저장한다는 것이다. 비밀번호는 반드시 해쉬 알고리즘을 이용하여 암호화하여 저장해야 한다. 데이터베이스가 MySQL이라면 간단하게 MD5() 함수를 이용할 수 있을 것이다. 하지만 MD5 또는 SHA-1과 같은 단방향 해쉬 알고리즘은 해커의 공격으로부터 자유롭지 못하다. 현재까지 가장 안전한 해쉬 알고리즘은 BCrypt이다. 비밀번호 암호화에 특화되어 고안된 알고리즘이다. 본 글에서는 Java에서 BCrypt 해쉬 알고리즘을 이용하여 비밀번호를 보호하는 방법을 간단히 설명하고자 한다. 라이브러리 의존성 추가 /build.gradle 파일에 아래 내용..
개요 Redis는 메모리에 저장되어 운영되는 비관계형 데이터베이스로 매우 빠른 읽기, 쓰기 처리 속도 덕분에 캐시, 통계 연산 등 여러가지 목적으로 폭넓게 사용되고 있다. 본 글에서는 Windows 64-bit 운영체제 환경에서 Redis를 설치하고 실행하는 방법을 설명하고자 한다. Windows에서 Redis 설치하기 Redis는 공식적으로 Windows 버전을 제공하지 않는다. 하지만 MS Open Tech에 의해 비공식적으로 제공되는 Windows 64-bit 바이너리 파일을 다운로드할 수 있다. 여기에서 최신 버전의 바이너리 파일을 다운로드한다. 현재 3.0.503(공식 버전은 3.2까지 존재) 버전이 인스톨러(MSI) 및 압축(ZIP) 파일 형태로 제공되고 있다. Redis 서버 실행하기 다운로..
개요 웹의 시대가 열린지는 오래되었지만 REST API가 본격적으로 유행한지는 얼마 되지 않았다. 안타깝게도 국내는 비즈니스 로직 구현에만 초점을 맞추어 GET, POST 메써드의 구분 없이 API 요청을 허용한다거나(심지어 POST 요청에 쿼리 스트링을 담기도 한다.) 상태 코드를 사용하지 않고 무조건 200 응답 후 바디에 독자적인 코드를 재정의하는 등 HTTP 스펙의 권고사항을 무시한 API 개발이 너무나도 흔한 상황이다. 그럼에도 REST는 가독성, 유지보수성 등을 고려했을 때 꼭 필요한 설계 철학이다.(세계 최대의 커뮤니티 reddit 또한 REST API를 제공한다.) 이번 글에서는 이러한 REST API를 이용(소비)하는 클라이언트로서 RestTemplate의 사용 예를 설명하고자 한다. 라..
먼저 읽어볼만한 글 IntelliJ IDEA에서 Spring Boot 웹 프로젝트 생성하기 build.gradle 작업 스케쥴러 성격의 Spring Boot 프로젝트를 새로 생성할 경우 /build.gradle 파일을 아래 내용으로 교체한다. 기존 프로젝트에 적용하고자 할 경우에는 이 부분은 생략한다. buildscript { repositories { mavenCentral() } dependencies { classpath group: 'org.springframework.boot', name: 'spring-boot-gradle-plugin', version: '1.5.6.RELEASE' } } apply plugin: 'java' apply plugin: 'eclipse' apply plugin:..
- Total
- Today
- Yesterday
- 태그를 입력해 주세요.
- jpa
- MySQL
- 구동계
- DynamoDB
- jstl
- Eclipse
- Kendo UI
- 로드바이크
- 알뜰폰
- JavaScript
- Spring Boot
- jsp
- Tomcat
- bootstrap
- Kendo UI Web Grid
- chrome
- java
- node.js
- CentOS
- graylog
- 자전거
- Spring MVC 3
- 평속
- spring
- JHipster
- Docker
- 로드 바이크
- maven
- kotlin
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |