분류 전체보기
-
비대칭 키 암호화 방식 (Asymmetric Key Cryptography)개발자 라이프 2020. 1. 21. 23:30
TL; DR 대칭 키 암호화 방식(Asymmetric Key Cryptography)의 약점 보안 공개-개인 키가 쌍으로 생성된다. 공개 키(public key)는 외부로 배포될 수 있다. 개인 키(private key)는 키를 생성한 사람(주체)만 가진다. (즉, 외부로 배포되지 않는다.) 공개 키는 암호화에 사용된다. 개인 키는 복호화에 사용된다. 공개 키로 암호화된 메시지는 대응하는 개인 키로만 복호화 할 수 있다. 개인 키는 전달받은 메세지가 공개 키로 암호화되어 있는지 확인할 수 있다. 풀어서... 대칭 키 암호화 방식은 송 수신자가 동일한 키를 사용하여 메시지를 암 복호화합니다. 그렇기 때문에 둘 중 어디서라도 키가 유실되면 보안 위협이 발생합니다. 이러한 문제를 보완하기 위해 비대칭 키 암호..
-
리눅스 파일과 디렉토리 권한 정리개발자 라이프 2020. 1. 18. 17:13
들어가며 리눅스 환경에서 작업을 하다보면 permission denied 와 같이 권한과 관련된 에러를 자주 마주합니다. 이번 글은 리눅스의 파일과 디렉토리의 권한과 관련된 정리입니다. 다음과 같은 내용을 다룹니다. -rwxr-xr-x 의 의미 chmod, chown 명령어 파일과 디렉토리의 권한 알아보기 'ls -l' 명령어로 현재 디렉토리의 파일과 디렉토리 정보를 조회할 수 있습니다. 명령어를 실행하면 위와 같이 파일과 디렉토리에 대한 권한, 소유자, 소유 그룹, 크기 등이 출력되는 것을 확인할 수 있습니다. 특히 권한 부분은 이해하기 어려운 7자리 문자로 이루어져 있는데, 이것들은 4가지 부분으로 나눌 수 있으며 의미는 다음과 같습니다. - : 디렉토리 여부를 나타냅니다. 디렉토리인 경우 d 로 출..
-
나의 블로그 방황기 (깃 블로그 / 노션 / 티스토리 비교)개발자 라이프 2020. 1. 14. 22:13
들어가며 개발자 직군에 들어서며 기술 블로그는 필수라고 느꼈습니다. 그래서 나만의 블로그를 만들기 위해 이런저런 노력을 많이 했습니다. 이 글은 제가 깃 블로그, 노션, 티스토리를 이용하여 블로그를 운영해보고 느낀 것을 정리한 것입니다. 참고로 이제 티스토리에 정착하려고 합니다. 나의 블로그 방황기 장 단점 간략 비교 비교 내용 깃 블로그 노션 티스토리 글을 쓰기 쉬운가? 하 상 중 조회에 대한 통계를 할 수 있는가? 구글 애널리틱스를 별도로 붙혀서 가능 불가 가능 댓글 등 독자와 소통할 수 있는가? 디스커스를 별도로 붙혀서 가능 불가 가능 구글 에드센스를 붙일 수 있는가? 가능 불가 가능 일단 블로그는 자신의 생각을 잘 정리할 수 있도록 쓰기가 쉬워야 합니다. 이에 깃 블로그는 마크 다운 형식만 지원하..
-
JPA 네이티브 쿼리와 하이버네이트 1차 캐시개발자 라이프 2020. 1. 14. 21:46
들어가며 Spring에서 제공하는 JPA(Java Persistent Api)는 특정 키워드로 간편하게 쿼리를 생성해주는 쿼리 메소드(Query Method)를 제공해준다. 또한 사용자가 직접 쿼리를 작성하는 네이티브 쿼리(Native Query) 방식도 지원한다. 이번 글은 JPA의 네이티브 쿼리 방식으로 쿼리를 사용할 때, 하이버네이트 1차 캐시와 관련하여 발생할 수 있는 이슈에 대해 다뤄본다. JPA 네이티브 쿼리와 하이버네이트 1차 캐시 하이버네이트 1차 캐시 (Hibernate first-level cache) 데이터베이스와 커넥션을 맺고 조회하여 결과를 가져오는 과정은 매우 무거운 과정이다. 이런 무거운 과정을 줄이고 성능을 향상하기 위해 하이버네이트는 1차, 2차 캐시를 제공한다. 하이버네이..
-
카프카 운영 - 컨슈머의 오프셋 정보 변경하기개발자 라이프/카프카 2020. 1. 14. 21:40
들어가며 프로듀서가 메세지를 발행하는 과정에서 에러가 발생하여, 컨슈머가 해당 메세지를 소비하지 못하고 Hang이 걸리는 경우가 있다(고승범님 글 참조). 이러한 경우 컨슈머의 오프셋 정보를 강제로 변경할 필요가 있다. 이 글에서는 브로커 CLI 환경에서 오프셋 정보를 변경하는 방법에 대해 살펴본다. 오프셋 정보 변경하기 메세지 발행/구독 프로듀서에 메세지 발행 # 발행할 메세지 입력 /usr/bin/kafka-console-producer --broker-list kafka-server-host:9092 --topic donald-offset-update > ... 컨슈머에서 메세지 구독 (-> 오프셋 최신화) # 브로커에 쌓인 메세지 구독 /usr/bin/kafka-console-consumer --..
-
Kafka Streams State개발자 라이프/카프카 2020. 1. 14. 21:27
들어가며 카프카 스트림즈에 대한 개발 도중 아래와 같은 로그를 확인했습니다. 2019-12-09 17:22:50.108 INFO 51383 --- [-StreamThread-1] o.a.k.clients.consumer.KafkaConsumer : [Consumer clientId=privacyMaskingStream-b09c662d-26ce-4a51-969f-3372161deb7c-StreamThread-1-restore-consumer, groupId=null] Unsubscribed all topics or patterns and assigned partitions 2019-12-09 17:22:50.108 INFO 51383 --- [-StreamThread-1] o.a.k.clients.cons..
-
빅 오 표기법 : 알고리즘 성능을 표기하는 방법개발자 라이프 2020. 1. 14. 21:18
들어가며 이번 글은 알고리즘 연산 수를 수치로 나타내는 방법인 빅 오 표기법과 대표적인 시간 복잡도를 알아봅니다. 이 글은 책 리얼 월드 알고리즘을 바탕으로 정리했습니다. 빅 오 표기법 : 알고리즘 성능을 표기하는 방법 알고리즘의 성능을 고려하는 방법 알고리즘의 성능은 입력에서 출력까지 수행하는 연산 수에 따라 결정됩니다. 이러한 연산 수를 알고리즘의 실행 시간이라고도 말합니다. 우리는 이 알고리즘 실행 시간을 이야기할 때, 일반적으로 입력 데이터 n이 무한히 클 때를 염두 합니다. 이렇게 입력 데이터가 무한히 증가할 때, 알고리즘의 연산 수(성능)를 점근적 실행 시간(asymptotic running time)이라고 합니다. 알고리즘의 점근적 실행 시간은 몇가지 표기법을 사용하여 표현하는 데, 이 중 ..
-
로컬에 주키퍼, 카프카 설치하기 (Standalone)개발자 라이프/카프카 2020. 1. 14. 21:04
들어가며 이번 글은 주키퍼와 카프카를 로컬에 설치하는 방법에 대해 알아봅니다. 로컬에 설치하기 때문에 주키퍼와 카프카 모두 standalone 방식으로 구성합니다. 로컬에서 개발 환경을 구성하고 싶으신 분들은 참고하시면 되겠습니다. :) 또한 설치하는 주키퍼와 카프카의 설정은 최소 설정입니다. 혹여나 커스텀한 설정이 필요하신 분은 설정 파일을 별도로 수정하시면 됩니다. 기본적인 것들 Java 기존 설치 확인 javac -version OpenJdk 설치 sudo yum install java-1.8.0-openjdk-devel.x86_64 -y 정상 설치 확인 javac -version wget 기존 설치 확인 yum list installed | grep wget 설치 sudo yum install w..