회사 업무/기술 도입편 5

실시간 알림 시스템 구현

관련 나의 블로그 글이벤트 기반 아키텍처 연구편 with RabbitMQhttps://jm-baek.tistory.com/363분산 트랜잭션 with RabbitMQhttps://jm-baek.tistory.com/364분산 메세지 큐 1편 - 읽은 책https://jm-baek.tistory.com/325분산 메세지 큐 2편 - 읽은 책https://jm-baek.tistory.com/330  ※ 계속 글을 다듬고 있는 중입니다. ※ 들어가기에 앞서현재 개발하고 있는 알림 서비스는 몇몇 기능을 맡아서 담당하고 있다.(순수하게 알림만을 위해서 동작하는 서비스가 아니다.) 그 이유는, 도메인 별로 서비스를 정확하게 다 나눠 버리면 개발자의 관리 포인트가 많이 늘어난다.최대한 유사하거나 비슷한 기능은 하나로..

[DevOps] 도커 도입편

왜 (나는) 도커를 도입하려고 할까?업무를 하면서 아래와 같은 상황이 발생할 수 있다(했었다).테스트 서버의 OS가 EOS 되고, 다른 OS로 변경이 필요할 때특정 고객의 서버 OS가 무엇인지에 따라 솔루션이 해당 OS에 문제 없이 동작하는지 준비해야할 때솔루션 설계로 여러 서비스가 실행될 때등등이러한 상황에서 개발자(?)는 아래와 같은 준비를 해야한다.배포 및 테스트 서버에 명령어를 하나씩 입력해서 필요한 프로그램을 설치 및 세팅아니면, 특정 OS에 맞춰 스크립트를 실행하면 설치되도록 스크립트를 작성어떠한 방법이든 준비하는데 시간이 생각보다 많이 소요된다.만약 준비하면서 설치에 오류가 발생하면 쉽지않다.(눈물 난다. 😂) 고생을 하면서 느낀점이 도커를 사용해서 설치하면 쉽게 되지 않을까 생각했지만,팀..

[DevOps] 모니터링 시스템 도입기 with Grafana

관련 블로그 글Prometheus+Grafana+OpenTelemetry를 이용한 k8s 모니터링https://jm-baek.tistory.com/351  왜 모니터링 시스템?※ 개인적인 의견을 기반으로 작성해 보았습니다..!!! 현재 상황회사의 기존 플랫폼 서비스 아키텍처는 모놀리식 구조로 되어있지만,현재 새로운 플랫폼 서비스를 개발하면서 도메인 별로 서비스를 나누게 되었다. 문제점테스트 서버에 배포된 애플리케이션의 로그를 확인하려면, 매번 서버에 접속해서 명령어로 확인을 하는 불편함이 있다(서비스가 여러 개로 되어 있어 하나씩 로그를 vi 편집기 등으로 확인한다.)특정 고객사에서는 설치된 서버의 리소스 상태를 확인할 수 있는 대시보드 형태의 페이지를 원하기도 했다.엔지니어 및 개발자 입장에서 서버에 ..

[기획] 설계서? 명세서? 그게 뭔데...

※ 작성 중입니다. ※ 새로운 프로젝트가 진행 되면서 2주동안 열심히 회의를 진행했다.그런데 막상 개발을 하려고 하는데 관련 문서가 없다. 개발을 하라고 하는데..어떻게.. DB를 설계하고 어떤 기능 구현을 해야되는 걸까... 그렇다 내가 부족해서 문서가 없었다! 더 열심히 이겨내야한다! 01. 메뉴 정하기하루 종일 어떻게 해야 하는지 고민하다가 문득 정리가 되었다. 먼저, 필요한 메뉴를 나열하자!! 어쨌든 필요한 메뉴가 있으면 → 화면이 나오고 → 기능 명세가 나오고→ DB 설계가 될 것으로 생각했다. 예를 들어, 아래 이미지와 같이 일반 사용자가 로그인을 하고 보여줘야 하는 상위 메뉴를 정하고 있다.상위 메뉴에서 보여줘야하는 하위 메뉴를 정한다. 메뉴를 정하는 과정에서 회의에 했던 내용을 반영했다!!..

[Refactoring] 국제화(Internationalization) 수정

상황현재 로직HTML 태그마다 data-lang 이라는 속성을 만들고 있다.data-lang의 속성 값을 자바스크립트 객체로 선언한다.속성 값과 객체가 일치하는 값을 불러와서 국제화 처리 진행문제점자바 스크립트 객체로 되어있기 때문에 값들을 관리하기 어려움.(중복 등)애플리케이션 배포가 끝나고, 이후 값을 수정하려면 엔지니어가 처리하기 어렵다.변경 이유스프링 프레임워크에서 이미 국제화 기능을 지원하고 있다...다른 사이트에서 적어 놓은 글 However, this approach depends on the access to the application's resource files when adding a new supported language or modify the existing message f..