본문 바로가기

코딩/개발지식 공부5

Semantic Versioning이란? Semantic Versioning이 생겨난 이유소프트웨어 개발에서는 새로운 기능을 추가하거나 버그를 수정할 때마다 버전이 변경된다. 하지만 버전 관리에 일관된 기준이 없다면, 사용자나 개발자는 버전 숫자만 보고 어떤 변화가 있었는지 알기 어렵다. 이 문제를 해결하기 위해 Tom Preston-Werner(엄청난 사람인듯 하다.) 라는 사람이 만들었다고 한다.  그렇다면 Semantic Versioning이 버전 관리의 문제를 어떻게 해결하는지 자세히 알아보자. Semantic Versioning(유의적 버전 관리, SemVer)이란? Semantic Versioning(줄여서 SemVer)이란 소프트웨어 버전 번호를 체계적으로 관리하는 방식이다. 유의적이다 라는 말이 생소할 수 있는데 쉽게 풀의해보자면.. 2025. 2. 2.
SSE(Server-Sent Events)와 소켓(WebSockets)의 차이 SSE (서버 전송 이벤트)란?작동 원리서버에서 클라이언트(주로 웹 브라우저)로 단방향으로 실시간 데이터를 전송하는 기술로, 클라이언트는 서버로부터 데이터를 수신만 하고, 서버는 클라이언트로 데이터를 보내기만 한다. 비유를 해보자면 클라이언트가 라디오(서버)를 켜서 방송을 듣는 것과 같다. 클라이언트는 듣고 있는 방송(서버의 응답)을 기반으로 최신 정보를 보여줄 수 있다. 사용 예시SSE는 서버에서 클라이언트로 지속적으로 데이터를 전달해야 하는 상황에 적합하다. 아래와 같은 상황에서 자주 사용된다고 한다. 실시간 뉴스 피드주식 시세 업데이트실시간 알림실시간 로그 모니터링장단점장점 : 구현이 간단하며 소켓에 비해 자원 소모가 적다. 소켓과 다르게 연결이 끊어질 경우 자동으로 재연결을 시도한다.단점 : 텍스.. 2025. 1. 30.
인터프리터(interpreter)와 컴파일러(compiler)에 대한 이야기 인터프리터(interpreter)와 컴파일러(compiler) 인터프리터(interpreter)와 컴파일러(compiler)는 프로그램을 실행하기 위해 소스 코드를 처리하는 두 가지 방식을 말한다. 컴퓨터는 사람이 작성한 프로그래밍 언어를 직접 이해하지 못하기 때문에 코드를 컴퓨터가 이해할 수 있는 형태로 변환하는 과정이 필요하다. 이때, 인터프리터와 컴파일러는 소스 코드를 기계가 처리할 수 있는 형태로 변환하는 서로 다른 방법을 사용하여 프로그램을 실행한다. 이제 두 실행 방법에 대해 알아보자 인터프리터(interpreter) 인터프리터는 소스 코드를 한 줄씩 읽고, 그때그때 실행하는 프로그램이다. 코드의 일부를 고치고 바로 실행할 수 있기 때문에 빠르게 테스트하고 디버깅 할 수 있는 장점이 있지만, .. 2024. 10. 16.
FLUX 아키텍쳐에 대해 알아보자 Flux 아키텍쳐Flux는 Facebook이 만든 애플리케이션 아키텍처 패턴으로, 데이터 흐름과 상태 관리를 단방향으로 구성한 것이 특징이다. 이렇게 아키텍쳐를 한 줄로 요약하면 이해가 잘 가지 않으니 더 깊게 알아보자. 등장 배경 Facebook은 서비스가 성장하고, 더 많은 기능들이 추가되면서 상태 관리의 어려움이 점점 커졌다. 기존에 Facebook 서비스는  MVC(Model-View-Controller) 패턴을 사용하였는데, MVC 패턴은 여러 컴포넌트가 상호작용하면서 각자의 상태를 변화시키는 양방향 데이터 바인딩을 사용하게 된다. 하지만 이렇게 될 경우 하나의 컴포넌트에서 발생한 상태 변화가 다른 컴포넌트에 영향을 미치고, 이는 다시 또 다른 컴포넌트에 영향을 미치면서, 복잡한 상호작용 구조가.. 2024. 10. 14.