[JAVA] 공백제거와 미제거의 md5 차이에 대해서.

기술적인 것은 아니기 때문에 너무 큰 기대를 하진 마시길 바라며 쓴다. 일단 md5 키를 추출하는 방법은 이전 포스팅에서도 언급했었다. (링크) 최근에 md5에 대한 또 다른 생각이 있어서 이글을 쓰게 된다. 이전에는 캐쉬를 하기위한 키 값 데이터 추출에 사용했었는데, 최근에 어떤 내용의 중복여부를 체크 하기 위한 도구로 사용하기도 했었다. 그런데 그 과정에서 문자열 데이터의 공백 여부에 대해서 전처리가 필요하다는 것을 알게 되었다.

예를 들어,

UML 다이어그램  
UML다이어그램  

이라는 가운데 공백외에 다른 문자들은 다 똑같은 문자열이 있다고 가정하자.

이럴때 md5는 어떻게 추출을 해줄까?

661c10fedaade965259c2e653afcdb7

56737a844b2feb97ba81d8cfd79bab4  

보시다 시피, 다른 md5 값을 추출하고 있다. 어떻게 보면 당연한 것이겠지만, md5를 이용해서 뭔가 중복여부를 체크하기 위해서는 이런 세세한 부분도 신경을 써줘야 할것이다.

고객의 요구사항에 따라 다르겠지만, 공백문자 제거 및 특수문자/숫자 제거 등을 전처리 단계로 생각해 봐야 할 것이다.  물론 문자열의 성격이나 해당 문자열이 나타내는 것이 무엇인가에 따라 다르겠지만 이러한 전처리 작업이 필요하다고 생각한다.