오늘은 MSA(Micro Service Architecture)과 Monolithic 아키텍쳐에 대해서 정리하고 어떤 것을 선택해야 하는지 정리해보고자 한다. 모놀리식(Monolithic) 아키텍쳐 모놀리식 아키텍쳐는 전통적인 소프트웨어 아키텍쳐로, 모든 애플리케이션 컴포넌트, 서비스 코드가 단일 코드베이스 안에 포함된 아키텍쳐이다. 장점 개발 및 배포가 비교적 간단하다. 코드 이해와 유지보수가 단순할 수 있다. 단점 모든 코드가 유기적으로 연결되어 있기 때문에 객체지향 프로그래밍을 활용해서 결합도를 최대한 끊어낸다 한들 서로 결합이 되어있고 이에 따라 서비스 확장이 어려울 수 있다. 또한 개별 모듈의 장애가 전체 시스템에 영향을 미칠 수 있다. 간단한 오류 수정에도 전체 코드를 다시 빌드, 테스트, 배..
개인 프로젝트에서 검색어 자동완성 기능을 구현하기 위해 Redis를 활용하였다. 그래서 배포환경에서는 Redis를 어디에 둬야할까 고민을 해보았다. (일단 나는 AWS 프리티어 사용자로서 매달 연속해서 사용할 수 있는 EC2는 한 대 뿐이다.) 두 가지 선택지가 있었다. EC2 내부에 Redis를 설치하여 개발환경과 같이 localhost로 사용하기 별도의 캐시 서버 구성하기 오늘은 두 가지 선택지 중 하나를 결정하기 위해서 생각한 고민을 정리하고자 한다. EC2 내부 로컬 Redis Redis를 EC2 내부에 직접 설치하여 운영하는 방식이다. [장점] 매우 간단하고 .properties 파일에 연결정보 또한 로컬환경과 동일하게 가져갈 수 있다. 하나의 EC2 내부에서 동작하기에 운영비용이 절감된다는 장..
배포 전략? 배포 전략은 소프트웨어나 애플리케이션을 개발한 후에 실제로 사용자에게 제공하기 위해 배포하는 방식이나 계획을 의미한다. In-palce Deployment 기존 동작하고 있던 애플리케이션을 모두 중지하고 최신 버전의 애플리케이션을 실행하는 방법으로 이뤄진다. 이 방법의 경우 최신 버전 애플리케이션에서 오류가 난다하더라고 롤백하기 쉽다는 장점이 존재한다. 하지만 중간에 서비스가 멈추기 때문에 무중단 배포는 불가능하다. Rolling Deployment 기존에 동작 중이던 서버를 정해진 수 만큼 연결을 해제하고 해당 서버에 최신 버전의 애플리케이션을 실행하는 방식의 배포전략이다. Rolling 배포 전략은 점진적으로 버전을 변경한다고 생각하면된다. 배포를 위한 별도의 인스턴스(서버)를 할당받을 ..
https://github.com/jojoldu/freelec-springboot2-webservice/issues/806 [정보] p.320 ~ 367 CodeDeploy 유료화로 변경되어 GitHubAction으로 변경해 보았습니다. · Issue #806 · jojold 기존에 올라온 질문이 아닌지 먼저 검색해주세요! 가장 자주 나온 제보 P.105 @PutMapping("/api/v1/posts") P.111 Posts.update 어떤 오류인가요? 오류설명: CodeDeploy 유료화로 GitHubAction으로 무료 변경 Github URL: github.com 위의 링크를 보며 CI/CD 파이프라인 구축을 해보았다. 간단한 구조지만 6시간의 사투끝에 성공했다... 이번 글에서는 GitHub ..
CI(Continuous Integration)/CD(Cotinuous Delivery, Continuous Deployment) 소프트웨어를 효율적으로 빠르고 안정적으로 제공하기 위한 방법론이다. 소프트웨어 개발자가 개발한 코드를 지속적으로 빌드하고 테스트하여 오류를 최소화하고 안정적인 릴리스를 가능케한다. CI/CD의 장점 빌드와 배포의 복잡성을 감소시킬 수 있다. 코드 변경 사항이 빠르게 릴리스될 수 있도록 구성하고 관리할 수 있다. 빌드, 테스트 및 배포를 자동화하여 인적 오류를 줄일 수 있다. 오류와 충돌이 적어지고 개발과 테스트가 더욱 효율적으며 빠르다. CI/CD의 구성요소 "지속적 통합(CI)" 빌드, 테스트, 정적 분석 및 코드 품질 검사 들의 과정을 자동화하여, 코드의 변경사항을 지속적..
오늘은 종료 스크립트와 배포 스크립트를 작성해보겠다. 종료와 배포의 과정은 몇 단계의 과정을 통해 시행되는데 개발자가 명령어를 하나하나 실행하기에는 수고가 너무 많다. 따라서 명령어들을 모아놓은 쉘 스크립트를 작성하여 종료와 배포에 대한 편의성을 늘릴 수 있다. 종료 스크립트 작성하기 현재 실행 중인 파일을 중단시키는 과정은 2단계로 나뉜다. 현재 실행중인 .jar 프로세스의 PID(Process ID)를 찾는다. kill 명령어를 통해 해당 PID를 중단시킨다. 우선 vim으로 스크립트 파일을 하나 생성한다. vim spring-stop.sh // .sh 확장자의 vim 파일을 하나 생성한다. vim 쓰기모드로 들어간 후 필요한 명령어를 작성한다. echo "Springboot Stop...." // ..
- Total
- Today
- Yesterday
- MVC
- 백준#잃어버린 괄호#1541
- 오류
- arraylist
- 백준#서강근육맨#20300
- 덧칠하기
- 사탕 게임#백준#3085
- 서블릿#Servlet
- 스프링
- 4673번
- Spring
- 자바
- 1316번
- java
- controller
- list
- 대충 만든 자판
- springboot
- 백준
- 7568
- 회고
- querydsl
- 게시판#자바#JPA#Entity
- 백엔드#게시판
- HTTP#HTTP특징
- 11659
- 1978
- 파이썬
- 프로그래머스
- this()
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |