WebRTC로 시작하는 실시간 웹 통신
·
Project/Web
웹 개발을 하다 보면 실시간 화상 통화나 음성 채팅 기능을 구현해야 하는 순간이 찾아옵니다. 기존에 REST API로 JSON 데이터만 주고받던 개발자에게 실시간 스트리밍은 완전히 새로운 영역입니다. WebRTC는 이러한 복잡한 실시간 통신을 웹 브라우저에서 간단하게 구현할 수 있게 해주는 기술입니다.실시간 통신이 어려운 이유웹의 태생적 한계웹은 원래 문서를 공유하기 위해 설계되었습니다. HTTP는 요청하면 응답하는 단순한 구조로, 지속적인 연결이나 실시간 데이터 교환에는 적합하지 않았습니다. 실시간 화상 통화를 구현하려면 근본적으로 다른 접근이 필요했습니다.전통적인 방식으로 실시간 통신을 구현한다면 고려해야 할 것들이 너무 많습니다. 네트워크 프로토콜 선택부터 시작해서 미디어 코덱 처리, 패킷 손실 대..
데이터베이스 모델링
·
BackEnd/Database
데이터베이스를 학습하면서 가장 중요하면서도 어려운 부분 중 하나가 바로 모델링입니다. 이번 글에서는 데이터베이스 모델링의 전체 과정을 단계별로 살펴보고, 각 단계에서 고려해야 할 핵심 사항들을 정리해보겠습니다.데이터베이스 모델링이란데이터베이스 모델링은 현실 세계의 데이터를 체계적으로 분석하여 데이터베이스의 구조를 설계하는 과정입니다.모델링이 필요한 이유데이터베이스 모델링을 하는 이유는 크게 네 가지로 정리할 수 있습니다.데이터 무결성 유지는 가장 기본적이면서도 중요한 목적입니다. 잘못된 데이터가 저장되는 것을 방지하고, 데이터 간의 일관성과 정확성을 보장합니다. 예를 들어, 존재하지 않는 부서에 직원이 배정되는 상황을 미연에 방지할 수 있습니다.중복 최소화를 통해 저장 공간을 절약하고 데이터 관리의 복잡..
CI/CD 기본 개념
·
Infra/CI CD
현대 소프트웨어 개발에서 코드를 작성하고 배포하는 과정은 매우 복잡하고 반복적입니다. 개발자가 코드를 작성한 후 테스트하고, 다른 개발자의 코드와 통합하고, 최종적으로 실제 서버에 배포하는 모든 과정을 수동으로 진행한다면 많은 시간과 노력이 소모됩니다. CI/CD는 이러한 반복적인 과정을 자동화하여 개발 효율성을 크게 향상시키는 핵심 개념입니다.CI/CD란CI/CD는 Continuous Integration(지속적 통합)과 Continuous Deployment(지속적 배포)의 줄임말로, 소프트웨어 개발 과정에서 테스트, 통합, 배포의 과정을 자동화하는 개발 방법론입니다.전통적인 개발 방식의 문제점기존의 수동 배포 방식에서는 다음과 같은 문제점들이 있었습니다. 개발자가 코드를 완성한 후 직접 테스트를 실..
VIEW와 INDEX로 데이터베이스 최적화
·
BackEnd/Database
이글에서는 복잡한 쿼리를 단순화하는 VIEW와 성능을 최적화하는 INDEX에 대해 알아보겠습니다. 이 두 기능을 잘 활용하면 데이터베이스의 효율성을 크게 향상시킬 수 있습니다.VIEW - 복잡한 쿼리를 위한 가상 테이블VIEW는 하나 이상의 테이블을 기반으로 한 논리적인 가상 테이블입니다. 실제 데이터를 저장하지는 않지만, 마치 실제 테이블처럼 사용할 수 있어 복잡한 쿼리를 단순화하고 코드의 재사용성을 높여줍니다.VIEW의 개념과 핵심 가치VIEW를 이해하는 가장 좋은 방법은 'Stored Query'라고 생각하는 것입니다. 자주 사용하는 복잡한 SELECT 문을 저장해두고, 필요할 때마다 간단히 호출할 수 있는 기능입니다.-- 복잡한 조인 쿼리를 매번 작성하는 대신CREATE VIEW employee_..
DDL과 데이터 타입
·
BackEnd/Database
데이터베이스를 효과적으로 활용하려면 먼저 견고한 구조를 설계해야 합니다. 이전 글에서 DML과 트랜잭션을 다뤘다면, 이번에는 데이터베이스의 골격을 만드는 DDL과 적절한 데이터 타입 선택에 대해 체계적으로 알아보겠습니다.DDL(Data Definition Language)의 역할과 중요성DDL은 데이터베이스 객체들을 생성, 삭제, 변경하기 위한 명령어입니다. 테이블, 인덱스, 뷰 등과 같은 데이터베이스 객체들의 구조를 정의하는 핵심 도구로, 마치 건물의 설계도를 그리는 것과 같은 역할을 합니다.데이터베이스 생성과 관리프로젝트를 시작할 때 가장 먼저 해야 할 일은 데이터베이스를 생성하는 것입니다. 단순히 데이터베이스를 만드는 것을 넘어 문자 인코딩과 정렬 규칙을 올바르게 설정해야 합니다.CREATE DAT..
DML과 트랜잭션
·
BackEnd/Database
이번 글에서는 데이터베이스의 핵심 개념 중 DML과 트랜잭션에 대해 포괄적으로 다루어보겠습니다.DMLData Manipulation Language(DML)는 테이블의 데이터를 조작하기 위한 명령어입니다. INSERT, UPDATE, DELETE 세 가지 핵심 명령어로 구성됩니다.INSERT - 데이터 삽입새로운 행을 삽입하는 방법은 크게 단일 행 삽입과 다중 행 삽입으로 나뉩니다. 단일 행 삽입INSERT INTO emp (empno, ename, job, mgr, sal, deptno)VALUES (9997, '이름', '직무', NULL, (SELECT MAX(hisal) FROM salgrade), 20);INSERT 명령어를 사용할 때 주의할 점들이 있습니다. INTO절의 컬럼 리스트에 명시한 ..