본문 바로가기

Develop/DevOps12

AWS EC2 터미널 - 애플리케이션 빌드 과정 중 멈춤 현상 해결 프리티어 계정을 사용중이고, 배포하기 위해 EC2 터미널에서 애플리케이션을 빌드하는 과정에서 항상 76%, test 빌드 단계에서 실행 시간만 늘어날 뿐, 다음 과정으로 넘어가질 않았습니다. 구글링을 해보던 중, 메모리 부족 현상을 해결하기 위한 swap 메모리를 할당하는 방법이 있었습니다. 속는셈치고 한 번 방법을 따라해보았고, 빌드 과정만 10분이상 지나도 되질 않던 것이 1분만에 빌드되었습니다. swap 메모리란? '가상 메모리 또는 페이징이라고도 불리는 swap 메모리는 시스템의 사용 가능한 메모리 용량을 확장하기 위해 사용되는 기술이다. RAM의 확장으로 사용할 수 있으므로, 활발하게 사용되지 않는 데이터를 저장하기 위한 추가 공간을 제공한다.' 과정은 다음과 같습니다. 일단, EC2 연결을 진.. 2023. 6. 7.
Git flow 브랜칭 전략 보다 효율적인 개발 프로젝트 코드 관리를 위해 브랜치의 종류를 나눠 관리하는 전략을 말한다. 대표적인 브랜칭 전략에는 Git flow가 있다. Git flow - https://nvie.com/posts/a-successful-git-branching-model/ 원조 Git flow에서 파생된 여러 Git flow 중 대표적인 것에는 Github flow, Gitlab flow가 있다. pre-project를 위한 Coz' Git flow 핵심 branch main branch : 사용자에게 언제든 제품으로 출시할 수 있는 branch dev branch : 개발 branch 보조 branch feature branch : 기능 개발, 리팩토링 등 다양한 작업을 기록하기 위한 branch .. 2022. 12. 17.
Git branch Git branch 기존 main branch에서의 작업은 유지하고 새로운 feature branch에서 코드 추가 및 수정 작업을 할 수 있다. branch 생성 및 변경 # feature라는 branch를 새로 생성하는 경우 git switch -c feature git checkout -b feature # 기존에 있던 main branch로 HEAD를 변경하는 경우 git switch main git checkout main branch 합치기 # 기능 개발이 진행 git commit -m "기능1의 세부 기능1" git commit -m "기능1의 세부 기능2" git commit -m "기능1 개발 완료" # 병합을 위해 main branch로 전환 git switch main # main b.. 2022. 12. 16.
Github Repository & Github Project 칸반 Gihub Repository 꼭 필요한 파일 README.md .gitignore LICENSE Project 관리 시 활용 가능한 Github 기능 Issue - 새로운 기능 제안 및 버그 제보 등의 이슈 Milestone - task card를 그룹화하는 데 사용 (Bare Minimum, Advanced Challenge, Nightmare 표시) Pull Request - 작업 내용을 branch에 합칠 수 있는지 확인하는 요청 Project - 업무 관리 도움 (칸반 보드 생성) Gihub Project 칸반 칸반 - 작업을 시각화하고, 업무의 병목 현상과 리소스 낭비를 해결하는 업무 관리 방법 칸반 실천법 6가지 업무 시각화 진행 중인 업무 제한 흐름 관리 명확한 프로세스 정책 피드백 루프 .. 2022. 12. 16.
Ngrok을 이용한 로컬에서 서버 실행 외부에서 현재 로컬 환경에 접근할 수 있도록 네트워크 방화벽을 설정할 수 있다. - https://learn.microsoft.com/ko-kr/azure/rtos/netx-duo/netx-duo-nat/chapter1 그러나, 이 방법은 보안적으로 많이 위험하다. Ngrok 따로 네트워크 설정을 하지 않아도 방화벽을 넘어 외부에서 내 로컬 환경에 접근할 수 있게 해주는 터널링 프로그램 - https://ngrok.com/docs/secure-tunnels#what-are-ngrok-secure-tunnels (무료 플랜의 경우 2시간 가량 연결 세션 유지, 개발 목적으로 테스팅하기에 유용) 프론트 엔지니어와 백엔드 엔지니어가 일부 기능을 구현한 후 통신 테스트를 진행하는 데에 활용된다. Ngrok 설치.. 2022. 12. 13.
Tomcat을 이용한 수동 배포 JAR보단 WAR로 패키징한 경우 더 다양한 설정과 웹 환경을 구성할 수 있다. 다음은 프로젝트를 .war 포맷으로 변환한 후에 Tomcat을 이용해 실행해보는 과정이다. 1. JRE 설치 - https://www.azul.com/downloads/?version=java-11-lts&os=windows&architecture=x86-64-bit&package=jre 2. JRE 환경 변수 설정 변수 이름 : JRE_HOME 변수 값 : C:\Program Files\Zulu\zulu-11-jre 3. Tomcat 설치 - https://tomcat.apache.org/download-90.cgi JDK 11 버전은 Tomcat 9 버전과 가장 호환성이 높다. 다운로드 경로는 편한대로 ex) Mac : .. 2022. 12. 13.
Cloud 운영 전략 프록시 서버 클라이언트가 서버와 소통할 때, 서버에 바로 접근하지 않고 자신을 통해 서버에 접근할 수 있도록 해주는 일종의 대리 서버이다. 프록시 서버 종류 Forward Proxy 클라이언트 가까이에 위치한 프록시 서버로 클라이언트를 대신해 서버에 요청을 전달한다. 캐싱을 통한 빠른 서비스 이용 가능하다. 서버가 응답받은 IP는 프록시 서버의 IP이기 때문에 보안 측면에서 좋다. Reverse Proxy 서버 가까이에 위치한 프록시 서버로 서버를 대신해서 클라이언트에게 응답을 제공한다. 사용자가 많아져 서버에 과부하가 올 경우를 위해 분산 처리를 할 수 있다. 서버가 보내는 IP는 프록시 서버의 IP이기 때문에 보안 측면에서 좋다. 사용자의 증가로 인한 과부하를 대비하기 위한 두 가지 방법 Scale-.. 2022. 12. 9.
리눅스 명령어 - 프로세스 Kill sudo lsof -i :(실행한 포트번호)# 해당 포트 번호로 실행 중인 애플리케이션 확인 ps - aux | grep jar# 실행 중인 jar 파일 확인 (PID 번호 확인) kill -9 (PID 번호)# PID 번호로 실행 중인 애플리케이션 킬 sudo pkill -f 'java -jar'# jar 파일 프로세스 킬 2022. 12. 8.
Cloud 개요 및 AWS 서비스 - 수동 배포 데이터 센터에서는 서버의 자원과 공간, 네트워크 환경을 제공한다. (On-premise) 현대의 클라우드 컴퓨팅은 On-premise 환경과는 달리, 가상 컴퓨터를 대여한다. 클라우드 컴퓨팅의 장점 필요할 때마다 컴퓨팅 능력을 유연하게 조절 고정적 비용이 들어가는 On-premise 환경과는 달리, 사용한 만큼의 비용만 지불 컴퓨터의 스냅샷을 통해 다른 컴퓨터로 즉시 이주 가능 클라우드 컴퓨팅의 단점 특정 클라우드 벤더에 종속되기 때문에, 그 벤더 서비스에 문제가 생기면 내가 배포하고 관리하는 환경에도 영향을 미친다. 클라우드의 대표적인 서비스 및 기본 제공 서비스 범위 SaaS(Software as a Service) : 클라우드 제공자가 당장 사용 가능한 소프트웨어를 제공 Paas(Platform a.. 2022. 12. 8.