목록Study (27)
DevYGwan

프로젝트 내에서 유저가 대학생인지 확인하기 위해서 유저 대학생 이메일을 인증하는 로직을 적용하려 했습니다. 이 로직을 적용하기 위해서 실제 대학생 이메일에 인증번호를 보내고 이 인증번호를 확인하는 로직을 구현하였습니다. 구현에 사용한 기술을 간단히 설명하면 Spring Mail Google SMTP 인증 코드 생성 & Redis를 통한 인증 비동기 처리 비동기 에러 처리 정책 (retry & 로깅) 이런 기술을 사용하여 구현하였습니다. 이를 간단히 도식화하면 위의 그림과 같습니다. 이제부터 사용된 기술과 이를 어떻게 적용했는지를 설명하도록 하겠습니다. Google SMTP를 위한 계정 설정은 이에 대한 자료가 많으니 따로 설명을 하진 않겠습니다. Google SMTP를 적용하려면 구글 계정 설정을 추가로..

데이터를 암호화하는 것은 필수적입니다. 특히 요즘 같이 데이터가 곧 힘인 시대에서는 더욱 더 암호화를 신경써서 해야됩니다. 개인정보 보호 뿐만아니라 내가 사용자로써 앱을 사용할때 해당 앱이 데이터가 암호화되어있지 않다면 사용하기 꺼려질 것 같습니다. 만약 악의적인 공격자가 저희 서버의 디비를 탈취하여 디비를 조회했을때 사용자 데이터가 바로 노출되면 큰 문제가 될 것이기 때문입니다. 따라서 이번에 프로젝트를 진행하면서 유저들의 데이터를 제대로 암호화하기 위해 노력했습니다.처음에는 모든 데이터들을 암호화 처리하였습니다. 그러다보니 모니터링 할때 어떤 유저의 데이터인지 확인하기 어려워 불편했습니다. 따라서 모든 데이터를 암호화하는 것이 아닌 기준을 가지고 암호화를 처리했습니다.데이터 암호화를 처리한 기준은 다..

java의 final 키워드는 값을 변하지 않게 하기 위해서 사용합니다. 즉, 값의 불변성을 확보할 수 있도록 합니다. 해당 키워드는 변수, 메서드, 클래스에서 주로 사용할 수 있습니다. 물론 각각의 상황에 맞게 의미가 조금씩 바뀌긴 하지만, 기본적으로 "무엇가를 제한한다" 라는 의미는 동일합니다. 해당 키워드는 개인적인 작업보다 팀 단위의 작업에서 더 중요하게 사용됩니다. 만약 내가 어떤 변수를 사용했고 이 변수가 변하지 않아야 한다고 가정했을때, 내가 혼자 작업했을때는 바로 알 수 있습니다. 하지만 팀 단위의 작업에서는 이 변수가 고정되야되는지 상대방이 모를 수 도 있습니다. 혹은, 코드가 복잡해지면 실수로 해당 변수를 건드릴 수도 있습니다. 이러한 문제를 사전에 방지하기 위해 자바에서 제공하는 키워..

그렇다면 이번에는 HttpMessageConverter와 ObjectMapper를 비교해보도록 하겠습니다. 이 둘을 비교하는 이유는 둘다 json, 객체 사이에 변환과 관련되어있기 때문입니다. 먼저 앞에서 말한 HttpMessageConverter의 내용을 다시 한번 설명하자면, HttpMessageConverter는 Spring MVC에서 요청과 응답의 데이터 형식 변환을 처리하는 인터페이스입니다. 즉, 요청 본문과 응답 본문의 내용을 자바 객체로 변환하거나, 자바 객체를 요청 본문과 응답 본문으로 변환할 때 사용됩니다. 해당 HttpMessageConverter의 구현부를 살펴보자면 public interface HttpMessageConverter { /** * Indicates whether th..
자바의 역사 '썬' 의 언지니어들에 의해서 개발되었다. (제임스 고슬링과 아서 밴 호프와 같은 개발자들이 발명함) 자바의 원래 목표는 가전제품 등의 소형 기기에 탑재될 소프트웨어를 만드는 것이었다. 자바의 기본 구문은 C++에서 객체지향 관련 구문은 스몰톡이라는 객체지향언어에서 가져왔다. 그런데, 여러 종류의 운영체제를 사용하는 컴퓨터들이 통신하는 인터넷이 등장하자 운영체제에 독립적인 JAVA가 적합하다고 생각해 개발 방향이 바뀌었다. 거기다 네트워크와 분산처리에 용이해 서버를 개발하는데 용이하다.(Servlet, JSP 등) -> JAVA SPRING이 등장했다. 자바 언어의 특징 운영체제에 독립적이다. 자바 가상 머신(JVM)을 통해 가능하다. 자바 응용 프로그램은 운영체제나 하드웨어가 아닌 JVM ..