이번에는 Spring Boot 웹 프로젝트 튜토리얼을 제작해보겠습니다. 프레임워크 중에서도 가장 어렵고 하기 싫었던 녀석이었는데, 이번에 Spring을 알아야 할 일이 생겨서 공부를 시작했어요. 이 과정을 마치면 다음에는 Spring Boot 로 Restful API 서버 튜토리얼도 만들어보겠습니다. HTML 템플릿으로는 Thymeleaf 를 사용합니다. Spring에서 강력하게 추천하는 템플릿입니다. 그만큼 가장 좋습니다. DB 접근은 MyBatis를 사용하고 일반 SQL이 아닌 Procedure를 사용할 것입니다. 설치할 DBMS는 MriaDB 인데, MySQL을 대신하셔도 되겠습니다.
정보통신망법, 개인정보보호법 등에 의하면 비밀번호는 단방향암호화(SHA256 등), 개인정보는 양방향암호화(AES256 등)를 하도록 되어 있습니다. 지금까지 작성한 예제는 이런 법에 맞지 않아서 서비스할 수 없겠네요. 여기에서는 비밀번호의 단방향 암호화를 구현해보도록 하겠습니다. SHA256을 적용하겠습니다. Spring에서는 아무런 작업을 하지 않고, DB(MySQL)에서만 작업을 하겠습니다.
3. 저장프로시저(SP_INSERT_ADMIN, SP_UPDATE_ADMIN_PASSWORD)에 SHA256을 적용하여 다시 생성합니다.
CREATE PROCEDURE SP_INSERT_ADMIN
(i_userid VARCHAR(255),
i_password VARCHAR(255),
i_nick VARCHAR(255))
BEGIN
INSERT INTO TB_ADMIN(userid, password, nick) VALUES(i_userid, SHA2(i_password, 256), i_nick);
END
CREATE PROCEDURE SP_UPDATE_ADMIN_PASSWORD
(i_id INT,
i_password VARCHAR(255))
BEGIN
UPDATE TB_ADMIN SET password = SHA2(i_password, 256) WHERE id = i_id;
END