Mob Programming, Pair Programming

Mob Programming

mob: 군중, 떼

전체 팀에 동일한 공간에서 동일한 컴퓨터에서 동일한 작업을 수행하는 개발방식이다.

Pair Programming

두 명의 개발자가 한 곳에서 한 명은 코드를 작성하고, 다른 한 명은 작성한 코드를 검토하는 개발방식이다.

이 둘의 역할은 자주 전환된다.

이 방식을 따르면 작성되는 코드를 실시간으로 검토하기 때문에 더 높은 품질, 코딩 스타일 통일, 지식 공유, 문제 해결을 더 빨리 찾을 수 있는 이점이 있다. 나중에 PR(MR) 요청 시 다른 사람이 리뷰를 해 줄 필요가 있다.

용어 정리

  • Sharding(샤딩): 관계형데이터베이스에서 대량의 데이터를 처리하기 위해서 데이터를 파티셔닝하는 기술. 데이터베이스 자체를 분할하는 방식이기 때문에 어플리케이션 레벨에서 구현해야 함. 예를 들어 전 세계의 고객 데이터를 저장하는 대형 관계형 데이터베이스를 Sharding한다고 할 때, 어플리케이션에서 미국 고객의 경우는 Sharding A, 아시아 고객은 Sharding B, 유럽 고객은 Sharding C에 분할해서 저장해야 함.
  • CDN(Content Delivery Network): 접속자가 인터넷상에서 가장 가까운 곳의 서버로 컨텐츠를 전송받아 트래픽이 특정 서버에 집중되지 않고 각 서버로 분산되도록 하는 기술.
  • CDN(Contents Delivery Network) 서비스: 여러곳의 IDC 또는 ISP에 동일한 컨텐츠를 올려놓고, 접속자가 사용하는 인터넷전용회선의 종류에 따라 가장 가까운 곳에서 컨텐츠를 불러들일 수 있도록 지원하는 서비스.
  • SLA(Service Level Aggrement), 서비스 수준 협약서
  • SAGA(사가): 메세징을 이용한 일련의 로컬 트랜잭션
  • AMQP(Advanced Message Queuing Protocol): 메세지 지향 미들웨어를 위한 개방형 표준 응용 계층 프로토콜
  • Semvers(Semantic Versioning Specification, 시맨틱 버저닝)
  • fanout(팬아웃): 논리 회로에서 하나의 논리 게에트의 출력이 얼마나 많은 논리 게이트의 입력으로 사용되는지에 대해 서술할 때 쓰이는 말. 예를 들어, 팬 아웃이 크다는 말은 하나의 출력이 많은 논리 게이트의 입력으로 사용된다는 뜻.
  • Blocking/Non-blocking: A -> B로 호출할 때, 호출 받는 쪽에서 작업 처리 완료 여부와 상관없이 바로 리턴하면 None-blocking, 호출 받는 쪽(B)에서 작업 처리 완료될 때까지 제어권을 갖고 있으면서 작업 와료될 때 제어권을 A에게 반환을 함. 이 시간동안 A가 대기하게 되면 Blocking.
  • Sync/Async: A -> B로 호출할 때, 호출되는 함수(B)의 작업 완료 여부를 누가 신경쓰느냐의 차이. 호출되는 함수(B)에게 callback을 전달해서 호출되는 함수의 작업이 완료되면 callback을 실행하고 호출하는 함수는 작업 완료 여부를 신경쓰지 않으면 Async, 호출하는 함수가 호출되는 함수의 작업 완료 후 리턴을 기다리거나 또는 호출되는 함수로부터 바로 리턴 받더라도 작업 완료여부를 호출하는 함수에서 계속 확인하면서 신경을 쓰면 Sync.

아키텍처

시스템 운영

DB