Programming
Springboot 개인정보 암복호화 저장 (3) DB에 저장하기(의외의 복병, 인코딩과 모델링)
Springboot 개인정보 암복호화 저장 (3) DB에 저장하기(의외의 복병, 인코딩과 모델링)
2020.06.27SEED 알고리즘으로 데이터를 암복호화하는 기능까지 구현했다. 이제는 암호화된 데이터를 String 형태로 DB에 저장하고, DB에 암호화된 String 데이터를 복호화하여 보여주면 된다. 이를 위해 두 가지를 진행하면 된다. 1. 암호화된 데이터를 DB에 저장할 수 있는 형태로 변환 (base64나 hex로 인코딩하여 DB에 저장) 2. 암호화된 데이터의 타입과 길이로 테이블의 컬럼 변경 (타입별로 암호화된 데이터 길이 테스트) 이전 코드의 문제점 이전에 구현했던 SEED 클래스와 테스트 코드를 다시 살펴보고 문제점을 확인해보자. public class Seed { private static final byte[] pbszUserKey = "testCrypt2020!@#".getBytes(); priv..
Springboot 개인정보 암복호화 저장 (2) 암복호화 알고리즘 - KISA 블록암호 SEED
Springboot 개인정보 암복호화 저장 (2) 암복호화 알고리즘 - KISA 블록암호 SEED
2020.06.23암호화 알고리즘을 선택하는 것은 정부 기관 KISA 인터넷진흥원에서 제공하는 표준 안내서를 참고하였다. 데이터 암호화에 대한 가이드는 다른 출처에서도 찾아볼 수 있다. 하지만 KISA의 안내서를 선택한 이유는 KISA가 공신력이 있는 기관이고, 우리나라 법률을 반영한 안내서를 제공하고 있을 것이라는 생각이어서다. 참고로 개인정보에 대한 법률 조항은 기관마다 조금씩 다른데, 이 때는 모두 충족하는 것을 원칙으로 한다. 어떤 알고리즘을 선택해야할까? 데이터의 성격에 따라 암복호화 알고리즘 유형이 다르며, 유형 내에서도 다양한 암복호화 알고리즘이 존재한다. 패스워드는 일방향(해쉬함수) 암호화, 바이오 정보는 블록암호 알고리즘을 선택하기를 권고하고 있다. KISA에서 2017년에 개정한 개인정보 암호화 안내서를..
Springboot 개인정보 암복호화 저장 (1) A-Z 과정 기록
Springboot 개인정보 암복호화 저장 (1) A-Z 과정 기록
2020.06.21이직 한 달 차, Springboot 한 달 차. 신규 프로젝트를 인수인계 받았다. springboot, Gradle, JPA로 기본적인 개발이 된 상태였고, 나는 요구사항에 따라 암복호화, 외부 API 연동, DB 모델링 변경, UI 변경을 하게 되었다. 이번 암호화 적용기를 통해 다룬 분들과 미래의 내가 더 정교하고 깔끔하게 진행하기를 바라며 경험을 공유한다. 이번 포스팅은 4-5개로 진행될 예정이고, 다음 포스팅에는 암호화 알고리즘을 어떻게 선택했는 지에 대해 말하겠다. 프로젝트 배경 간단 설명 이번에 맡게 된 디지털 헬스케어 관련 프로젝트는 환자의 건강검진 기록을 외부 병원 API에 송신하여 환자의 기대수명과 건강나이, 질병 발병률을 예측해주는 서비스이다. 환자의 건강검진 기록은 임시로 저장되며,..
JavaScript 새로운 Null 처리 방법 - Optional chaining(?.) & Nullish coalescing operator(??)
JavaScript 새로운 Null 처리 방법 - Optional chaining(?.) & Nullish coalescing operator(??)
2019.12.16자바스크립트에서 null 처리를 간결하게 하는 유용한 연산자가 추가될 예정이다. 아래 두 연산자는 포스팅 시점(2019.12)을 기준으로 TC39 proposal stage 3 단계이다. Optional chaining (?.) Nullish coalescing operator (??) Optional chaining (?.) ?. 연산자는 chaining operator( . )와 마찬가지로 객체 내부에 위치한 속성 참조 및 함수에 접근할 수 있다. 차이점이라면, ?. 연산자는 nullish(null or undefined)를 참조해도 에러 대신 undefined를 반환한다는 것이다. const user = { name: 'Alice', home: { addr: 'Seoul', contact: '02-..
자바스크립트는 정말 싱글스레드일까?
자바스크립트는 정말 싱글스레드일까?
2019.12.09자바스크립트는 싱글 스레드(Single thread) 언어라고 알려져 있다. 엄밀히 말하자면 자바스크립트의 메인 스레드가 싱글 스레드인 것이다. 하지만 크롬과 같은 웹 브라우저가 자바스크립트를 실행하는 원리를 살펴본다면 단순히 싱글 스레드 언어라고 말하기 어렵다. 이를 이해하기 위해 이벤트 루프(Event loop)와 모던 브라우저 구조를 한 번 살펴보자. 시작하기 전에 본 포스팅은 코드스피츠(CodeSpitz) 강의 내용을 정리한 글입니다. 스스로의 이해를 위해 여러 자료를 참고하여 정리하였으며, 출처는 맨 하단에서 확인할 수 있습니다. 아래 유튜브 링크를 클릭하면 녹화된 강의를 볼 수 있습니다. 코드스피츠 85회 차 None Blocking Javascript 키워드 스레드(thread) : 프로세스..
R 네이버 영화 웹 크롤링하기 #3 - [번외] 영화 리뷰 수집
R 네이버 영화 웹 크롤링하기 #3 - [번외] 영화 리뷰 수집
2017.10.23이번 내용은 1화, 2화와 관계없이 진행할 수 있습니다. (코드별 자세한 의미가 궁금하시면 1화, 2화를 참고해주세요) 네이버 영화 '쇼생크탈출'에 대해서 리뷰와 평점을 크롤링 해올게요. 네이버 영화 페이지 : http://movie.naver.com/movie/bi/mi/point.nhn?code=17421#tab [영화 리뷰의 일부] [결과값] 영화 쇼생크탈출에 대한 평점과 리뷰를 아래와 같은 형식으로 가져왔습니다 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 library(XML) library(stringr) all_reviews
R 네이버 영화 웹 크롤링하기 #2 - 영화 리뷰 키워드 수집
R 네이버 영화 웹 크롤링하기 #2 - 영화 리뷰 키워드 수집
2017.10.07전편 [R 네이버 영화 웹 크롤링하기 #1] 에 이어서 내용 계속하도록 하겠습니다. 너무 오랜만에 코드를 보니까 남이 짠 것 코드를 보는 것 마냥 새롭네요..ㅎ 전 내용에서는 '네이버 영화 랭킹 페이지'에서 1위부터 100위까지의 영화 목록을 수집했었습니다. 혹시 가공하지 않은 영화 리뷰에 대한 데이터가 필요하시다면 아래 게시글로 들어가주세요. [R 네이버 영화 웹 크롤링하기 #3 - [번외] 영화 리뷰 수집] 이번 게시글에서는 리뷰를 수집하여 가공하는 작업이 있습니다! 리뷰만 수집하시려는 분들에게는 불필요한 내용이 있어요! 이번 내용에서는 수집한 2000개의 영화에 등록된 리뷰과 평점, 특정 키워드 건수을 읽어들이겠습니다. 페이지 별로 URL의 형식이나, HTML이 구성되는 방식이 다르니까 변수 선언부..
R 네이버 영화 웹 크롤링하기 #1 - 영화 목록
R 네이버 영화 웹 크롤링하기 #1 - 영화 목록
2017.06.24R로 웹 크롤링을 할 수 있게 함수를 제공해주는 라이브러리를 이용하여 네이버를 웹 크롤링하겠습니다. 저는 네이버 영화 랭킹에 있는 영화를 대상으로 리뷰를 모두 긁어와 데이터 분석에 활용할 생각입니다. 그러기 위해서는 영화 목록을 먼저 가져와야겠죠! 이번 화에서는 네이버 영화 랭킹 페이지에 있는 영화의 목록 2000개를 가져오겠습니다. 다음 화는 [R 네이버 영화 웹 크롤링하기 #2 - 영화 리뷰 키워드 수집] 입니다^^ 가공되지 않은 영화에 대한 리뷰 정보만 필요하신 분들은 아래로 바로 넘어가주세요~ [R 네이버 영화 웹 크롤링하기 #3 - [번외] 영화 리뷰 수집] 대상이 되는 웹사이트(네이버 영화)를 선택한 후, 크롬-개발자도구를 이용하여 소스를 봅시다. http://movie.naver.com/mo..
Mac에서 R 그래프 한글 인코딩 깨짐 현상(+해결) in R
Mac에서 R 그래프 한글 인코딩 깨짐 현상(+해결) in R
2017.06.03Windows에서는 한글 깨짐 현상이 덜 하다던데 Mac에서는 한글 깨짐현상에 대한 글이 자주 보인다.Mac에서 발견된 한글 인코딩 문제로는 크게 세가지가 있다. 1. R edit 내 한글 인코딩==> Mac 터미널 기본 어플에서 아래와 같은 명령어를 수행하면 한글 인코딩 설정이 되어 한글이 깨지지 않는다.defaults write org.R-project.R force.LANG ko_KR.UTF-8 2. R에서 사용하는 그래프 라이브러리 사용 시 한글 깨짐R 인코딩도 utf-8로 맞추어놨는데 뭐가 문제인지 아래와 같이 Quartz의 한글이 'ㅁ'로 깨져서 보이는 현상이 있다. ## 1. 터미널에 접속해서 .Rprofile 파일을 찾는다.12$touch ~/.Rprofile$ open ~/.Rprofil..
[스크랩] KoNLP 만든 이의 R 시각화 논문
[스크랩] KoNLP 만든 이의 R 시각화 논문
2017.06.03R 기반의 데이터 시각화 전희원 http://freesearch.pe.kr
R에서 한글 형태소 분석을 위한 KoNLP 라이브러리 설치 in R
R에서 한글 형태소 분석을 위한 KoNLP 라이브러리 설치 in R
2017.06.03R에서 텍스트마이닝을 하기 위해서는 한글 형태소 분석 라이브러리인 KoNLP를 설치해야한다. ## 1. R에서 KoNLP 라이브러리 설치하기 (최초 1회)1> install.packages("KoNLP")cs ## 2. KoNLP 라이브러리를 사용할 때 마다 include 해준다.1> library(KoNLP)cs ## 만약 라이브러리 호출 시 아래와 같은 에러가 생긴다면 rJava를 설치해준다.1234567891011에러: package or namespace load failed for ‘KoNLP’: .onLoad가 loadNamespace()에서 'rJava'때문에 실패했습니다: 호출: dyn.load(file, DLLpath = DLLpath, ...) 에러: 공유된 객체 '/Library/Fr..
Mac에서 R 설치 & 인코딩 변환하기 in R
Mac에서 R 설치 & 인코딩 변환하기 in R
2017.06.03아래 사이트에 접속 후 R 다운로드하기http://cran.nexr.com/ OS에 맞게 다운로드할 R 버전을 선택한다.Mac OS 의 경우 'Download R for (Mac) OS X' 을 선택 후, 최종 R 패키지를 다운로드한다. 다운로드 후 한글 인코딩 설정을 위해Mac 기본 어플인 터미널에 접속하여 아래와 같이 명령어를 실행한다.defaults write org.R-project.R force.LANG ko_KR.UTF-8 끝!