회사 업무 18

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

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

Role(역할)과 Authority(권한)

Role 예시:ROLE_ADMIN: 관리자ROLE_USER: 일반 사용자ROLE_MANAGER: 매니저Authority 예시:READ_PRIVILEGES: 읽기 권한WRITE_PRIVILEGES: 쓰기 권한DELETE_PRIVILEGES: 삭제 권한  참고 사이트https://gregor77.github.io/2021/04/21/spring-security-02/ Spring Security - 2. Role과 권한(Privilege)Role과 권한을 조회하는 UserDetailsService이번 시간에는 SecurityContext에 보관되는 Authentication, Role과 권한(Authority 또는 Privilege)에 대해 알아보겠다.경험을 바탕으로 Role과 권한의 차이는 무엇이고, 실g..

회사 업무 2024.09.13

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

※ 작성 중입니다. ※ 새로운 프로젝트가 진행 되면서 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..

java.io.IOException: 장치에 남은 공간이 없음

테스트 서버에 접속하니까 에러가 발생하여 로그를 확인했더니 용량이 없다고 한다. 문제점 ERROR [ehcache.store.disk.DiskStorageFactory]: Disk Write of globalMenuCache failed: java.io.IOException: 장치에 남은 공간이 없음 문제 부분 확인 df -h 또는 df -i 명령어를 사용해서 용량 확인 가능 /dev/mapper/centos-root 에서 100% 사용중이라고 나오고 있다. 문제 발생 원인 로그를 지우지 않고 쌓고 있는 중이다. => 로그는 원래 지우지 않고 다른 저장공간에 백업을 한 이후 지워야 한다고 함. 진짜 로그 문제일까? => 어떤 부분이 용량을 사용 중인지 확인할 수 있는 방법이 필요하다. 해결방법 필요없는 ..

회사 업무 2023.10.05

[서버 개발] 서버 to 서버 통신

💪 현재 작성하고 있는 중입니다. 일반적으로 통신이라고 하면 웹(클라이언트)에서 서버를 생각했었는데 업무를 하면서 서버와 서버 간의 통신하는 방법 몇 가지를 알게 되어 이를 정리해 보자고 한다. 서버 to 서버 서버끼리 http, https 통신을 할 수 있으며 통신 방법 코드는 여러 가지가 있다. HttpURLConnection && URLConnection 두 클래스를 코드로 어떻게 작성되어 있는지 확인해보자. HttpURLConnection 클래스 HttpURLConnection 클래스는 URLConnection 클래스를 상속(extends) 받으면서 추상화(abstract) 클래스 이다. 생성자(Constructor)에서 protected 접근 제한자를 사용하면서 직접 인스턴스 생성이 불가능하다...

회사 업무 2023.08.10

[브라우저] PNA CORS(formerly known as CORS-RFC1918)

💡 내용이 틀린 부분이 있을 수 있습니다. 업무를 하면서 PNA CORS를 접하게 되어 작성하게 되었습니다. 👉 PNA CORS? Chrome is deprecating access to private network endpoints from non-secure websites as part of the Private Network Access specification. The aim is to protect users from cross-site request forgery (CSRF) attacks targeting routers and other devices on private networks. 즉, 의역을 하면 크롬은 안전하지 않는 웹사이트에서 Private Network Access 사양으로 ..

회사 업무 2023.08.01