본문 바로가기

분류 전체보기

(35)
Golang defer 실행 순서 Go를 사용 중 문득 든 궁금증이 defer 함수를 여러 개 사용한다면 실행 순서가 어떻게 되는지 궁금했다. 기본적으로는 호출한 순서대로 실행될 것 같았고 고루틴의 경우는 예외적으로 랜덤하게 실행될 것으로 생각되어 실험을 해보았다. 테스트 기본 사용 시 package main import ( "log" "time" ) // 3초 후 숫자 프린트 // 결과: 3, 2, 1 func printNo() { defer log.Println("printNo=1") defer log.Println("printNo=2") defer log.Println("printNo=3") log.Println("run defer functions after 3 seconds") time.Sleep(time.Duration(3) ..
운영 중인 웹사이트 MongoDB 검색 성능 개선기 - 2 운영 중인 웹사이트 MongoDB 검색 성능 개선기 - 1 :: 더 나은 개발을 설계하는 사람 (tistory.com) 운영 중인 웹사이트 MongoDB 검색 성능 개선기 - 1 한동안 구축했던 오픈고시 사이트를 보기만 하고 관리하지 못하다가 검색 결과 조회가 너무 오래 걸리는 현상을 계속 보게 되어 개선을 하게 되었다. 사이트에서는 여러 시청과 정부 사이트가 torrang.tistory.com 이전에 진행했던 성능 개선을 통해 다음과 같이 최소 5배 이상의 성능 향상을 얻었다. 기존 검색에서 제외할 소식을 관리하는 테이블을 생성 관리자 페이지에서 제외할 소식을 추가 또는 제거 검색할 때마다 제외할 소식들의 id를 가져와서 쿼리에 포함 변경 검색에서 제외할 소식을 관리하는 테이블을 생성 관리자 페이지에서..
운영 중인 웹사이트 MongoDB 검색 성능 개선기 - 1 한동안 구축했던 오픈고시 사이트를 보기만 하고 관리하지 못하다가 검색 결과 조회가 너무 오래 걸리는 현상을 계속 보게 되어 개선을 하게 되었다. 사이트에서는 여러 시청과 정부 사이트가 제공하는 여러 소식들을 모아서 한 군데서 볼 수 있게 하는 것이 주요 기능인데 데이터가 쌓이다 보니 어느 순간부터 최소 2~3초가 걸리고 있는 것을 볼 수 있었다. 어차피 사이트가 아직 트래픽이 없기 때문에 현시점에서는 큰 문제가 없지만 나중을 위해서라도 그리고 기다리기 답답해서 검색 성능을 개선하게 되었다. 현황 파악 현재 MongoDB를 사용하고 있으며 정보 제공을 위해 2개의 컬렉션으로 구성되어 있다. 나라장터 입찰공고 데이터는 하루에도 끝없이 올라오고 기존 공고가 잘못 작성되면 수정하지 않고 새로운 공고로 올리기 때..
공개SW 페스티벌 2023 후기 이번에 공개SW 페스티벌 2023을 참가해봤다. 이 페스티벌은 오픈소스에 관련된 주제를 다루는 곳인데 처음 참가해 보는 거라 어떤 내용으로 발표가 될지 궁금했다. 행사정보 주제: 오픈소스로 바꾸는 세상 위치: 코엑스 4층 401호 ~ 403호 일시: 2023-12-01 (금) 13:00 ~ 18:00 * 행사는 13:00부터 18:00까지 진행되며 중간중간 쉬는 시간에 Q&A 하는 곳으로 가서 연설하셨던 분에게 질문을 할 수 있다. 공개SW 페스티벌 2023 (ossfestival.kr) 공개SW페스티벌 오픈소스로 바꾸는 세상 OpenSource 2023 공개SW페스티벌 ossfestival.kr 오후 12시 30분쯤에 도착해서 부스 쪽으로 가서 사전예약 쪽 부스로 갔는데 300명 안에 들어서 선착순으로..
SK하이닉스 Gold P31 M.2 NVMe (1TB)로 교체한 후기 그동안 잘 사용하고 있던 HP SSD EX920 1TB 모델이 포맷 이후 활성 시간이 널뛰기하는 이상현상을 보였다. 윈도우 11로 포맷 직후라 인덱싱으로 인해서 발생하는 것으로 생각했으나 며칠이 지나도 동일한 현상을 보였고 가장 큰 문제는 OS용으로 사용하고 있던지라 프리징 현상이 너무 자주 발생했다. 😡 별도의 SSD 읽기/쓰기 작업을 하는 것도 아니고 프로그램을 실행하거나 탐색기를 키는 작업에도 그래프는 산을 그리고 있었다. 간혹 답답해서 마우스를 몇 번 클릭하면 응답없음이 뜨는 현상과 explorer.exe가 프리징 걸렸다 풀리는 현상도 발생한다... 게임 실행 시에도 처음 실행 시 몇초 동안 응답없음으로 뜨고 로딩이 이전보다 엄청 느려지는 현상이 확인되었다. 포맷 전에도 윈도우 11로 사용 중이었..
Redpanda 짧은 도입 후기 서론 개인 프로젝트를 돌릴 때 은근히 많이 신경 쓰이는 것이 CPU, 메모리 등의 리소스이다. 내가 Java보다는 파이썬이나 Go로 프로그램을 작성하는 이유도 리소스 때문에 선택하는 경우가 많다. (물론 Java를 별로 안 좋아하는 게 가장 크다...😒) Elasticsearch나 Kafka를 좋아하는 편이지만 개인 프로젝트에서 사용하려고 할 때마다 항상 발생했던 문제가 리소스 문제다. 개발 환경을 구축할 때는 개인 서버(4c/16g)의 메모리를 많이 잡아먹어 다른 서비스를 꺼야 했고 운영 환경에서는 비용적인 문제로 한 개 인스턴스에 여러 서비스를 띄우는 편인데 메모리를 가장 많이 잡아먹는 게 Elasticsearch, Logstash, Kafka였다. Redpanda는 이런 이유에서 도입하게된 Kafk..