• [Security] Apply Digital Certificate

    Index CA CA에서 인증서 생성하기 인증서 적용하기 (plus) 인증서가 사용되는 프로세스 모식도 CA 공개키와 비밀키만을 이용해 암호화는 수행하면 보안에 매우 취약해진다. 아래의 그림처럼 해커가 사용자 B에게 해커의 공개키를 사용하여 데이터를 보낼 경우 사용자 B는 사용자 A가 보낸 데이터라착각할 수 있다. 이와 같은 해커의 공격 방식을 MTM(Man in the Middle Attack)이라고...


  • [Project] Python Version of Myinfo oauth2 Connector

    프로젝트 github:link 프로젝트 api document:link 프로젝트 quick start: link About Singpass 싱가포르에는 정부 주도로 만들어진 Mydata 서비스인 Singpass가 있다. 정부가 주도한 Mydata 서비스가 몇 개의 나라에 있다고 하는데, Singpass는 그 중에서도 모범사례로 뽑힌다고 한다. Singpass는 싱가포르의 15세 이상의 시민중 97%가 쓰고 있는 아주 활발한 서비스이다. Singpass에 있는 여러가지 서비스 중...


  • [Python] Python Decorator로 간단한 profiler 만들기

    Django 환경에서 unittest를 하며 간단하게 퍼포먼스를 측정하고 싶었다. 아주 간단하게 프로파일링을 하면 되기 때문에 Middleware 같은 것은 만들지 않았다. 대신에 Python의 Decorator로 만들었다. 앞으로 더 심화되고 유익한 정보를 포함하고 있는 Profiler를 Decorator 형식으로 만들면 유용할 것 같다. Decorator는 총 3개를 구현했다. 메모리 사용량을 보기 위한 ram_profiler 함수에서 호출된 쿼리와 쿼리...


  • [Security] Digital Certificate

    Index 이전까지 인증서에 대해 잘못 알고 있던 점들 인증서의 종류 인증서와 관련된 개념 인증서에 대해 잘못 알고 있던 점들 인증서의 종류 처음으로 인증서를 생성하려고 했을 때 인증서가 web에서 HTTPS 통신을 하기 위해 사용하는 web secure용 인증서 AKA SSL 인증서와 digital signature(디지털 서명) 를 하기 위한 인증서가 따로 존재한다고 생각했다. 때문에...


  • [Python] Effective python better way 1 to 5

    Chapter 1 파이썬답게 생각하기 Better way 1 사용중인 파이썬의 버전을 알아두라 현재 사용하고 있는 파이썬의 버전을 알고싶다면 아래의 방법대로 하면 된다. In command line: python --version In python source code: import sys print (sys.version_info) # sys.version_info(major=3, minor=8, micro=12, releaselevel='final', serial=0) print(sys.version) # 3.8.12 (default, Oct 22 2021, 17:47:41) #[Clang 13.0.0...


  • [Python] Introducing Python - Part 1

    처음 시작하는 파이썬을 읽고 내용을 정리한 포스팅이다. 총 12 chapter로 되어있고, 정리가 필요한 Chapter를 선별하여 part1, part2 로 나누었다. 각 part에서 다루는 chapter는 아래와 같다. Part1 Chapter 1 파이 맛보기 Chapter 2 파이 재료: 숫자, 문자열 변수 Chapter 3 파이 채우기: 리스트, 튜플, 딕셔너리, 셋 Chatper 4 파이 크러스트: 코드...


  • [Git] 여러 개의 깃허브 계정 쓰기

    여러 개의 깃허브 계정을 사용하는 방법을 다룹니다. index 깃허브 계정 여러 개 세팅하기 ssh 키 발급 ssh config 작성 ssh 키 깃허브에 등록 매번 해줘야 하는 작업들 레포지토리 주소 수정 계정 정보 명시 참고: 복수의 깃허브 계정을 사용 할 때, 아래처럼 각 계정들의 root source directory를 나누어두면 관리적 측면에서도, git...


  • [Career] 2021 Backend Engineer Interview - Python, General

    2021 하반기 기술면접에서 나온 질문들과 소감을 정리한 포스팅 2편 입니다. 전편 [2021 Backend Engineer Interview - Java] 에 이어서 이번에는 Python과 약간의 DevOps, 개발 전반 상식에 대한 면접 질문을 정리했다. index Python 쓰레드 동시성 Django 모듈 구조와 흐름 Django ORM DevOps Nginx load balancing 스케쥴링 알고리즘 쿠버네티스 파드 도커 컴포즈...


  • [Career] 2021 Backend Engineer Interview - Java

    2021 하반기 기술면접에서 나온 질문들과 소감을 정리한 포스팅입니다. index Intro 기술면접 회고 Java Spring Boot reload changed properties on running JDBC 자바 직렬화 Interface와 abstract의 차이 DI, IOC static Intro 10월 달 부터 이직을 준비하기 시작하며 Resume 와 Cover Letter 를 썼고, 11월 달에는 면접을 보러 다녔다. 대부분의 면접들이 몇...


  • [Linux & MySQL] Shell Script 로 Mysql db 전체백업하기

    ShellScript를 사용해서 Mysql db를 전체백업 하는 방법을 알아본다. SQL 백업에는 전체백업, 증분백업, 차등백업이 있다. 백업 종류에 대한 더 자세한 정보는 이전의 포스팅에서 확인이 가능하다. [SQL 백업 종류] 상용에서 사용하는 디비의 데이터를 일주일에 한 번 씩 로컬 서버로 백업을 해두기로 했다. 빈번하게 진행되는 백업이 아니라서 시간이 오래 걸리지만 간단한 전체백업을 하기로...