728x90
728x90
[쿼리튜닝 - 2] 사내 조회쿼리 성능의 개선 과정 두번째 이야기
공부방2024. 3. 17. 12:24[쿼리튜닝 - 2] 사내 조회쿼리 성능의 개선 과정 두번째 이야기

해당 글을 보고 오시면 좋아요  [쿼리튜닝] 신입 개발자의 간단한 사내 조회 쿼리의 쿼리튜닝 여정.발단 계속해서 짧은 주기로 프로젝트를 쏟아내고 있던 와중에 DB연산이 많은 작업을 수행하는 경우가 생겼다. 개발 단계에서 API 자체를 돌리는 과정에서도 1~2000ms가 되어 걱정하고 있던 과정에 Qmag1c.tistory.com     서론팀장님께서 나를 불렀다."집계 함수를 사용해서 요청사항 집계를 하는 SQL문이 있는데 ~~~ 성능 최적화를 좀 할 수 있을까요?" 기존 쿼리를 받아들고 돌려보았다.    기존 상태SELECT    YEAR(a.registe_time) AS year,    MONTH(a.registe_time) AS month,    a.code,    count(a.code) AS t..

사내 개발문화 개선하기 - 깃허브 이슈 사용하기
2024. 3. 14. 11:24사내 개발문화 개선하기 - 깃허브 이슈 사용하기

개선 동기 LogBack 관련 포스팅을 훑던 도중에, 블로그 주인분의 깃 레포를 자연스레 보게 되었다. Shin._.Mallang https://github.com/shin-mallang 충남대학교 컴퓨터융합학부 19학번, 우아한테크코스 5기 BE ttl-blog.tistory.com 오픈소스 기여도 많이하시고 꾸준하신 것 같아서 긍정적인 에너지를 막 받고있는 찰나에, 레포 하나가 눈에 들어왔는데, 1인 개발 프로젝트 레포에서도, issue를 적극 활용하는 모습이었다. 사내 두 서비스의 노드 기반 백엔드를 담당하고 있는데, 1인 개발이라는 같은 상황에서 기존 사내 해당 서비스의 개발 형태를 개선할 생각을 하지 못했던 나 자신을 되돌아보며 개선을 했으면 좋겠다 싶어서 남기는 포스팅이다. 템플릿 작성 이슈 ..

[로그 분석/시각화 -2] 실제 서비스에 적용해보기(PLG : Promtail / Loki/ Grafana)
프로젝트2024. 3. 9. 06:35[로그 분석/시각화 -2] 실제 서비스에 적용해보기(PLG : Promtail / Loki/ Grafana)

이전글과 이어집니다. [로그 분석/시각화 - 1] 기존 로그 관리의 문제점과 PLG로 로그 시각화 구현해보기 (Promtail, Loki, Graf 개발 동기 현재 사내 서비스들에 대한 로그는 winston으로 날짜별/레벨별로 관리되고 있다. nest-winston A Nest module wrapper for winston. Latest version: 1.9.4, last published: 6 months ago. Start using nest-winston in your pro mag1c.tistory.com 프로젝트의 빌드 프로세스 변경 우선, 프로젝트 배포 시 프로젝트 내부에서 docker-compose를 이용해서, 로키와 프롬테일 모두 빌드시켜주고 있는 기존 프로세스가 잘못됐다고 판단했다. ..

[Grafana Loki] Data source connected, but no labels received. Verify that Loki and Promtail is configured properly
트러블슈팅2024. 3. 8. 14:05[Grafana Loki] Data source connected, but no labels received. Verify that Loki and Promtail is configured properly

에러 원인 라벨 설정 시 설정했던 라벨이 존재하지 않음. 이는 로키는 제대로 연결되었지만, 로그 파일을 제대로 프롬테일에서 받아오지 못했음을 의미한다. 본인의 경우는 프로젝트의 도커컴포즈 볼륨 설정에서, 경로가 제대로 작성되지 않아 망운트가 제대로 되지 않았음. 걸린 시간 3시간 남짓 에러 해결 프로젝트의 로그생성 docker exec -it containerName /bin/sh 프로젝트 내부에서는, 루트 경로에 logs폴더 내부에서 날짜, 에러레벨에 맞게 분기처리를 하여 로그를 생성했다. 호스트 서버에서, 위 명령어를 통해 컨테이너 내부로 진입하는데, 진입하자마자 logs경로에 로그가 잘 들어오고 있길래 당연히 잘 동작할거라 생각했지만 그라파나에서 로키의 ip:port로 커넥션을 연결하는 과정에서 계..

[sendbird - 3]사내 서비스 샌드버드 도입기 (feat.처음 그려보는 시스템 아키텍처 구성도)
프로젝트2024. 2. 29. 17:39[sendbird - 3]사내 서비스 샌드버드 도입기 (feat.처음 그려보는 시스템 아키텍처 구성도)

[sendbird - 1]샌드버드 chat의 사내 도입? api 사용해보기 / Next + Nest 서론 현재 근무하는 회사 서비스의 웹 소켓 기반의 채팅 기능이 전반적으로 하자가 많아서 카카오톡이나 다른 여러 채팅 API를 끌어다가 사용하자는 의견이 나오고 있고, 실제로 11월 초에 한번 mag1c.tistory.com [sendbird - 2]샌드버드 chat 도입에 대한 고찰 서론 지난 글과 이어서 작성해본다. [sendbird - 1]센드버드 chat의 사내 도입? api 사용해보기 / Next + Nest 서론 현재 근무하는 회사 서비스의 웹 소켓 기반의 채팅 기능이 전반적으로 하자가 많아서 카 mag1c.tistory.com 도입 결정 장장 10월말부터 시작된 도입에 대한 얘기가, 일정이 밀리..

고잉버스(Goingbus) 후기 및 치명적인 단점인 "구독 공유"
2024. 2. 26. 16:14고잉버스(Goingbus) 후기 및 치명적인 단점인 "구독 공유"

웬만하면 개발 블로그이기 때문에 포스팅을 꺼려했지만, GPT 4.0을 구독 갱신을 하려고 하다가, 싸게 구매하는 방법이 있지 않을까 싶어서 찾아보다 공유 플랫폼?? 이라는 것이 있어 사용 후기를 좀 남겨본다.  Shared premium subscriptions with lower price on GoingBus goingbus.com  현재는 위와같은 플랫폼들의 공유 구독을 판매중이며, 추측하건데, 구독권의 공유가 가능한 플랫폼들을 결제를 장기간 해서 해당 플랫폼으로 결제하는 사람들에게 구독 결합(?)을 시켜주는듯 했다. 실제로 유튜브의 경우, 가족 멤버십으로 가입이 되었고, 다른 플랫폼들도 마찬가지 일 것으로 추측된다.        본인이 직접 구독권의 리셀러가 될 수도 있는 것 같아보인다. 리셀러 ..

[로그 분석/시각화 - 1] 기존 로그 관리의 문제점과 PLG로 로그 시각화 구현해보기 (Promtail, Loki, Grafana / ELK)
프로젝트2024. 2. 14. 14:41[로그 분석/시각화 - 1] 기존 로그 관리의 문제점과 PLG로 로그 시각화 구현해보기 (Promtail, Loki, Grafana / ELK)

개발 동기현재 사내 서비스들에 대한 로그는 winston으로 날짜별/레벨별로 관리되고 있다.   nest-winstonA Nest module wrapper for winston. Latest version: 1.9.4, last published: 6 months ago. Start using nest-winston in your project by running `npm i nest-winston`. There are 236 other projects in the npm registry using nest-winston.www.npmjs.com  export const winstonLogger = WinstonModule.createLogger({    transports: [        new w..

FCM 푸시알림 구현과 알림 대상 데이터 세팅과 벨리데이션에 대한 고민 / FCM, Scheduling, Redis
프로젝트2024. 2. 2. 16:43FCM 푸시알림 구현과 알림 대상 데이터 세팅과 벨리데이션에 대한 고민 / FCM, Scheduling, Redis

단순 구현 Firebase 클라우드 메시징 Firebase 클라우드 메시징(FCM)은 무료로 메시지를 안정적으로 전송할 수 있는 크로스 플랫폼 메시징 솔루션입니다. firebase.google.com 워낙 공식문서가 잘되어있는 덕에, 공식문서를 통해 토큰을 클라이언트에서 받아오는 데 성공하고 서버에 FCM TOKEN을 관리할 수 있게 셋팅도 해두고, 프로젝트 기획에 맞게 FCM 발송을 할 수 있게 함수를 만들었다. /** * alert Type에 맞춰 푸시알림 전송 * @param alertType * @returns */ async fcm(alertType: string, tartgetId: string, testMessage?: string) { try { //FCM TOKEN이 있어야만 전송이 가능..

728x90
728x90
image