공부메모 & 오류해결 37

[Spring Boot] Gzip 압축을 통해 로딩 성능 최적화 하기

목차1. 개요2. Gzip?3. Gzip 사용 시와 사용하지 않을 때의 차이4. Gzip 설정법5. 적용 전, 적용 후 차이6. 결론  1. 개요리액트 + 스프링부트로 진행 중인 프로젝트를 어느 정도 마무리 했다. 이제 배포전 성능테스트를 하며 최적화에 신경 쓰고 있다. 나는 'Lighthouse'를 사용해서 1차적으로 성능을 측정하고 문제점을 고쳐나가고 있다. 이때 만난 콘텐츠 로딩속도 문제에 관해 찾아보다가 Gzip에 관해 알게 되었다. 그래서 공부하고 기록할 겸 글을 작성한다. 2. Gzip?Gzip은 데이터를 압축하여 전송하는 표준적인 방법 중 하나로, 주로 웹에서 클라이언트와 서버 간의 데이터 전송 시 사용된다. Gzip은 텍스트 기반의 파일(HTML, CSS, JavaScript, JSON 등..

[Nginx] Nginx란 무엇이고 왜 사용할까?

목차1. 개요1.1 리액트와 스프링 부트 조합의 특징 1.2 엔진엑스를 도입하는 일반적인 시나리오2. Nginx를 사용하는 이유2.1 정적 파일 서빙 최적화 2.2 로드 밸런싱 및 리버스 프록시 기능 2.3 확장성과 유연한 설정3. 스프링 부트 내장 서버로 정적 파일 서빙 시 한계점3.1 성능적 제약 3.2 배포 및 확장성 문제 3.3 보안 및 인증서 관리 불편4. 엔진엑스 + 리버스 프록시 설정의 이점4.1 단일 도메인 통합 및 CORS 문제 완화 4.2 독립적 배포, 스케일링 및 운영 편의성 4.3 보안 강화 및 성능 최적화 4.4 트래픽 라우팅과 A/B 테스트 용이성5. 다른 대안들과 비교5.1 아파치(HTTPD) 대비 장점 5.2 Node.js 기반 정적 서버 대비 장점 5.3 클라우드 로드밸런서..

[AWS] EC2에 docker, dokcker-compose 설치하고 yml 작성하기

목차1. docker 설치2. docker-compose 설치3. docker-compose.yml 작성 1. docker 설치우선 관리자 권한으로 실행할 일이 많으니 관리자 권한으로 전환하고 시작해 준다.sudo su -  그 뒤 아래 명령어들을 차례로 입력해서 Docker를 설치해 준다.1. 현재 시스템의 패키지 목록을 업데이트하여 최신 버전을 가져온다.$ sudo apt-get update 2. HTTPS를 통한 패키지 다운로드 및 추가 저장소 관리에 필요한 도구들을 설치$ sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common 3. Docker의 공식 GPG 키를 다운로드하..

[AWS] EC2 고정아이피 만들기 (탄력적 IP - EIP 설정)

목차1. EIP 설정 이유2. EIP 할당받기 1. EIP 설정 이유왜 EC2를 그냥 사용하지 않고 EIP설정을 해줄까? 이유는 바로 IP주소이다. 인스턴스를 중지하고 시작할 때마다 내 인스턴스 IP가 변경된다. IP가 중지시키고 실행될 때마다 변경된다면 귀찮은 일이 많이 발생한다. 따라서 EIP를 설정해서 고정적인 공인 IP를 할당받아서 사용한다.  2. EIP 할당받기이제 EC2에 접속해서 왼쪽탭의 네트워크 및 보안 -> 탄력적IP를 눌러주고 화면 우측상단에 버튼을 클릭한다. 별다른 설정이 필요하지않다. 바로 할당을 눌러준다. 할당을 받으면 위와 같은 화면으로 넘어온다. 여기서 방금 만들어진 탄력적 IP주소를 체크해 주고 우측상단의 작업버튼을 누른 뒤 탄력적 IP 주소 연결버튼을 클릭한다. 이제 기..

[AWS] EC2 접속하고 비밀번호 설정하기 (free-tier)

목차1. putty 다운2. putty 설정3. 패스워드 설정 EC2를 아직 만들지않았다면?https://ngwdeveloper.tistory.com/172 [AWS] 프리티어 EC2 인스턴스 만들어보기목차1. 인스턴스 생성2. 보안 그룹 생성(키페어 생성 한 뒤 그 창은 그대로 두고 새로운 인터넷 창을 하나 더 켜서 잠깐 설정하기)3. 인스턴스 재작성   1. 인스턴스 생성aws에 로그인 후 ec2에 들ngwdeveloper.tistory.com  1. putty 다운https://putty.softonic.kr/ PuTTYPuTTY - 개발자에게 꼭 필요한 도구putty.softonic.krputty 공식 홈페이지에 접속해서 다운을 받아준다. 다운 후 next만 눌러서 설치하기. 2. putty 설정..

[AWS] 프리티어 EC2 인스턴스 만들어보기

목차1. 인스턴스 생성2. 보안 그룹 생성(키페어 생성 한 뒤 그 창은 그대로 두고 새로운 인터넷 창을 하나 더 켜서 잠깐 설정하기)3. 인스턴스 재작성   1. 인스턴스 생성aws에 로그인 후 ec2에 들어왔다면 화면 중앙에 있는 인스턴스 시작을 눌러준다. 이 화면이 뜰 텐데 이제 생성할 ec2의 이름을 지정해 주고 사용할 ec2의 운영체제를 선택해 준다. 나는 우분투가 편해서 우분투로 선택했다. 보통 첫 번째인 Amazon Linux와 내가 선택한 Ubuntu로 많이 나뉘는 거 같다. 비교해본 뒤 편한 걸로 선택하면 될 것 같다. 이제 첫 번째 동그라미인 아키텍처가 64비트로 되어있는지 확인 후 인스턴스 유형은 t2.micro로 선택해 준다. 어느 정도 자본이 된다면 다른 인스턴스를 선택해도 된다. ..

[PostgreSQL] pgAdmin4 설치, 서버 연결 방법

목차1. 설치2. DB연결  pgAdmin을 사용하여 PostgreSQL 서버에 연결하는 방법  1. 설치https://www.pgadmin.org/download/pgadmin-4-windows/ DownloadpgAdmin 4 (Windows) Download Maintainer: pgAdmin Development Team pgAdmin is available for 64 bit Windows™ 7 SP1 (desktop) or 2008R2 (server) and above, up to v4.30. v5.0 and later are supported on Windows 8 (desktop) or 2012 (server) and above. v7.0 andwww.pgadmin.org위 사이트에 들어가..

[Docker + Jenkins] Docker에 Jenkins 설치하고 사용하기

목차1. 개발환경2. Jenkins 설치, 실행3. Jenkins 설정4. ngrok 설정5. webhook 설정6. 테스트  1. 개발환경Docker 25.0.2Ubuntu 20.04.6    2. Jenkins 설치, 실행docker image pull jenkins/jenkins:jdk17 우분투에 다음 명령어를 사용해서 젠킨스를 설치한다. jdk버전은 본인의 프로젝트에 맞게 설치하면 된다.  2-1. Jenkins 실행vim docker-compose.yml위 명령을 사용해서 docker-compose.yml을 텍스트 에디터로 실행해 준다.   다음과 같이 설정해 준다.기본포트는 8080이며 다른 포트와 겹칠 가능성이 있어서 8180으로 포트포워딩 해줬다.   docker-compose up -d..

[Linux] ngrok 설치하기

ngrok 설정Ngrok은 로컬 개발 환경에서 인터넷을 통해 웹 애플리케이션에 안전하게 접근할 수 있도록 해주는 도구이다. 보안 연결을 통해 인터넷에서 서버를 실행할 수 있으며, 웹 애플리케이션을 외부에 노출시키지 않고도 테스트할 수 있다.  이걸 사용하는 이유는 webhook을 사용해 테스트할 때 localhost, 127.0.0.1 같은 루프백 아이피를 사용할 수 없다. 때문에 Ngrok을 통해 테스트해 준다.  wget https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-v3-stable-linux-amd64.zip다음 명령어로 우분투에서 ngrok을 다운로드하여준다.   unzip ngrok-v3-stable-linux-amd64.zip다음 명령어로 압축을 풀어준다.   ..

[MSA] MSA란 무엇일까?

목차 1. 모놀리식(Monolithic) 방식(AS-IS) 2. MSA 방식(TO-BE) 3. Monolithic? MSA? 4. MSA방식 성공의 핵심 요소     1. 모놀리식(Monolithic) 방식(AS-IS):하나의 애플리케이션이 하나의 거대한 아키텍처를 가지는 방식 장점단순성모든 코드가 모여있어서 변경 사항이 발생할 경우 필요한 모든 코드가 한 곳에 존재한다. 그래서 테스트와 디버깅이 간단하다. 간편한 배포단일 프로젝트로 배포하면 되기 때문이 간단하다. 새로운 기능이 추가되거나 버그가 수정될때마다 애플리케이션을 배포하면 된다. 보편성대부분의 개발자가 모놀리식 방식으로 개발하기 때문에 익숙함이 높아 프로젝트를 쉽게 시작할 수 있다. 쉬운 모니터링오류 발생시 문제가 발생한 위치를 식별하기 쉽다 ..

프로필사진

남건욱's 공부기록

반응형