환경 구성 물리적인 컴퓨터 두 대로, 각각 컴퓨터에 하나씩 가상 머신을 생성하는 것이 이상적이지만 사용 가능한 x86 컴퓨터가 한 대 뿐이라 가상 머신을 두 개 띄우고, 각 가상 머신을 물리 머신으로 간주하여 각 가상 머신 위에 또 가상 머신을 구동하는 형태로 환경을
네트워크에서 트래픽을 제어하고 HW 인프라와 통신하기 위해 SW 기반 컨트롤러 또는 API를 활용하는 네트워킹에 대한 접근 방법라우팅, 로드밸런싱, 네트워크 ACL(Access Control List) 등을 이용해 네트워크를 제어하는 소프트웨어 어플리케이션이다. Con
위의 코드처럼 ChattingService.getMessageResponse() 메소드가 있다. 이 메소드는 매우 자주 호출되는 메소드로, epository를 통해 DB에서 데이터를 조회하는 로직이 포함되어 있어 캐시를 이용할 필요가 있다고 느꼈다. 그래서 맨 처음 리
비즈니스 로직과 같은 핵심기능들은, 객체로서 고유한 역할과 책임을 가지며 다른 객체들과 협력할 수 있으므로 객체지향(OOP) 기법을 통해 모듈화가 가능하다.하지만 로깅, 트랜잭션 등과 같은 부가기능은 핵심기능 실행 전이나 실행 후, 그리고 여러 핵심기능에 적용된다.어플
Jenkins를 이용하는 방법은 Docker의 Jenkins 이미지를 사용하거나, apt와 같은 패키지 매니저로 서버에 직접 설치하는 방법이 있다. 이 글에서는 Ubuntu Server에 apt를 통해 직접 설치하는 과정을 다룬다.Jenkins 공식 사이트의 설치 과정
https://yoonbing9.tistory.com/130https://github.com/BambooKim/Message-Queue-Compare/tree/main/Apache_KafkaProducer. Java ApplicationConsumer
캡스톤디자인 프로젝트를 하며 운영 환경 배포 전, 프론트엔드 등 다른 파트 담당자들과 협업을 위해 Dev 환경을 구축해야 할 필요를 느꼈다. API Docs도 Swagger로 구성하여 제공하는 것이 편하고, API 호출 테스트 등을 위해서는 서버 어플리케이션을 구동해야
고가용성과 이중화 HA(High Availability, 고가용성) Availability(가용성) 가용성이란, 서버와 네트워크 또는 프로그램 등의 다양한 시스템이 정상적으로 사용 가능한 정도를 의미한다. 고가용성 고가용성은, 쉽게 말하자면 가용성이 매우 높은 정도를
이전 포스트에서 GitHub Actions와 AWS CodeDeploy를 통해 배포를 자동화하기 위해 여러 설정들을 하는 과정을 거쳤다.이번 포스트에서는 Workflow를 생성하여 실제 배포 자동화가 작동하기까지의 과정을 진행해 볼 것이다.
이전 포스트에서는 GitHub Actions를 통해 Pull Request시 자동으로 테스트를 수행하는 CI 과정을 구현했었다.이번 포스트부터는 AWS의 EC2, S3, Code Deploy 서비스를 이용해 배포까지 자동화하는 CD 과정을 구현해 보자.
main 브랜치에 Pull Request를 할 때마다 해당 브랜치에 대해 자동으로 Junit 테스트를 수행하도록 하는 설정을 진행해보도록 하자.
프로그램 : 디스크에 저장된 실행할 수 있는 형태의 파일프로세스 : 프로그램이 main memory에 로드되어 실행되고 있는 것Text(Code) 영역 : 실행 중인 프로그램의 바이너리(어셈블리)코드Data 영역 : 전역 변수가 저장된다.Stack 영역 : 로컬 데이터
Leaf가 아닌 node들은 자식 node(page)에 대한 주소를 갖고 있고, Leaf node들은 실제 데이터 레코드가 어떤 페이지에 위치해 있는지의 주솟값을 가지고 있다.MyISAM - Primary Key Index와 Secondary Index 둘 다 ROWI
DB의 실제 데이터는 HDD, SSD 같은 보조기억장치에 저장된다.CPU나 DRAM 등에 비해 처리 속도가 매우 느리다.DB에서 순차I/O는 그렇게 많지 않고, 대신 랜덤I/O 작업이 많으므로 HDD보다 SSD가 DBMS에는 좀 더 적합하다.여러 개의 Page를 디스크
B-Tree의 B는 Binary가 아닌 Balanced로, 균형이 잡힌 트리라는 의미의 자료구조이다. 트리의 노드가 한쪽으로만 쏠리지 않도록 노드 삽입 및 삭제 시 특정 규칙에 맞게 재정렬하여 전체적으로 balance를 유지한다.
HTTP는 connectionless하고 stateless하다는 특징을 가진다. Connectionless와 Stateless사용자 인증과 같이 서버에서 지속적으로 클라이언트의 상태나 정보 등을 알아야 할때, 단점이 될 수 있는 connectionless하고 state
HTTP는 여러 가지 특징을 갖고 있는데, 그 중 Connectionless와 Stateless에 대해 알아보자.HTTP는 7계층의 프로토콜로, TCP/IP를 기반으로 한다. TCP/IP의 경우 기본적으로 연결을 종료하지 않으면 그 연결은 종료되지 않고 유지된다. 만약