본문 바로가기

분류 전체보기

(67)
second lost updates problem에서 second는 왜 붙였을까? 트랜잭션 고립과 관련된 문제들(issues) 중에 "second lost updates problem"이라는 것이 있습니다. Hibernate in Action의 원문을 그대로 인용하면 내용은 다음과 같습니다.Second lost updates problem— This is a special case of an unrepeatable read. Imagine that two concurrent transactions both read a row, one writes to it and commits, and then the second writes to it and commits. The changes made by the first writer are lost. This problem is also kn..
라즈베리파이에 docker 설치하기 집에서 가지고 놀고 있는 라즈베리파이(3b)에 새로운 환경의 프로그램 올릴 때마다 환경 설정하는 것이 귀찮아서 docker를 설치하기로 했습니다. 전에도 리눅스에 docker를 여러 번 설치해 봤는데 매번 매끄럽게 진행되지는 않아서 이 번에도 뭔가 난항이 있겠구나 생각했습니다. 하지만, 놀랍도록 간단하게 끝나 버렸습니다. docker 공식 문서만 따라 하면 되지만 기록 차원에서 간단히 정리해 둡니다. 라즈베리파이에 docker를 설치하는 가이드는 다음과 같습니다.32 비트: https://docs.docker.com/engine/install/raspberry-pi-os/64 비트: https://docs.docker.com/engine/install/debian/저는 64비트 환경이어서 64비트 가이드..
GoAccess - nginx 접속 로그 분석 웹서버 접속 로그 분석툴인 GoAccess 사용 및 설정에 대한 내용을 정리 차원에서 적어둡니다. 1. 설치웬만한 리눅스 배포본에 대해서는 패키지로 제공하기 때문에 패키지로 설치하는 것이 편합니다. 다음은 debian 패키지 설치 방법이고, 다른 리눅스 배포본에 대해서는 https://goaccess.io/download#distro 에 잘 나와 있습니다.wget -O - https://deb.goaccess.io/gnugpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/goaccess.gpg >/dev/nullecho "deb [signed-by=/usr/share/keyrings/goaccess.gpg arch=$(dpkg --print-architect..
유니코드 한글 자소 분리 방법 한글 유니코드 자소 분리하는 방법을 설명해 보겠습니다.유니코드에서 한글은 코드값 0xAC00부터 시작하며,초성 19중성 21종성 28개의 조합순으로 코드가 배열돼 있습니다. 초성, 중성, 종성의 자모 순서는 http://www.unicode.org/chart에서 오른쪽 끝, 중간 쯤에 있는 Hangul Jamo 부분의 링크인 https://www.unicode.org/charts/PDF/U1100.pdf 파일에서 확인할 수 있는데, 다음과 같습니다. 초성'ㄱ', 'ㄲ', 'ㄴ', 'ㄷ', 'ㄸ', 'ㄹ', 'ㅁ', 'ㅂ', 'ㅃ', 'ㅅ', 'ㅆ', 'ㅇ', 'ㅈ', 'ㅉ', 'ㅊ', 'ㅋ', 'ㅌ', 'ㅍ', 'ㅎ' 중성'ㅏ', 'ㅐ', 'ㅑ', 'ㅒ', 'ㅓ', 'ㅔ', 'ㅕ', 'ㅖ', 'ㅗ', '..
라즈베리파이 온습도 센서 사용하기 라즈베리파이에 온습도 센서를 장착 및 테스트 하는 방법입니다. 환경라즈베리파이 4온습도 센서: AM2302 (DHT22)https://www.adafruit.com/product/393 를 보면 AM2302는 DHT22에 케이블을 추가한 버전입니다만, 생산 업체마다 형태가 조금씩 다른거 같습니다. 제가 사용한 것은 ASAIR의 AM2302로 사진에 나오는 것처럼 케이블 연결이 쉽게 핀이 있는 형태입니다.핀 연결 온습도 센서 + : 1번 핀 (3.3v) - 1번 핀 아니어도 3.3v 전압 핀이면 됩니다.온습도 센서 - : 6번 핀 (Ground) - 6번 핀 아니어도 ground면 됩니다.온습도 센서 out : GPIO 4 (7번핀) - 다른 GPIO 핀도 가능합니다. Python Package 설치Pi ..
라즈베리파이 먼지센서 사용하기 라즈베리파이에 먼지센서(PMS7003) 장착 및 사용 방법입니다.환경 및 준비물라즈베리파이 4먼지 센서: PMS7003레이저 방식의 먼지 센서입니다.PM 1.0/2.5/10.0 측정 가능합니다.먼지 센서 인터페이스 보드: https://www.eleparts.co.kr/goods/view?no=6060637점퍼 케이블(F/F)라즈베리파이 설정UARTPMS7003 먼지센서와 라즈베리파이는 UART를 사용하여 통신하게 됩니다. UART는 간단히 얘기하면 직렬 통신의 한 방식이자 해당 방식의 장치라고 할 수 있습니다. 라즈베리파이에는 다음과 같이 두 가지 유형의 UART가 있습니다. 하나는 PL001이고 다른 하나는 mini UART입니다PL001: 16550 호한 UARTmini UART: 보다 적은 기능을..
라즈베리파이 64비트 OS 설치 라즈베리파이 Pi OS 64비트 설치 방법입니다. 1. 라즈베리파이 공식 사이트에서 Imager를 자신의 컴퓨터에 설치합니다.https://www.raspberrypi.com/software/맥, 윈도우, 우분투 리눅스를 지원합니다. 2. 라즈베리파이용 Micro SD 카드를 컴퓨터에 연결된 리더기에 삽입합니다.3. 1에서 설치한 Raspberry Pi Imager를 실행합니다.4. 자신의 환경에 맞는 선택을 합니다.운영 체제는 반드시 RASPBERRY PI OS (64-BIT)를 선택합니다. 5. 다음을 누르면 OS 커스터마이징을 할 거냐고 묻는데, 와이파이 설정 등을 미리 할 수 있어서 하는 게 좋습니다. 6. OS 커스터마이징7. 설치 진행 및 완료 8. SD 카드를 컴퓨터에서 제거한 후 라즈베리파..
라즈베리파이 - nginx - 특정 국가 접속 차단 일전에 ModSecurity를 사용하여 보안을 강화할 때 IP 주소들을 좀 살펴보니 공격의 출처는 대부분 - 아니 모두가 외국이었습니다. 그래서, 특정 국가들에 대해서 좀 차단을 해야겠다는 생각에 nginx에 설정을 추가했습니다. geoip-database특정 국가의 요청을 차단하려면 요청이 들어온 쪽의 IP 주소가 어느 국가인지를 알아야 합니다. 이런걸 IP 주소를 가지고 위치 정보를 확인한다고 GeoIP라고 부릅니다. 또, 리눅스 배포본에 포함된 IP 기반 위치 정보 C 라이브러리의 이름도 GeoIP입니다. 국가별 IP 주소 대역은 이런 곳에서 쉽게 확인 가능하지만, 이를 데이터베이스화 하여 사용할 수 있게 하는 건, 또 다른 문제입니다. 거기다가 nginx에 바로 연동되게 하려면 많은 시간과 노력이..