목록개발/알쓸코잡 (30)
TCP & UDP TCP와 UDP는 '전송계층'에서 사용하는 프로토콜이다. 여기서 '전송계층'이란, 프로토콜 내에서 송신자 & 수신자를 연결하는 통신 서비스를 제공하는 계층으로, 재전송 요구나 패킷의 오류를 검사한다. TCP TCP는 연결 지향적 프로토콜이라고도 하며, 데이터 전송 전 세션 수립 후, 먼저 통신이 되나 확인하는 과정을 거친다. 통신 후에는 세션이 종료되며, 오류가 났을 경우 재전송을 시도한다. (신뢰성있는 데이터를 전송) 위와 같은 특징 때문에, 웹브라우저 / 이메일 / 파일 전송에서 사용한다. TCP 에서는 3way-handShake 라는 방법으로 연결을 초기화하며 4way-handShake로 통신을 종료하게 되는데, 과정을 그림으로 그리면 다음과 같다. UDP UDP는 비연결형 프로토..
미래의 나에게 // 설치 yarn add prisma // 프리즈마 사용 시 필요한 파일 생성, prisma/schema yarn init // schema.prisma 기반의 Prisma client 등의 자원 생성 yarn prisma generate // schema.prisma 기반으로 DB 업데이트 yarn prisma migrate dev // 실제 DB 반영 없이 migration 파일 변경 yarn prisma migrate dev --create -only 먼저 ORM이란, SQL 쿼리문을 작성하지 않고도 데이터베이스와 상호작용할 수 있게 도와주는 도구다. 2023.01.29 - [코딩/node.js] - ORM / Sequelize & typeORM 이전에는 항상 TypeORM을 사용하..
Gitflow gitflow 란 Git 브랜치를 관리하기 위한 git workflow 를 말한다. 브랜치 브랜치란 독립적으로 어떤 작업을 진행하기 위한 개념이다. 이때 해당 브랜치는 작업 중 타인의 작업에 의해 영향을 받거나 주지 않는다. 그리고 만들어진 브랜치는 다른 브랜치와 병합(merge)함으로써 새로운 브랜치를 새로 생성할 수도 있다. 브랜치 5종류 1. master 브랜치 : gitflow 에서 병합의 기준이 되는 브랜치로, 어플리케이션을 배포하는 역할을 한다. 2. develop 브랜치 : 릴리즈 버전 개발을 진행하는 브랜치로, 어떤 기능의 구현이 필요한 경우 develop 브랜치에서 브랜치를 생성한 후 개발을 하며, 개발이 완료된 경우는 develop 브랜치에 다시 병합시키는 역할을 한다. ..
CI / CD CI / CD 란 개발의 시작부터 끝인 배포까지의 모든 단계를 자동화하여 효율적이면서도 빠르게 배포하는 것을 의미한다. CI / CD 를 사용할 경우, 애플리케이션을 보다 더 짧은 주기로 고객에게 제공할 수 있다는 장점이 있다. CI / CD 를 정확히 구분하자면, Continuous Integration : 지속적 통합 Continuous Delivery : 지속적 서비스 제공 Continuous Deployment : 지속적 배포 총 세 가지로 나뉜다. CI / CD 파이프라인 CI (Continuous Integration / 지속적 통합) CI 란 개발자를 위한 자동화 프로세스를 의미한다. CI 가 제대로 구현될 경우, 애플리케이션 코드의 변경 사항이 정기적으로 빌드&테스트를 거쳐 ..
Kubernetes Kubernetes (이하 쿠버네티스)는 컨테이너 관리자로 컨테이너 운영을 자동화하기 위한 도구다. 도커 스웜(Docker swarm) / 메소스(Mesos) 등과 같은 역할을 하는 도구라고 볼 수 있으며, 위와 같은 도구들은 일컬어 오케스트레이션 도구라고도 한다. Kubernetes Cluster 쿠버네티스 클러스터는 Kubernetes의 여러 리소스를 관리하기 위한 집합체다. 그리고 클러스터는 노드 > 파드 > 컨테이너 등이 구성되어 이루어져있다. Node ( Master node / worker node) 노드는 클러스터 안의 가장 큰 개념으로, 마스터 노드와 워커 노드로 구분된다. MasterNode 마스터 노드는 클러스터 전체(워커 노드들)를 관리하는 서버이며 클러스터에 핵심..
서버리스 (Server-less) 서버리스 서비스는 그 말마따나 서버가 없는 상태에서 서비스를 제공하는 것을 말한다. 서버가 없는데 어떻게 API를 요청 / 응답 받을 수 있겠느냐 싶다만, API 는 클라우드 제공업체(GCP || AWS 등) 가 제공하는 클라우드 펑션(Cloud Fuction)을 통해 이루어진다. 브라우저에서 API를 요청하고, 클라우드는 클라우드 함수를 통해 API 에 대해 응답한다. 혹여 해당 API 가 DB에 대한 접근을 요청하는 경우, 클라우드에 만들어둔 SQL에 접속해 응답한다. 서버리스 서비스의 장단점에 대해 얘기해보자면 다음과 같다. 서버리스 서비스는 말 그대로 서버가 없기 때문에, 일반적인 서버 배포 비용을 부담할 필요 없이 클라우드 펑션이 호출되는 경우에만 비용이 발생하..
HTTP http 란 Hyper Text Transfer Protocol 의 약자로, 인터넷에서 하이퍼 텍스트 문서를 교환하기 위해 사용하는 프로토콜이다. 말이야 어려운데, HTML, CSS, 텍스트 등을 전송하는 포트 80의 프로토콜이라고 이해하면 편하다. HTTPS https 란 Hyper Text Transefer Protocol over Secure Sokets Layer 의 준말로 http의 보안 문제가 제기되자 이를 보완하기 위해서 등장한 프로토콜이다. https는 문서를 암호화 & 복호화 과정을 거쳐 데이터를 전송하기 때문에 상대적으로 안전하다. SSL SSL 은 Secure Sokets Layer 의 준말로, '웹 구간 암호화(보안 소켓 계층)'을 의미한다. 보통은 https 와 같은 의미..
Firewall(DMZ) Firewall(DMZ) 란 불을 막는 벽이라는 뜻의 방화벽이라는 의미로, 네트워크 상에서의 '사고'를 막는 보안 시스템을 뜻한다. 방화벽은 미리 정의한 보안 규칙에 따라서 신뢰할 만한 사이트와 그렇지 않은 사이트를 구분하여, 신뢰하지 못하는 사이트에서 우리 사이트에 접근할 수 없게 만들어준다. 위와 같은 보안 방식을 '접근 통제'라고도 하는데, 방화벽은 이뿐만 아니라 다양한 역할을 한다. 방화벽의 역할에 대해 요약하면 다음과 같다. 접근 통제 : 신뢰할 사이트 / 신뢰하지 못하는 사이트를 구분하여, 신뢰하지 못하는 사이트의 접근을 막는다. 메세지 인증 : 스마트폰 || 브라우저에 담긴 메세지를 통해 인증 절차를 거친 뒤 접근 허용 여부를 결정한다. 사용자 인증 : 그 말마따나 ..