1.Light House 란?Google에서 제공하는 웹 애플리케이션 품질 분석 도구다.웹 페이지의 성능, 접근성, SEO, PWA등의 요소를 분석해준다.https://developer.chrome.com/docs/lighthouse/overview?hl=ko Lighthouse 소개 | Chrome for DevelopersLighthouse를 설정하여 웹 앱을 감사하는 방법을 알아보세요.developer.chrome.com 2.사용법F12로 개발자 도구를 연후 LightHouse메뉴를 누르고 자신에게 맞는 세팅을 한후 Analyze page load를 누른다. 그러면 다음과같이 각 항목에 대한 점수를 평가해준다. 아래로 내리면 점수에 대한 이유들이 나오며 어느점을 고쳐야하는지 알려준다.
1.Monorepo (모노레포)여러 프로젝트(서비스, 패키지, 라이브러리 등)를 하나의 리포지토리에서 관리하는 방식으로하나의 Git 리포지토리에서 모든 코드베이스를 운영한다. /monorepo ├── apps │ ├── frontend (React App) │ ├── backend (Node.js API) │ └── mobile (React Native App) ├── packages │ ├── ui-library (공통 UI 컴포넌트) │ ├── utils (공통 유틸리티 함수) │ └── config (공통 설정) ├── .git ├── package.json ├── README.md 하지만 리포지토리가 커질수록 성능 저하가 일어나고 하나의 레포지토리로 관리하기 때문에 일부..
1.Cloudflare란?웹사이트의 속도 최적화, 보안 강화, 안정성 향상을 위한 글로벌 콘텐츠 전송 네트워크(CDN) 및 보안 서비스이다.전 세계 300개 이상의 데이터 센터를 통해 DDoS 공격 방어, 트래픽 최적화, DNS 관리, API 보호 등의 기능을 제공한다. 2.Cloudflare의 기능2-1. 콘텐츠 전송 네트워크(CDN)전 세계적으로 분산된 캐시 서버를 활용해 정적 콘텐츠(이미지, CSS, JavaScript 등)를 빠르게 제공할수있다.사용자와 가장 가까운 서버에서 콘텐츠 제공 → 로딩 속도 단축 원본 서버 부하 감소 → 서버 비용 절감 2-2.DDoS 보호대규모 DDoS 공격을 차단하고 악성 트래픽을 걸러내는 WAF(Web Application Firewall) 기능을 제공한..
1.GitLabGit을 기반으로 한 웹 기반 버전 관리 및 협업 플랫폼이다.GitHub은 GitHub Actions를 사용하여 CI/CD를 설정하는 반면 GitLab은 자체적으로 CI/CD 기능을 내장하고 있다. 2.GitLab을 쓰는 상황?GitLab은 Github보다 기업 환경과 DevOps 프로세스에 적합한 도구이다.고급 CI/CD, 보안 기능을 제공하여 팀 내의 프로젝트 관리 및 보안 검토를 더 쉽게 해준다.
1.Github ActionsGitHub에서 제공하는 CI/CD 자동화 도구이를 사용하면 코드 변경 사항을 자동으로 빌드, 테스트 및 배포할 수 있다. 2.CI/CD2-1.CI (Continuous Integration, 지속적 통합)코드 변경 사항을 정기적으로 통합하고 자동으로 테스트하는 프로세스코드가 변경될 때마다 자동으로 빌드 및 테스트를 하고, 수행 코드 품질 유지 및 버그 조기 발견하기 위해 존재한다. 2-2. CD (Continuous Deployment 지속적 배포)CI 이후 빌드된 코드를 자동으로 배포(Deployment)하거나, 운영 환경에 배포 가능한 상태로 유지(Delivery)하는 과정 3. GitHub Actions Workflow 작성법기본 적으로 레포지토리의 루..
1.메시지 브로커(Message Broker)란?시스템 간에 메시지를 전송하고 중개하는 역할을 하는 소프트웨어 시스템 생산자와 소비자 간의 의존성을 줄이고 시스템 간의 통신을 원활하게 처리할 수 있게한다. 2. 왜 필요할까?2-1.메시지 브로커가 없을 때메시지 브로커가 없다면 시스템 간에 직접적인 연결을 하게되고 시스템 구조가 간단하다.이경우 동기식 통신을 사용하므로, 데이터가 직접적으로 전달되어 즉시 처리된다.하지만 시스템 간에 직접적인 연결이 필요하고, 각 시스템은 서로에 대한 의존성이 높아지기 때문에 결합도가 증가한다.그렇기 때문에 하나의 시스템이 장애를 일으킬 경우, 다른 시스템에도 연쇄적인 장애가 일어난다.또한 직접 통신하기에 모니터링이나 트래픽 처리가 상대적으로 어려울수있다.[제공자] ->..
1.Dockerfile 만들기나는 Node.js 20.15.0 기반으로 하는 이미지를 만들기 위한 Dockerfile를 만들것이다.그후 /app 디렉토리로 package.json을 복사후 종속성 설치와 빌드 과정을 거친다.# Node.js 20.15.0 기반 이미지 사용FROM node:20-alpine# 2. 작업 디렉토리 생성WORKDIR /app# 3. 프로젝트 파일을 컨테이너로 복사COPY package.json package-lock.json /app/# 4. 종속성 설치RUN npm install# 5. 나머지 파일을 컨테이너로 복사COPY . /app/# 6. 빌드 명령어 실행RUN npm run build# 7. Vite 개발 서버 실행 명령어 설정 (빌드 후)CMD ["npm", "run..
0.Dockerfile Github에서 다른 사람의 레포지토리를 구경하다 보면 다음과같은 Dockerfile이라는 파일들을 쉽게 접할수있다.다음은 GPT-2 의 Dcoker 파일이다. 다음은 Dockerfile.gpu다.GPT-2를 실행하기 위한 환경을 세팅 해준다.# TensorFlow 1.15.0 GPU 버전, Python 3.7을 기반 이미지로 설정FROM tensorflow/tensorflow:1.15.0-gpu-py3# NVIDIA Docker 1.0 관련 설정 (NVIDIA 드라이버가 필요하다고 라벨링)LABEL com.nvidia.volumes.needed="nvidia_driver"LABEL com.nvidia.cuda.version="${CUDA_VERSION}"# NVIDIA 컨테이..