CI/CD

개요

개발이 아무리 좋아도 마지막 과정을 안거치면 개발 실력, 솜씨 등을 증명을 하지 못한다. 그것을 증명하려면 개발의 마지막 단계까지 온전히 마쳐야 한다. 바로 배포이다. 토의 - 설계 - 개발 - 테스트를 걸쳐 마무리 일격을 하는 단계가 바로 배포로서, 개발한 것을 공개로 또는 특정인에게 보여주는 단계이다. 그리고 뭔가 또 이상하다 싶으면 다시 고쳐서 다시 배포를 하게 된다. 이러한 반복적인, 지속적인 개발 루프를 일컬어 CI/CD라 한다. 작성자 본인도 이전 직장에서 젠킨스로 매일매일 솔루션 빌드하고 내뱉는 과정을 뜯어본 적이 있고, 최근엔 백앤드 팀 프로젝트에서도 github action, docker, aws ec2를 이용해 배포를 거쳐간 적이 있다. 이제 정확한 CI/CD의 의미를 파해쳐본다.

Continue reading

Server 08 - PUB/SUB

Publish / Subscribe

Publish의 사전적 의미는 출판하다, 발행하다, 공표하다로 나와있다. 그러니까, 이 단어를 행동으로 표현하면 어떤 것을 알리다라고 표현할 수 있겠다.
Subscribe는 책, 신문, 잡지등을 구매하여 본다라는 의미이다. 다른 말로는 구독하다란 이야기이며 행동으로 표현하면 어떤 것을 골라서 읽음으로써 받아들인다라고 표현할 수 있겠다.

Continue reading

Server 07 - DB Locks

DB에서 Lock?

뒷 단 작업하면서 데이터가 왔다리 갔다리 하는 데에 신경을 많이 써야 한다. 특히 동일한 자료를 동시에 사용할 때 주의해야 한다. 이를 DB에서 여러 트랜잭션이 같은 자원에 동시에 접근 했을 때라 하며 줄여서 경쟁 상태라 한다. 이러한 경쟁 상태가 되었을 시, 데이터 충돌이나 불일치 현상이 발생되기 때문에 경쟁 상태를 막아줘야 한다. 이 막아주는 행동 매커니즘을 DB에선 LOCK이라 한다.

Continue reading

Server 05 - NoSQL

기존 RDBMS의 한계

관계형 데이터베이스 관리 시스템, 통칭 RDBMS는 개발자 공부에서 DB라는 것을 배울 때 기초적으로 나오는 기본적인 데이터 베이스 관리 시스템이다. 테이블을 이용하여 정형화된 데이터를 관리하는 시스템으로서 SQL문을 써서 데이터를 만지고, 트랜잭션과 연산을 지원하는 가장 기본적인 데이터 관리 방법이 바로 RDBMS이다.

Continue reading

Server 04 - Forward와 Redirect

Forward 방식과 Redirect 방식

웹 애플리케이션 개발에서는 서버에서 클라이언트에게 응답을 전달할 때 두가지 방식이 있다. 바로 Forward와 Redirect가 있다. 그저 요청을 보내는 동작이자 페이지가 전환되는 것은 같은데, 방식이 두 가지나 있다. 왜 두가지 방식이 있는지 알기 위해 Forward와 Redirect의 방식을 알아본다.

Continue reading

Server 03 - 쿠키와 세션

쿠키와 세션의 존재 이유

HTTP 프로토콜의 가장 큰 특징은 비연결성무상태이다. 요청하는 순간 연결했다가 응답 완료되면 연결을 끊는 것이고, 웹 서버와 클라이언트 상태 정보를 유지하지 않는 것이 가장 큰 특징이다.
그런데 HTTP 프로토콜 상에서 뭔가 특별한 기능을 수행하려 할 땐 위 두가지 특성은 방해가 된다. 예를 들어 로그인하여 나의 메일을 보는 과정에서 나의 정보가 비연결성과 무상태 특징에 의하여 알 수가 없을 텐데, 어떻게 나의 정보가 유지되어 내 메일을 볼 수 있을까?
이 것의 대한 해답은 이데 설명할 2가지 개념으로 답할 수 있다. 바로 쿠키세션이다.

Continue reading

Server 02 - API와 멱등성

API가 뭐요?

API(Application Programming Interface)는 응용 프로그램 간의 상호작용을 가능하게 하는 인터페이스이다. 소프트웨어 애플리케이션, 시스템, 혹은 기기 간에 데이터를 주고받거나 기능을 사용할 수 있도록 돕는 중요한 요소이며, 개발자들은 API를 통해 복잡한 기능을 손쉽게 구현할 수 있으며, 다양한 서비스와 시스템을 유기적으로 연결할 수 있다.

Continue reading

Server 01 - HTTP

HTTP

HyperText Transfer Protocol, 웹에서 클라이언트(브라우저)와 서버가 통신할 때 사용하는 통신 규약. 통신 규약은 통신에 참여한 주체들이 합의한 메세지 형식을 의미한다. HTTP의 특징은 다음과 같다.

  • 비연결성
    • 브라우저가 서버에 특정 문서를 요청하는 순간, 잠시 서버와 연결했다가 응답이 완료된 후 바로 끊어짐
  • 무상태
    • 웹 서버와 웹 클라이언트 상태 정보가 유지하지 않음. 상태 정보 유지하기 위해선 쿠키나 세션이 필요

Continue reading

Pagination