전체 글
-
Windows 10 | nginx 설치하기▼ DevOps/Nginx 2021. 12. 22. 23:02
Nginx란 웹 서버 소프트웨어로, 가벼움과 높은 성능을 목표로 한다. 웹 서버, 리버스 프록시 및 메일 프록시 기능을 가진다. http://nginx.org/en/download.html ▶Stable version nginx/Windows를 다운로드 받는다. nginx 실행 방법1) 설치 경로로 이동해서 nginx.exe 실행 방법2) CMD에서 해당 경로로 이동 후 명령어 실행 start nginx nginx 종료 방법1) 작업관리자에서 nginx를 종료한다. 방법2) CMD에서 해당 경로로 이동 후 명령어 실행 nginx -s stop localhost로 접속하여 해당 페이지가 정상적으로 보이는지 확인한다.
-
Jenkins | 홈 디렉터리 변경▼ DevOps/젠킨스 (Jenkins) 2021. 12. 20. 20:51
Jenkins Home Directory 젠킨스를 설치하고 Item을 만들어 빌드하면 젠킨스 홈 디렉터리/workspace에 Item명으로 생성되는데 이 위치를 변경할 수 있다. Jenkins → Jenkins관리 → 시스템 설정 부분에서 Jenkins_home 디렉터리를 알 수 있다. 홈 디렉터리를 변경하려면 Jenkins가 설치된 루트 폴더로 이동한다. 윈도우 C:\Program Files\Jenkins 리눅스 /var/lib/jenkins 1. 해당 경로에 있는 Jenkins.xml에 JENKINS_HOME의 값을 원하는 경로로 변경한다. 2. 기존의 경로에 생성한 Item 관련 파일이 있다면 새로 설정한 JENKINS_HOME 위치로 이동시킨 후 재시작한다. Jenkins This service ..
-
JAVA | try-with-resource, 자원을 자동으로 해제▼ Backend/자바 (JAVA) 2021. 12. 13. 17:05
기존의 자원 해제 방법 try - finally 지금까지 개발을 해오면서 파일 관련 처리를 할 때면 자원 관련 객체인 InputStream, OutputStream을 사용하다 보니(꼭 파일 관련 처리가 아니더라도) 그럴 때마다 사용했던 자원에 대한 close() 처리를 finally 에서 해주고 있었다. 큰 문제는 없었지만 클린 코드, 리팩터링 관련해서 공부하다 보니 finally에서 자원을 해제하지 않고도 자원을 해제할 수 있는 방법이 있었다. try - finally BufferedInputStream in = null; BufferedOutputStream out = null; try { in = new BufferedInputStream(inputStream); try { out = new Buf..
-
JAVA | JVM(Java Virtual Machine) 이란▼ Backend/자바 (JAVA) 2021. 12. 10. 17:32
JVM(Java Virtual Machine) 자바 가상 머신으로 자바 바이트 코드를 실행할 수 있는 주체다. CPU나 운영체제(플랫폼)의 종류와 무관하게 실행이 가능하다. 운영체제 위에서 동작하는 프로세스로 자바 코드를 컴파일해서 얻은 바이트 코드를 해당 운영체제가 이해할 수 있는 기계어로 바꿔 실행시켜주는 역할을 한다. 1. .java → javac.exe → ByteCode Java Source Code로 작성된 .java 파일이 Java Complier(javac.exe)를 통해 ByteCode(.class)로 변환된다. 바이트코드는 JVM(자바가상머신)이 이해할 수 있는 기계어이다. 2. Class Loader class 파일을 JVM내로 로드하여 바이트코드를 해당 운영체제의 기계어에 맞게 변환..
-
Spring Cloud MSA | 마이크로서비스 아키텍처(microservice architecture, MSA)▼ Backend/└ MSA, Spring Cloud 2021. 12. 7. 14:11
▶ 마이크로 서비스 아키텍처(microservice architecture, MSA) 마이크로 서비스는 애플리케이션 구축을 위한 아키텍처 기반의 접근 방식이다. 마이크로 서비스를 전통적인 모놀리식(monolithic) 접근 방식과 구별 짓는 기준은 애플리케이션을 핵심 기능으로 세분화하는 것이다. 각 기능을 서비스라고 부르며 독립적으로 구축하고 배포할 수 있다. 이는 개별 서비스가 다른 서비스에 부정적 영향을 주지 않으면서 작동 (또는 장애가 발생)할 수 있음을 의미한다. 이러한 마이크로서비스 아키텍처 기반의 서비스를 구축해보면서 그 과정 속에서 생겨난 기능들을 사용해보며 이해하는 것에 목적을 두고 작성했다. Config Server - Config-Server 구축하기 구성 데이터를 담당하고 각각의 마이..
-
Spring Cloud MSA - 6 | Spring Cloud Gateway, Load balancing 구현하기▼ Backend/└ MSA, Spring Cloud 2021. 12. 7. 11:18
Spring Cloud MSA | 마이크로 서비스 아키텍처 (microservice architecture, MSA) ▶ Spring Cloud Gateway (SCG) 마이크로 서비스 앞단에 위치하며 요청들을 라우팅 설정에 따라서 클라이언트 대신에 요청하고 응답하면 다시 사용자에게 전달해주는 Proxy 역할을 한다. 즉, 모든 요청을 받아 라우팅 설정에 따라 요청한 서비스로 요청, 응답하는 입구 역할을 한다. 📌 특징 Spring Framework 5, Project Reactor 및 Spring Boot 2.0을 기반으로 구축 모든 요청 속성에서 경로를 일치시킬 수 있다. 조건자와 필터는 경로에 따라 다르다. 회로 차단기 통합 Spring Cloud Discovery, Client 통합 요청 속도 제..
-
Spring Cloud MSA - 5 | Circuit Breaker, Resilience4J 구현하기▼ Backend/└ MSA, Spring Cloud 2021. 12. 3. 17:59
▶ Circuit Breaker란 어떤 서비스가 과부하 또는 장애가 발생하였을 때 그 서비스를 호출하는 다른 서비스들의 연쇄적인 장애를 막기 위해 미리 차단하여 전체 서비스에 영향이 없게 방지하기 위한 기능이다. 대표적인 Circuit Breaker 중 하나인 Netflix Hystrix를 사용하려고 했으나 Deprecated 되어 있는 걸 확인했다. 스프링 블로그를 찾아보니 아래의 Netflix 프로젝트들이 Entering Maintenance Mode (Spring Cloud 팀이 더 이상 모듈에 새로운 기능을 추가하지 않는다는 것을 의미) 된다는 내용이 있었다. 삭제가 되어 사용이 불가능한 것은 아니지만, 새로운 프로젝트 환경에서는 Resilience4J를 사용하는 것을 대안으로 하고 있다고 한다...