본문 바로가기
반응형

개발 이야기48

Slack bot 세팅하기 참고 링크 : https://api.slack.com/automation/quickstart Quickstart guide for the next generation Slack platform Get up and running quickly with the quickstart guide. api.slack.com 2023. 7. 18.
gunicorn 멀티프로세스 Crontab 을 활용한 날짜별 file log 로테이션 돌리기 gunicorn 을 활용하여 멀티프로세스를 이용하는 경우, 그리고 로깅 타입을 TimedRotatingFileHandler 을 이용하는 경우 여러 개의 프로세스가 한 파일에 접근하기 때문에 날짜가 바뀔 때마다 새 파일을 만들어야 하는데 이게 제대로 작동하지 않았다 그래서 메인 log 파일에 계속 누적하여 로그가 쌓이고 있었고, 얼마 지나지 않아 로그 사이즈가 너무 커져서 나중에는 읽기 조차 힘든 지경에 이르렀다. 여러 자료들을 살펴 보았을 때 멀티 프로세스를 쓴다면 곧바로 파일 로테이션 로깅을 사용하지 말고, 작업 큐에게 로그를 전달하여 작업 큐로부터 파일 로테이션을 돌리도록 해주면 된다고 하는데 그냥 가장 간단한 방법으로 처리하면 되지 않을까 하여 크론탭을 이용하게 됐다 크론탭은 정해진 시간, 날짜에 .. 2023. 4. 25.
[Django] Replica DB 사용 시 읽기전용/쓰기전용 Database 분리하기 DB replica 를 사용할 때 읽기전용으로 replica를 사용하고, 쓰기전용으로 main(master) DB를 사용하도록 하는설정 replica_1, replica_2 를 settings.py의 DATABSES 에 선언했다고 가정 import random class DBRouter(object): def db_for_read(self, model, **hints): return random.choice(["replica_1", "replica_2"]) def db_for_write(self, model, **hints): return "default" def allow_relation(self, obj1, obj2, **hints): return True def allow_migrate(self, .. 2022. 9. 6.
[Android] WebView에서 URI가 Intent Schema 인 경우 웹사이트 로딩하기 웹뷰에서 보여 줄 사이트 URI가 Intent Scheme 인 경우가 있다. 이 경우 URL은 intent://blah.blah 처럼 내려오게 되는데, 브라우저에서 식별 가능한 URL이 아니기 때문에 해당 URI를 브라우저가 이해할 수 있는 URL로 아래 코드 처럼 변환해줘야 한다. // WebViewClient // webViewClient = object : WebViewClient() { } 안에 아래 오버라이딩 함수 정의 override fun shouldOverrideUrlLoading(view: WebView?, request: WebResourceRequest?): Boolean { request?.url?.let { uri -> if (uri.toString().startsWith("int.. 2022. 5. 19.
Jenkins 설치 및 원격 배포 설정 Ubuntu 18.04 JDK 설치 > sudo apt-get update > sudo apt-get install openjdk-11-jre openjdk-11-jdk > java -version 환경변수 설정 > vim ~/.bashrc # ~/.bashrc export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which java)))) export PATH=$PATH:$JAVA_HOME/bin > source ~/.bashrc > $echo $JAVA_HOME > sudo wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add - > echo deb http://pkg.jenk.. 2022. 2. 18.
Nginx Response header 커스터마이징하기 response header에 Server 항목을 보면, Server: nginx x.x; 처럼 nginx version이 명시되는 경우, 보안상 좋지 않기 때문에 해당 Server 헤더 값을 커스터마이징 할 필요성이 있다. 이런 경우 추가적인 패키지를 받아서 해결할 수 있다. > sudo apt-get update > sudo apt-get install nginx-extras nginx 서버 세팅 파일에서는, location ... { server_tokens off;# removed pound sign more_set_headers 'Server: MySite'; } 처럼 처리할 수 있다. 2022. 2. 4.
반응형