1. Kafka(카프카)란?카프카는 대용량 데이터를 빠르게 처리할 수 있는 분산 스트리밍 플랫폼으로, 주로 로그 데이터, 이벤트 스트리밍, 실시간 데이터 파이프라인 구축 등에 사용된다. 기존 메시지 큐(RabbitMQ 등)과의 차이점은 단순한 메시지 브로커를 넘어 이벤트 스트리밍 플랫폼의 역할을 수행한다는 점이다. 카프카를 공부하면서, 동작 원리나 개념을 이해하는것도 중요하지만, 기본 용어를 모르면 전체적인 구조를 파악하기 힘들었다. 그래서 카프카를 공부하기 전에 기본적으로 알면 좋을 것 같은 용어들을 정리해 보았다. 1-1. Producer와 Consumer카프카의 기본 동작은 Producer(생산자)가 메시지를 생성하고, 카프카의 Topic(토픽)에 메시즈를 전송하면, Consumer(소비자)가 해..
Theory
모노리식 이커머스란 무엇인가?모노리식 아키텍처는 소프트웨어 하나의 큰 애플리케이션으로 개발하는 방식으로, 모든 기능이 단일 코드베이스에서 실행된다. 이커머스 플랫폼에서도 자주 사용되며, 웹 애플리케이션의 모든 요소(사용자 인증, 제품 관리, 결제 등)가 하나의 애플리케이션으로 통합된다. 모노리식 이커머스는 초기 구축과 관리가 비교적 쉬우며, 중소형 비즈니스에서는 효율적인 설루션이 될 수 있다. 개인 프로젝트나 작은 규모로 개발을 진행하였다면 모노리식 아키텍처일 가능성이 높다. 모노리식 이커머스의 주요 특징단일 코드베이스모든 기능이 하나의 애플리케이션 내에서 실행된다. 이로 인해 코드 관리가 상대적으로 단순하며, 동일한 배포 주기로 운영된다. 데이터 베이스 공유모든 모듈이 하나의 데이터베이스를 공유하므..
정규 표현식은 자주 사용하진 않지만 알아두면 좋은 도구로, 특정 패턴을 찾거나 추출할 때 사용된다. 정규식을 다 외울 필요는 없지만, 매번 사용할때마다 헷갈려서 찾아보고 사용하는게 불편하여 정리해두면 좋을 것 같다. Meta 문자정규 표현식에서 특별한 의미를 가지는 문자로, 패턴을 정의하고 검색할때 사용되며 특정한 기능을 수행한다. 문자 수령자문자 수령자 또는 반복 메타문자라고 알려진 메타문자 그룹이다. 특정 문자 또는 패턴의 반복을 지정하는데 사용된다. 여러 번 반복되는 문자 또는 패턴을 표현할때 유용하다.표현식의미예시^문자열의 시작^x : x 문자로 시작됨을 의미$문자열의 끝x$ : x 문자로 종료됨을 의미.임의의 한 문자.x : x문자 앞에 한 문자가 들어감을 의미*0개 이상의 반복x* : x 문..
개발을 하면서 Print를 찍으면서 디버깅하고 제대로 된 배포도 해본 적이 없어서 로그가 중요하단걸 알지만 로그를 재대로 다루어 본 적이 없었고 필요성도 잘 느끼지 못했다. 프로젝트를 하면서 로그 기능을 사용해보기로 했고, 공부를 했는데 공부를 하면 할수록 시스템에서 로그는 굉장히 중요하고 제대로 관리해야 한다는 것을 느끼게 되었다. 로그가 중요하다고 이것저것 막 로그를 남기는 것은 별로 좋아보이지 않았다. 실제로 console에 debug 레벨의 알람을 설정해 두었는데 실행 경로를 탐색하고 코드가 어떻게 돌아가는지 확인하는 데는 좋았지만, 불필요하게 많은 debug 알람으로 정작 중요한 에러들에 관련된 알람들을 잘 볼 수 없었다. 반대로 예외 상황에 대해서 모두 ERROR레벨로 처리하게 되니깐, 치..
프로그램 명명 규칙은 코드의 가독성과 유지보수성을 높이기 위해 사용된다. 대부분의 프로그래밍 언어들은 명명 규칙에 대한 일반적인 지침을 제공하고 있다. 변수, 함수, 클래스, 모듈 등의 이름은 해당 요소의 역할이나 기능을 명확하게 전달해야한다. 이름만으로도 코드를 읽는 사람이 해당 요소가 무엇을 하는지 이해할 수 있어야 한다. Camel Case 대소문자를 혼합하여 단어를 나타낸다. 첫단어는 소문자로 시작하고, 다음 단어 부터는 첫문자를 대문자로 시작한다. Snake Case 단어를 모두 소문자로 표기하고 단어 사이를 언더바로 구분한다. Pascal Case 각 단어의 첫문자를 대문자로 표기한다. Kebab Case Spinal Case, Train Case, Lisp Case라고도 불린다. 각 단어 사..