분류 전체보기 162

개인 서버 구축(2) - USB를 사용해 우분투 설치하기 (1/2)

1. 리눅스 iso 다운로드https://ubuntu.com/download/server Get Ubuntu Server | Download | UbuntuGet Ubuntu Server one of three ways; by using Multipass on your desktop, using MAAS to provision machines in your data centre or installing it directly on a server.ubuntu.com 위 링크를 접속해서 Ubuntu Server를 다운로드한다. 상단을 보면 Desktop, Server로 나뉘어 있다. 두 개의 큰 차이점은 GUI와 기본 패키지의 유무 차이이다. 또한 Desktop버전은 웹 브라우저, 미디어 플레이어 등이 기본..

개인 서버 구축(1) - SSD, RAM 장착하기

1. 사양1-1. 베어본2025/2/4(화)에 시켜서 2025/2/11(화)에 받았다. 해외배송이었고 딱 1주일 걸렸다. (G마켓 구매) 파워는 85wcpu는 6600h로 구매했다. 6코어에 12쓰레드라는게 마음에 들어서 구매했다.또한 베어본으로 구매해서 ssd, ram은 직접 달기로했다.(가성비) 1-2. SSD램은 16기가로도 충분하지만 추후에 3~4개까지 프로젝트를 올려두고 다양한 용도로 쓸 예정이기 때문에 넉넉하게 32기가로 사용했다. 1-3. RAM램도 욕심을 조금 부렸다. 512기가로 하려다가 넉넉하게 1 테라로 주문했다. 결국 배보다 배꼽이 더 큰 느낌이지만 램과 하드는 재사용할 수 있기에 넉넉히 주문했다. 2. 조립과정본체 포장은 이렇게 해서 왔다. 좌측은 램(16GB) 2개, 우측은 하드..

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

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

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

1. 개요개인 프로젝트에서 스프링부트 + 리액트를 사용해 배포를 하는 도중 Nginx에 관해 궁금해서 조사를 하고 게시글을 작성한다.1.1 리액트와 스프링 부트 조합의 특징리액트는 빌드 과정 이후 모든 화면 구성을 정적 파일(HTML, CSS, JS)로 제공하고, 스프링 부트는 REST API 형태로 동적 데이터를 제공하는 구조를 갖는다. 이렇게 서버와 화면을 분리하는 아키텍처는 일반적으로 볼 수 있고, 배포에 유연하며 확장이 용이하다고 볼 수 있다. 1.2 엔진엑스를 도입하는 일반적인 시나리오보통은 리액트 정적 파일을 효율적으로 서빙하고, 백엔드 API를 안정적으로 프록시하면서 하나의 도메인 아래에서 서비스를 제공하고자 할 때 Nginx를 리버스 프록시로 도입한다. CORS 문제를 간편하게 해결하며 ..

[AWS] EC2에 docker, dokcker-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 키를 다운로드하여 인증된 패키지를 설치할 수 있도록 시스템에 추가.$ curl -fsSL https://download...

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

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

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

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 설정putty를 설치 후 실행하면 다음과 같이 뜬다. 이제 Host..

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

1. 인스턴스 생성aws에 로그인 후 ec2에 들어왔다면 화면 중앙에 있는 인스턴스 시작을 눌러준다. 이 화면이 뜰 텐데 이제 생성할 ec2의 이름을 지정해 주고 사용할 ec2의 운영체제를 선택해 준다. 나는 우분투가 편해서 우분투로 선택했다. 보통 첫 번째인 Amazon Linux와 내가 선택한 Ubuntu로 많이 나뉘는 거 같다. 비교해본 뒤 편한 걸로 선택하면 될 것 같다. 이제 첫 번째 동그라미인 아키텍처가 64비트로 되어있는지 확인 후 인스턴스 유형은 t2.micro로 선택해 준다. 어느 정도 자본이 된다면 다른 인스턴스를 선택해도 된다. 그 후 키페어를 만들어야 하니 별표가 쳐져있는 을 눌러준다. 이제 키페어 이름을 지정해 주고 유형은 RSA로 지정해 준다. 프라이빗 키 파일 형식은 본인이 편..

중간점검

프로젝트를 시작한지도 3개월이 되어간다. 3개월동안 열심히 했던것도있지만 나태해졌던 기간도 있다. 아직 마무리 지을것은 많이 남았지만 중간점검을 하며 되돌아볼겸 스스로의 일지를 작성해본다. 1. GitHub 기록 서버작업할때는 pr템플릿을 사용해서 구분을 해뒀다. 하지만 화면작업(react)를 할때는 찾아가면서 천천히 할 생각이라서 따로 구분해두지 않았다. 지금와서 생각해보면 좀 아쉬운 부분이다. 템플릿의 유무에 따라 큰 차이가 있지는 않지만, 그래도 다시한번 내가 했던 작업이 어떤작업에 속해있는지 다시한번 생각해주는 부분이였던것같다. 2. 서버 테이블 현황 어느새 테이블만 해도 24개가 되어버렸다. 프로젝트가 마무리되어갈 단계에서 다시한번 검토해보며 설계적 실수를 확인하려한다. 기초단계에서 튼튼하..

서비스 런칭 도전 프로젝트 (Spring Boot + React)

1. 프로젝트 개요여행 관련 커뮤니티다. 자세한 카테고리는 제작해 가며 추가, 수정, 삭제할 예정이고 커뮤니티 카테고리에 따라 게시글 출력방식, 작성방식 등을 차별화하여 구성할 것이며, 화면도 가독성을 높여서 작성할 예정이다. 2. 기술 선택 이유Spring Boot (서버)안전성과 성능, 생산성, 확장성 React (화면)유연한 UI 개발, 빠른 렌더링 3. 설정 및 환경 구성Spring Boot (서버)Spring Boot 3.3.2JDK 17.0.7gradle 8.8 React(화면)React 10.8.2node 20.17.0 4. 계획사용해보지않은 react를 사용해서 화면을 구성할 예정이며 퇴근 후 2-3시간 정도 투자할 예정이다.다른 자격증이나 회사 업무에 대해 공부해야 할 것도 있기 때문에..

프로필사진

남건욱's 공부기록

반응형