목표 MySQL에서 UUID를 최대한 효율적으로 사용해 보기 위한 노력 과정을 기술합니다. 개요 관계형 DB에서 데이터(튜플)을 식별하기 위해 PK(Primary Key, 기본키)를 사용합니다. 하지만, 클라이언트와 서버 사이에서 데이터를 확인하기 위해 PK를 주고받는 것은 보안적인 측면에서 위험합니다. 만약 다음과 같은 URL이 있다면 어떨까요? http://www.domain.com/user/info?userid=1 파라미터로 들어가는 userid의 값만 바꿔도, 다른 사람의 정보를 확인할 수 있는 것을 예측할 수 있습니다. 이처럼 예측가능한 모델이 되어 SQL Injection의 위험성이 존재하기 때문에, PK값을 그대로 넘겨주는 것은 바람직하지 않습니다. 따라서, 고유값을 갖는 특정 값으로 데이터..
목표 정규 표현식으로 문제 해결하기: 블로그 테마 변경 중 발생한 대참사 문제 발생 개요 인턴을 진행하면서 한동안 블로그에 소홀했습니다. 쌓여있던 소재들을 다듬어 블로그에 작성하려고 합니다. 그간 수많은 블로그를 보면서 많은 것들을 느꼈습니다. 그 중 하나는, 블로그는 다른 사람이 이해하기 좋게 작성해야 한다는겁니다. 내용도 내용이지만 디자인도 중요한 요소 중 하나입니다. 조잡하게 꾸며놓은 것보다 많은 사람들이 사용하는 테마가 훨씬 보기 편했고, 확실히 다크 테마가 눈이 편하다는 느낌을 받았습니다. 개인적으로 VELOG가 읽기 편하더라구요. 마크다운으로 작성된 문서는 읽기도 편하고 필요한 정보가 어디 있을지 예상이가는 것도 좋았던 것 같습니다. 티스토리 스킨을 찾아보던 중, VELOG와 유사한 정상우님의..
목표 Java에서 문자열(String)을 생성하는 방법과 문자열을 비교할 때 Equals() 메소드와 == 연산자의 차이점에 대해서 알아보겠습니다. 목차 클릭하면 해당 목차로 이동합니다. 문자열 생성 문자열 비교 정리 개요 Spring 프레임워크를 배우기 위해 Java를 공부하고 있습니다. 부스트코스에서 egoing님의 강의를 듣고 있는데, 문자열을 비교할 때 == 대신 equals()를 사용해야 한다고 합니다. 안그래도 Java에서 String 객체를 기본적으로 지원해주는 것에 흥미를 느끼고 있었는데, 이때다 싶어서 문자열에 관한 내용에 대해서 자세히 찾아봤습니다. 기본적으로 문자열(String)은 Java의 최상위 클래스인 Object에 속해있는 String 클래스의 객체입니다. 이와 관련된 메소드를..