GitLab과 Mattermost를 연동해 메시지 전송하기(with AWS ambda)
·
Infra
0. 서론싸피에서는 기본적으로 깃랩을 통해 프로젝트를 관리하게 된다.개발을 하는 과정에서 필연적으로 push, merge request 작업이 진행되고, 함께 코드리뷰를 하며 개발하는 것이 이상적인 그림이다.하지만 6주간의 개발 과정은 아주 치열하기에 코드리뷰를 하기 쉽지 않다.또한, 누가 MR을 올렸는지 알기도 어렵다.이를 해결하기 위해서 MR을 생성했을 때, 아래 이미지처럼 MM에 메시지를 보내 팀원들과 공유할 수 있는 방식을 공유하고자 한다.1. 전체적인 로직깃랩에서 Merge Request을 만들면 AWS Lambda의 함수를 호출하고 Lambda의 함수 로직에서 Mattermost에 메시지를 전송한다.AWS Lambda서버리스 컴퓨팅 FaaS 상품서버리스란 개발자가 서버를 관리할 필요 없이 애플..
[운영체제] 교착 상태(데드락, DeadLock)
·
CS/운영체제
0. 서론데드락은 두 개 이상의 프로세스나 스레드가 서로 자원을 얻지 못해서 다음 처리를 하지 못하는 상태를 의미한다.이로 인해, 무한히 다음 자원을 기다리게 되는 상태를 말한다.시스템적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생한다.프로세스 1과 2가 자원 1, 2를 모두 얻어야 하는 경우t1: 프로세스 1이 자원 1을 얻음 / 프로세스 2가 자원 2를 얻음t2: 프로레스 1은 자원2를 기다림 / 프로레스 2는 자원 1을 기다림현재 서로 원하는 자원이 상대방에 할당되어 있어서 두 프로세스는 무한정 wait 상태에 빠지게 되는 이 상황을 DeadLock이라고 부른다.멀티 프로그래밍 환경에서 한정된 자원을 얻기 위해 서로 경쟁하는 상황 발생한 프로세스가 자원을 요청했을 때, 동시에 그 자원을 사..
[운영체제] 멀티 프로세스 & 멀티 쓰레드
·
CS/운영체제
0. 서론멀티 프로세스와 멀티 스레드는 한 어플리케이션에 대한 처리방식 이라고 보면 된다. 단순히 프로그램을 여러개 띄워놓는 것이 멀티 프로세스가 아니라 이 둘은 언제 어느때에 어떤 방식으로 처리하느냐에 따라 다른 것으로 이해해야 한다.이름으로 유추할 수 있듯이 멀티 프로세스와 멀티 스레드는 여러개의 프로세스, 스레드가 동작하는 것을 일 컫는다. 단일이 아닌 다중으로 돌아감으로써 성능 향상 등 여러가지 효과를 얻을 수 있다. 하지만 또한 이로 인해 발생되는 부가적인 문제점도 발생하게 된다. 지금 부터 이에 대해 자세히 알아보자1. 멀티 프로세스 (Multi Process)멀티 프로세스는 운영체제에서 하나의 응용 프로그램에 대해 동시에 여러 개의 프로세스를 실행할 수 있게 하는 기술을 말한다. 보통 하나의..
[운영체제] 프로세스 & 스레드 (Process & Thread)
·
CS/운영체제
0. 서론프로세스와 스레드가 무엇인지 알아보자. 이 둘을 한마디로 정의하면 다음과 같다.프로세스 (Process)운영체제로부터 자원을 할당받은 작업의 단위스레드 (Thred)프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위아직은 이게 무슨 차이인지 이해가 어려울 수도 있지만 모든 글을 읽고 나면 이해가 될 것이다.1. 프로그램과 프로세스1-1. 정적 프로그램 (Static Program)윈도우의 "exe" 파일이나 Mac의 "dmg" 파일과 같은 컴퓨터에서 실행할 수 있는 파일을 정적 프로그램(Static Program) 줄여서 프로그램이라고 부른다.즉, 프로그램은 코드 덩어리이다.1-2. 프로세스 (Process)프로그램이 돌아가고 있는 상태 즉, 컴퓨터에서 작업 중인 프로그램을 의미한다.모든 프로..