Teams 휴가 시스템 구축 - Microsoft 365 (Automate 자동화, Power Apps 연동)
·
Cloud
Microsoft 365 기반 휴가 신청 및 승인 자동화 시스템 구축 기록직장 내에서 휴가를 관리하는 일은 생각보다 복잡한 작업인 것 같습니다. 누가 언제 휴가를 갔는지, 대기 중인 요청은 어떤 것인지, 승인자는 어떻게 확인하고 처리할 수 있는지 등 여러 절차가 수작업으로 진행되면 누락이나 중복, 혼선이 발생하기 쉽습니다.우리 회사는 이전까지 노션을 활용해 팀원들의 연차 및 휴가 일정을 공유해왔습니다. 모두가 자유롭게 수정 가능한 구조였기 때문에, 다른 사람의 휴가 일정을 확인하는 데에는 편리했지만 승인 절차가 없고, 데이터 변경의 위험성이 있다는 점에서 개선이 필요했습니다.이런 문제를 해결하고자, Microsoft 365의 다양한 앱을 연동하여 휴가 신청과 승인 절차를 자동화하는 시스템을 구축하게 되었..
[CI/CD] GCP 서버 CI/CD 파이프라인 구축 (Github Actions)
·
Git
운영 중인 백엔드 시스템에 CI/CD를 도입하면서, 코드 배포의 시간을 50% 이상 단축할 수 있었습니다. 1. 프로젝트 환경 구성현재 시스템은 다음과 같은 구조로 운영되고 있습니다:로컬 개발 환경 → Bastion Host → Portal Server개발된 코드는 GitHub를 통해 관리되며, Bastion Host를 거쳐 Portal Server에 배포됩니다.기존 구조: Local (.war 파일 mvn build) -> .war 파일 Bastion Host 전송 -> .war 파일 Portal Server 전송 -> 배포보안 강화 구조 (GCP Private IP + IAP)Portal 서버는 GCP 내부 네트워크에 위치하고 있으며, 외부에서 직접 접근할 수 없고, IAP(Identity-Aware..
[GCP] Bastion Host VM 서버 구축 (Proxy, OS Login)
·
Cloud
GCP 환경에서 직접 VM에 외부에서 접근하는 것은 보안상 위험이 있어, 안전한 방법을 찾게 되었습니다. 특히, Cloud IAP(Identity-Aware Proxy)를 활용해 외부 IP 오픈 없이도 SSH 접속을 가능하게 하려는 요구가 있었고, 이를 위해 Bastion Host를 설정하게 되었습니다. Bastion Host는 관리용 VM으로 최소한의 보안 구성을 갖추어 내부 자원에 대한 안전한 접근 통로 역할을 합니다.1. Bastion Host VM 설정VM 생성 방법Compute Engine → VM 인스턴스 → ‘인스턴스 만들기’ 선택주요 설정 값이름: bastion-host-dev리전/존: 서비스 환경과 동일한 리전 선택 (예: asia-northeast3-a)머신 타입: e2-medium (..
[GCP] Google Cloud Armor 적용 (feat. Custom Error page - Cloud Storage)
·
Cloud
서비스를 운영하다 보면 내부 시스템을 외부에 노출시켜야 하는 상황이 생긴다. 특히 클라이언트사 담당자들이 접근하는 운영/통계용 대시보드는 접근 권한을 세밀하게 제어해야 할 필요가 있는데, GCP 환경에서 Google Cloud Armor를 활용한 IP 기반 접근 제어를 구현하게 되었다.이 글은 Cloud Armor를 활용하여 특정 IP만 접근 가능하도록 구성하고, 허용되지 않은 IP는 커스텀 에러 페이지로 유도하는 구성 방법을 상세히 정리한 실전 가이드이다.왜 Cloud Armor를 도입했는가Cloud Armor를 도입한 이유는 명확하다. 운영 중인 VM이 퍼블릭하게 노출되어 있고, 이 서비스에 접근 가능한 IP를 고객사 내부망으로 제한하고자 했기 때문이다.GCP의 VM 방화벽 기능으로도 IP를 제어할 ..
[Apache upgrade] 2.4.55 -> 2.4.60 version 업그레이드 (CentOS 7.9.2009)
·
컴퓨터 과학 [CS]
Apache 2.4.55 버전이 보안 검사에서 이슈가 많이 발생해서 2.4.60 버전으로 업그레이드 하기로 결정했다. 서버는 CentOS 7.9.2009 다. 신경 써야 될 부분도 있었는데, 기존 Apache 는 유지 시키고 새 경로에 Apache 를 설치 했다. (문제 생길시 바로 되돌리기 위해)  아래는 꼭 신경 써야 하는 내용들이다 apr, apr-util 설치로드 밸런싱을 사용한다면 mod_jk 도 설치 해야한다. (이 경우는 yum update 를 하는게 아니라면 workers.properties 파일을 생성하고 거기에 로드밸런싱 설정 값을 넣어 줘야 한다.)적용하는데 어렵지는 않지만 서비스 중인 서버라면 서비스가 멈추지 않도록 계획을 잘 짜야 한다.1. Apache 버전 확인현재 설치된 Apa..
[GIT] Git Flow - 가장 쉬운 깃 브랜치 전략 (생애 첫 기술 발표 영상)
·
Git
1. Git Flow란 무엇인가?Git Flow는 소프트웨어 개발 프로세스에서 효율적인 브랜치 관리와 협업을 돕는 브랜치 전략입니다. 개발, 테스트, 배포 등의 단계에서 코드의 안정성을 확보하고, 여러 개발자 간 협업을 체계적으로 할 수 있게 해줍니다. Git Flow는 feature, develop, release, hotfix, main(또는 prod)와 같은 브랜치 구조를 사용하여 명확한 워크플로우를 제공합니다.2. Git Flow의 주요 브랜치 규칙Git Flow는 다섯 가지 주요 브랜치로 작업을 나누며, 각 브랜치는 특정 목적과 규칙을 가지고 있습니다.1) main 브랜치 (prod)목적: 운영 서버에 배포되는 안정적인 코드를 관리합니다.규칙: main에는 항상 릴리스된 코드만 포함되어야 하며,..
[javascript] var, let, const 비교 및 사용법
·
Javascript
현대적인 JavaScript 개발에서는 const를 기본으로 사용하고, 값이 변경되어야 하는 경우에만 let을 사용한다. var는 스코프와 호이스팅 문제로 인해 사용을 지양하는 것이 일반적이다.const의 사용 권장: 불변성을 유지하여 코드의 안정성과 예측 가능성을 높인다.let의 보조적 사용: 변경이 필요한 변수에 한해 사용한다.1. var스코프(scope): 함수 스코프를 가진다. 즉, 함수 내에서 선언된 변수는 함수 전체에서 접근 가능.호이스팅(hoisting): 변수 선언이 스코프의 최상단으로 끌어올려짐. 그러나 초기화는 선언 위치에서 이루어지므로, 선언 이전에 변수를 참조하면 undefined를 반환.재선언 가능: 동일한 스코프 내에서 같은 이름의 변수를 재선언할 수 있음.적절한 사용 상황레거시..
DB 암호화 Transparent Data Encryption (TDE)
·
데이터베이스 [DB]
Mariadb 가 설치 되어 있다는 가정으로 진행File Key Management Encryption Plugin (파일 키 관리 암호화 플러그인) 사용체크해야 할 부분/etc/mysql 에 my.cnf 파일 있는지 확인키 파일 /etc/mysql/key.enc 에 저장암호화 키 /kms 에 저장 (kms 폴더 생성)TDE 적용암호화에 사용할 키 생성// Linux$ (echo -n "1;" ; openssl rand -hex 32 ) | sudo tee -a key.src$ (echo -n "2;" ; openssl rand -hex 32 ) | sudo tee -a key.src// Windows"1;$(openssl rand -hex 32)" | Out-File "C:\kms\key.src"Add..
coder_
Good coder