1. 계기개인 SpringBoot 프로젝트를 AWS에 Ec2에 배포도 해보고, 공부해보며 AWS 인프라에 대해 공부해야겠다고 생각하고있었는데, 그때 마침 학교에서 여름방학에 진행하는 AWS 자격증 취득과정에 참여해 보기로하였다. 2.사전 지식AWS에 대한 지식은 거의 없는 수준에서 학습을 시작하였다.작년 AWS에 대해 공부해보려고 시도했었는데, 혼자 공부하다가 인터넷에서 큰 금액이 과금 되었다는 글들을 보고 겁먹고 계정을 비활성화해두고, 추후에 공부하기로 마음먹었었다. 3.실습내가 직접 AWS에서 실습해봤던 내용은 EC2에 SpringBoot 서버를 배포하고 보안규칙을 설정하는 정도였다.그래서 이번 기회에 다양한 서비스들에 대해 실습을 진행해봤다.(AWS SAA 서비스 범위가 많아서 다하지는..
Development Tools

1. AWS 설정AWS 설정은 프리티어에 맞게 설정하였고 아래는 보안그룹 및 EC2 설정 내용이다.AWS EC2OS: Ubuntu인스턴스: t2.micro스토리지: 20GB 2. 배포 시도 1(실패)배포는 Docker을 통해 시도할것이기 때문에 EC2내부에 Docker 패키지를 설치해줬다.//Ubuntu 시스템의 패키지 목록을 업데이트sudo apt update//Docker 패키지 설치sudo apt install -y docker.ioDocker 설치확인Docker Compose를 통해 실행 할것이므로 Docker Compose를 설치해주고 권한을 설정해준다.// Docker Compose 설치sudo curl -L "https://github.com/docker/compose/releases/lat..

1.EditorConfigIDE에서 일관된 코딩 스타일을 유지하도록 도와주는 설정 파일이다..editorconfig 파일을 생성하여 코드 스타일을 정의할수 있다. Vscode에서는 별도 설정없이 다음 확장을 설치하면 .editorconfig을 생성하는것만으로 적용이 가능하다. 2 .editorconfig 작성법파일의 확장자나 경로에 맞춰 별도의 설정을 할수 있다.[*] # 모든 파일에 적용[*.js] # .js 확장자를 가진 파일에만 적용[*.{html,css}] # .html, .css 확장자에만 적용[tests/*] # tests 폴더 아래 모든 파일에 적용 설정이 가능한 대표적인 것들은 다음과같다.indent_style들여쓰기 스타일 (space ..

1. Antora 오픈 소스 문서 생성 도구 Git 리포지토리에서 문서 소스를 직접 가져와 빌드한다.스프링부트의 해당 문서 또한 Antora로 생성되었다. https://spring.io/projects/spring-framework Spring FrameworkThe Spring Framework provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform. A key element of Spring is infrastructural support at the application level: Spring f..
1.Git Blame git blame은 각 코드의 변경 이력을 한 줄 단위로 추적하는 Git 명령어이다.누가, 언제, 어떤 커밋에서 해당 코드를 수정했는지 빠르게 확인할 수 있다.git blame 2..git-blame-ignore-revs프로젝트에서 코드 스타일 변경, 포매팅, 대량 리팩토링처럼 로직 변경 없이 파일 전체가 수정된 커밋이 있을 때, git blame을 실행하면 그 커밋이 모든 줄에 영향을 미친 것으로 나타나게되는 문제가 있다.이 문제를 해결하기 위해 git-blame-ignore-revs 파일을 추가해야한다. 다음으로 파일을 생성하고touch .git-blame-ignore-revs 무시할 커밋 해시들을 추가해준다(Prettier같은것들 적용한 커밋)a1b2c3d4e5f6g..

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) 기능을 제공한..