Posted in: 프로그래밍

프로그램을 조금더 빠르게 – AoS vs SoA 프로그램 비교

저번 글에서 AoS와 SoA의 개념에 대해 글을 써 보았다. AoS와 SoA 이야기를 논하려면 데이터가 메모리에 가지런히 모여있다는 전재를 해야한다. 배열을 만들었으나 실제로는 데이터가 연속적으로 모여있지 않고 뿔뿔히 흩어저 있으면 메모리 캐싱이 될 리가 만무하다. 즉, AoS와 SoA는 메모리 구조가 시스템적일수록 더욱 효율적으로 동작한다. 배열의 저장과 그 외 기능의 동작이 군더더기 없이 딱 필요한 기능만 동작될 […]

Posted in: 프로그래밍

Docker-Compose로 PHP + MySQL 묶기

 지금 이 블로그도 그렇듯 서버내 모든 서비스가 도커 내에서 돌아가고 있다. 서버 맨 앞에 nginX를 두고 적절한 도커 컨테이너로 연결을 중계해 준다. 이때 기본 nginX로 다루기 껄끄러운 커넥션은 다시 Rust를 통해 다시 핸들링한다. 이런 구조속에서 각 컨테이너간 서로 통신해야할 일이 생길수 있다. 나로 같으면 PHP와 MySQL를 서로 연결해줘야 하는 상황이 생긴것이다. 짜피 Docker-Compose를 쓰기에 PHP와 […]

Posted in: 일상

구글 챗을 써본 느낌

구글챗은 원래 일반 개인이 사용할 수는 없다. 비즈니스 사용자를 대상으로 만들어젔기에 G Suite 사용자만 사용가능하다. 하지만! 개인이 사용할 수 있는 방법이 딱 하나 있다. G Suite 사용자가 구글 챗에 초대해 주는 것이다. 대신, 이렇게 개인 계정으로 구글챗을 열면 사실상 행아웃급의 기능밖에 사용하지 못한다. 개인 계정에서는 단체 채팅방을 못만들기에, 그룹 채팅을 주로 사용할 경우 오히려 행아웃의 […]

Posted in: 일상

Thinkpad L15 (AMD)에 리눅스 설치기 : 커널은5.8 로

최근 Lenovo Thinkpad L15 (AMD, 4750U)를 구매했다. 기존에 윈도우 10을 설치해서 사용하고 있었으나, 개발에 리눅스가 필요해서 설치를 해 보았다. 설치한 배포판은 하모니카 ME (우분투 기반의 민트 기반의 한국형 배포판, https://hamonikr.org/menuDownload_RTM) 를 사용하였다. 커널 버전 리눅스를 설치한 직후에는 여러 문제가 발생했었다. VGA 드라이버가 안잡히는것 부터 해서 화면 밝기 조절 불가 문제, CPU 제어 불가, 그 외 […]

Posted in: 일상

민감한 정보를 다룰 때 들이닥치는 사람 방어하기

이전에 상상실험 비스무리하게 민감한 정보를 다루고 있을때 적·스파이가 들이닥친다면 어떻게 해야할까? (좀 더 직설적으로 표현하자면, 작업중 경찰이 들이닥치면 어떻게 해야할까?) 에 대해 아는 형님하고 이야기 해 본적이 있다. 그 때 이야기가 끝이었지만, 다시금 생각이 나서 추가로 찾아보며 정리해 보려 한다. 윈도우를 버리고 리눅스로 옮겨탄다 매우 중요하다. 윈도우는 생각보다 편리하지만, 또 생각보다 보안에 좋지 못하다. 일반 […]

Posted in: 프로그래밍

tokio rs 사용 팁 – Bytes편

Rust로 비동기 프로그래밍을 하다 보면 tokio 라는 런타임(라이브러리)를 접하게 될 것이다. Tokio-rs를 사용하면서 알면 좋을만한 팁들을 정리해 보았다. Bytes 라이브러리를 잘 사용하자 단순히 [u8;] 배열을 여기저기 옮겨다니면서 메모리 풀을 사용하는것도 좋지만, Bytes 라이브러리를 활용하는 것도 좋은 방법이다. 사실 왠만한 상황에서 bytes만큼 괜찮은 메모리 풀을 찾기도, 만들기도 쉽지 않을것이다. BytesMut 활용  IO 작업을 할 때 읽기/쓰기용 […]

Posted in: 프로그래밍

메모리 Reallocation (재할당)

 메모리 재할당은 “필요한 메모리의 양이 바뀌어서 다시 메모리를 할당 받는것”이다. 코딩을 하다보면 메모리를 재할당 받아야 할 때가 종종 찾아온다. 사용자가 직접 메모리 재할당을 할 때도 있고, Python처럼 언어에서 보이지 않게 알아서 재할당을 진행할 때도 있다.  위의 그림을 해석해 보자. 기존에는 데이터를 저장할 때 8Byte의 공간을 필요로 했으나, 어떤 사정에 의해 14Byte가 필요해 졌다. 그래서 메모리 […]