전체 글
[Java] 원본 값의 길이와 암호화 된 값의 길이가 같은 암호화 방식
요구조건 사내에서 보안 장비에 탐지되는 개인정보를 가리는 목적으로 암호화를 하는 작업이 필요했다. 걸림돌이 있다면 기존에 사용하던 값의 Format이 10자리로 이루어진 값이었다. 그렇기에 Format 형식과 일치 시키려면 암호화 된 값의 길이도 10자리여야 한다는 특징이 존재했다. 결론만 말하자면 XOR 암호화 방식을 이용하면 된다. 우여곡절 끝에 알아냈기 때문에 기록해보려고 한다. AES AES는 위 요구조건의 암호화가 불가능하다. AES 암호화 방식은 대칭키 암호화 방식(암복호화에 같은 키 사용)이다. AES128, AES192, AES256에서 뒤의 숫자는 암호화 된 길이(비트)를 뜻한다. 128비트(16 바이트), 256비트(32 바이트)를 뜻한다. 이 말은 암호화 된 결과가 무조건 16 바이트..
NAVER DEVIEW DAY 2 - 런타임 데드 코드 분석 도구 Scavenger
NAVER DEVIEW DAY 2에 참가하여 12시즈음부터 총 4개를 들었다. 그 중에 Scavenger가 제일 흥미로웠던 세션이었고 동시에 가장 많은 인원이 들어온 세션이었다. 시작 전 10분전부터 만석이었고 자리를 찾는 사람들이 많았는데, 이전 세션부터 계속 앉아 있었기 때문에 다행히 편하게 들을 수 있었다. 어떻게 죽은 코드를 발견해줄까? 라는 컨셉부터가 듣지 않아도 너무 흥미로웠다. 이제는 NAVER 사내에서만 사용되던 Scavenger를 세션 마지막에 Private에서 Public으로 전환해서 모두가 이용 가능하다. GitHub - naver/scavenger: a runtime dead code analysis tool a runtime dead code analysis tool. Contri..
ResponseEntity의 사용법 및 유지보수
ResponseEntity를 쓰는 이유 일반적으로 Controller에서 아래와 같이 객체를 Return 하는 경우 HTTP 응답을 제어할 수가 없습니다. @GetMapping("/") public User getUser() { User user = userService.getUser(); return user; } 하지만 REST API로 만든다면 클라이언트와 서버 간의 통신에 필요한 정보를 제공해야 합니다. 그럴 때 ResponseEntity를 사용한다면 적절한 상태 코드와 응답 헤더 및 응답 본문을 생성해서 클라이언트에 전달할 수 있습니다. 사용 방법은 아래와 같습니다. 성공을 의미하는 OK(200 code)와 함께 user 객체를 Return 하는 코드입니다. @GetMapping("/") pub..
[Java] Object, Objects 차이
Object와 Objects를 비교하는 것은 올바르지 않을 수 있습니다. 왜냐면 두 개는 서로 비슷하게 사용되지 않기 때문입니다. 그럼에도 불구하고 비교를 하게 되는 이유는 간혹 블로그 글이나 정보성 글을 보다보면 Objects를 Object로 쓴다거나 혹은 그 반대로 사용해서 혼동을 주는 경우가 다분히 있기 때문입니다. Object Object 클래스는 Java의 모든 클래스의 기본 클래스를 말합니다. Objects Objects 클래스는 Java 7에서 추가된 유틸리티 클래스입니다. Objects 클래스는 null-safe한 메서드들을 제공하여, 객체 비교, null 처리 등에 편리하게 사용할 수 있도록 합니다. Objects 클래스에서 제공하는 메서드에는 requireNonNull(), equals..