DevOps (4) 썸네일형 리스트형 JIRA & Jenkins & Github 연동하기 기존 Jenkins 로 CI/CD 파이프라인을 구축하고, Git Push 시 WebHook이 동작하여 빌드 및 배포가 수행되도록 환경을 구성했던 경험이 있었다. 프로젝트를 수행하면서, 효율적인 협업을 위하여 레드마인 이라는 프로젝트 관리 툴을 사용하게 되었다. 레드마인은 여러 장점이 존재했지만, 이슈관리와 동시에 작업물이 바로 배포되도록 하는 기능은 지원하지 않았다. 조사 결과, 프로젝트 관리 툴 중에 유일하게 JIRA 에서 Jenkins 관련 플러그인을 지원하고 있었고, 이슈 관리와 동시에 배포까지 진행되도록 파이프라인을 구성할 수 있게 되었다. 요구 사항에서는 JIRA 에서 관리 중인 이슈들을 Teams 까지 연동하여 확인하고자 했다. 따라서, 다음과 같은 시나리오로 파이프라인을 구성해보았다. 이슈 .. 웹 애플리케이션 빌드와 배포 정리 7월부터 LG의 프로젝트를 주로 수행하는 SI 회사에 취업해서 다니고 있다. 운이 좋게도, 내가 사용했던 기술 스택(Spring Boot, JPA)과 유사하여 기존의 공부들이 도움이 되었다. 이번에 NCP에 세팅된 프로젝트를 EC2로 이관하는 작업에 대한 설명을 들었는데, 빌드부터 배포까지의 과정과 용어들이 확실하게 이해되지 않아서 한 번 정리하고 넘어가보려 한다. 빌드 vs 컴파일 빌드라는 단어에 대해서 막연하게, 프로젝트를 서버에서 실행할 수 있는 파일로 만든다고 이해하고 있었다. 그러면 컴파일도 사람이 볼 수 있는 코드를 기계어로 변환하는 것으로 알고있는데? 무슨 차이가 있는 건지 혼동되었다. 컴파일 (Compile) 사람이 보는 언어(원시 코드)를 컴퓨터 언어(기계어)로 변환하는 것. 컴파일러가 .. SSE (Server Sent Events) 내가 담당했던 대시보드 기능 내에 실시간 알림 기능이 포함되어 있었다. 기존 HTTP 통신 방식은 1회성으로 요청(Request) - 응답(Response) 후 연결의 닫아버리는 특징을 가지고 있었기 때문에, 실시간 알림 기능 구현을 위해서는 클라이언트 - 서버 간 연결을 계속 유지 시킬 방법을 찾아야 했다. 방법으로 Web-Socket과 Server-Sent-Events 두 개의 선택지가 존재했다. 모두 실시간 통신을 가능하게 하지만 장단점이 존재했다. 실시간 알림 기능은 양방향 통신이 따로 필요없다는 점과, React - Spring에서 SSE에 관련된 함수가 내장되어 있다는 점, 별도의 세팅없이 HTTP 프로토콜을 사용해 통신한다는 점 때문에 SSE를 선택하여 실시간 알림 기능을 구현하기로 하였다... 리버스 프록시(Reverse Proxy) 이번에 진행했던 프로젝트에서 리버스 프록시라는 개념을 처음 접하고, 서버에도 적용해보았다. 프록시란 무엇이고, 어떤 역할을 하는지 정리하고 넘어가고자 한다. 프록시(Proxy) 프록시(Proxy)란 '대리', '대신'이라는 뜻을 가지며, 프로토콜에 있어서는 대리 응답 등에서 사용하는 개념이다. 클라이언트와 서버 사이에 존재하며, 중계기로서 대리로 통신을 수행하는 것을 Proxy라고 하며, 그 중계 기능을 하는 주체를 Proxy Server라고 한다. Proxy Server를 통해 요청에 대한 캐시를 저장하고, 중복 요청 시 동일한 응답을 보내어 클라이언트에게는 빠른 속도의 서비스를, 서버에게는 불필요한 부하를 줄이는 효과를 낼 수 있다. 프록시 서버가 어느 쪽을 바라보고 있느냐에 따라서 포워드 프록시, .. 이전 1 다음