Back-End 6

PostgreSQL vs MySQL, 어떻게 선택해

기술 인터뷰를 참여하면 가끔 듣는 질문이 있다.왜 그 프로젝트에서 PostgreSQL을 사용하셨나요? 처음에는 전혀 대답하지 못했다. 왜냐하면 입사했을 때부터 회사의 모든 프로젝트에서 PostgreSQL을 사용하고 있었고, 별다른 고민이나 의문을 갖지 않고 그대로 사용했기 때문이다. 그리고 몇 년뒤, 두번째로 질문을 받았을 때는 어설픈 지식으로 오답을 말했다.JSON 데이터타입을 쓰려구요. 면접관: MySQL도 JSON 타입 지원하는데요? 반성했다. 이전에 똑같이 받았던 질문을 왜 복기하지 않았을까? 아니 그 이전에 왜 아무런 기술적 고민 없이 DB를 사용하고 있었을까? 이 문제에 대해 좀 더 깊이있게 고민해봐야겠다 싶었다. 하지만 이 질문은 오랫동안 ToDo리스트에서 자고있었다. 첫째로 중간중간에 짤막..

Back-End 2023.09.23

파이썬의 GIL 이란

파이썬은 두 개 이상의 스레드가 바이트코드를 실행하는 것을 원하지 않는다. CPython의 메모리 관리 정책은 Thread Safe하지 않기 때문이다. 이러한 문제를 해결하고자 Python 바이트 코드를 실행하려면 인터프리터 잠금(GIL)을 획득해야 한다는 규칙을 추가했다. GIL [Global Interpreter Lock]이란 Python Object 접근을 제한하는 mutex이다. GIL은 한 번에 하나의 스레드만이 파이썬 바이트코드를 실행하도록 보장하기 위해 CPython 인터프리터가 사용하는 메커니즘이다. PyObject를 묵시적으로 Thread Safe 하도록 만들어서 CPython의 구현부를 단순하게 만든다. 다시 말해 로직 그 자체에 집중한 CPython 구현부를 작성하며 그 외 변수들의 ..

Back-End/Server 2022.09.05

HTTP 인증에 관한 개요

BASIC 인증 유저네임과 패스워드를 base64 의 형태로 인코딩하여 전송하고 서버는 이를 디코딩하여 인증을 확인한다. 형태는 다음과 같다. username = 'foo' password = 'supersecretpassword' credentials = `${username}:${password}` encoded = base64.encode(credentials) request.headers.Authorization = `Basic ${encoded}` 장점 HTTP 기본 인증 프로토콜로 대부분의 브라우저에서 지원 구현이 간단함 단점 base64로 인코딩 되기 때문에 패킷 탈취 시에 보안에 매우 취약함. (SSL 반드시 필요) DIGEST 인증 Basic 인증을 기반으로 보안을 강화한 인증방식. 서버..

Back-End/Server 2022.05.08

한영전환시 팝업창 뜨지 않게 하기

1. tweaks 설치 sudo apt install gnome-tweak-tool 2. tweaks 실행 3. Keyboard & Mouse -> additional layout options 4. Switching to another layout -> 한영전환키 나의경우 Alt-R 출처: https://askubuntu.com/questions/967364/ubuntu-17-10-and-later-cant-change-the-input-switching-shortcut-to-altshift Ubuntu 17.10 and later: can't change the input switching shortcut to alt+shift When I try to set the default combo for ..

Back-End/Linux 2020.05.24

무료 도메인(Free Domain) Freenom의 Not Available 문제.

유명 무료 도메인 공급 업체인 Freenom 에서 무료 도메인을 발급 받으려고 하는 경우에 어떤 도메인을 검색해도 모두 Not Available 로 비활성화되서 제대로 진행이 되지 않는 문제가 있다. 버그인지 의도인지는 모르겠지만 여러가지로 시도 중 해결할 수 있는 방법을 찾았다. 바로 마지막 최상위 도메인(TLD)까지 모두 입력하는 것이다. 무료의 경우 .tk / .ml / .ga / .cf / .gq 등의 무료 TLD 를 포함하는 전체 도메인을 입력하면 정상적으로 진행되는 것을 발견했다. 자동으로 선택되기 때문에 우측상단에 1 domain in cart가 확인 되었다면 checkout 버튼을 클릭하여 진행하면 된다. 이후에 진행하는 방법은 이미 많은 자료가 있기 때문에 생략한다. 끝. ex) 구글 혹..

Back-End/Server 2020.02.14

Linux Ubuntu 18.04 한영 전환 문제(feat.오른쪽 alt키)

처음 우분투를 설치하고 가장 당황했던 것이 한영전환 문제였다. 한영전환 버튼이 따로 없는 레오폴드 키보드를 이용하는 것이 문제였던 것 같은데, 우측 ALT키를 한영전환 버튼으로 이용하고 싶으나 기본 ALT키의 기능 또한 살아있기 때문에, 한영전환키로 설정을 하여도, ALT 기능이 우선순위를 갖게 되어 한영전환 기능이 작동을 안하는 것으로 보여진다. 이 때문에 반나절은 고생한 듯 하다. 이런저런 많은 정보 가운데 결국 이 문제를 해결해준 방법을 정리하였다. 1. 처음부터 영문 우분투 설치 추천 - 언어와 키보드를 한글로 설정하면, 또 키보드 삭제하고 다시 설정해야 되는 경우가 있다. 또, 언어를 한글로 설정할 시에 여러 경로가 한글로 설정되는 경우가 많아, 오히려 불편할 수가 있다. 따라서, 영문버전으로 ..

Back-End/Linux 2019.02.15