전체 글(355)
-
[에러] Uncaught ReferenceError: SockJS is not defined
[Reason] WebSocket 을 연결하고 간단하게 정상적으로 동작이 수행되는지 확인하기 위해 간단한 유사 1인 채팅 페이지를 만들고 실행했으나 "Uncaught ReferenceError: SockJS is not defined" 해당 에러가 발생하였다. 한 마디로 SockJS를 정의할 수 없어 실행할 수 없다는 뜻이다. [Solution] 해당 에러와 관련된 해결 방법을 찾아본 결과로는 페이지 부분에 SockJS를 import 하는 script 부분이 없어서 정의할 수 없었던 것이었다. 해당 페이지 코드 header에 import 해주었더니 정상적으로 반영되어 넘어갔다.
2023.02.11 -
Non-Blocking IO / Blocking IO
Blocking IO Blocking IO 란 IO 프로세스가 시작한 작업이 진행되는 동안 다른 작업은 중단한 상태로 진행 중인 IO 작업이 끝날 때까지 대기하는 방식을 뜻한다, Blocking IO 에 관한 자료를 찾다보니 가장 흔한 이미지가 위의 사진이였다. 사진을 보면, Read() 함수가 호출이 되면 해당 함수가 완전히 끝날 때까지 다른 작업을 수행하지 못한다. Non-Blocking IO Non-Blocking IO 는 한 프로세스가 IO 작업을 호출했을 때 IO 작업이 완료될 때까지 작업을 중단하지 않고 IO 호출에 대해 즉시 리턴한 뒤, 해당 프로세스가 이어서 다른 IO 작업을 수행할 수 있도록 하는 방식을 뜻한다. Non-Blocking IO 는 한 프로세스가 작업을 진행할 때 즉시 커널 ..
2023.02.10 -
[CI / CD] Jenkins 설치
나는 이때까지 자동화해서 빌드, 테스트, 배포는 해본적이 없기 때문에 이러한 편리한 기능을 사용해보고 싶었다. 처음 CI / CD를 적용하여 자동화해보기 때문에 사용하는 과정을 잘 정리해두면 좋을 것 같았다. (1) Jenkins Installer 설치 우선 Jenkins를 설치해주도록 하자. https://www.jenkins.io/ Jenkins The Jenkins project would like to take a moment and share deep gratitude to our sponsors. Sponsorship of the Jenkins project is key to the maintenance and development of Jenkins. There are different wa..
2023.02.08 -
CI / CD
개발을 처음 접해보거나 깊이 개발을 해보지 않은 개발자들이라면 프로젝트를 만들면서 일일히 정상적으로 동작하는지 가내수공업처럼 힘들게 실행하고 확인하고 손수 배포하는 과정을 많이 겪어보았을 것이다. CI / CD 는 이러한 쓸데없는 리소스를 줄이기 위한 자동화 과정들이다. CI (Continuous Integration) 해석하자면 지속적인 통합, 합치기라는 의미이다. 우리가 개발한 어플리케이션의 새로운 코드 변경 사항이 자동 주기적으로 빌드 및 테스트 되어 공유 레포지토리에 통합되는 것이다. 따라서 CI 가 구현되어있는 환경이라면 여러명의 개발자가 동시에 어플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌할 수 있는 문제를 해결할 수 있다. 즉, commit 할 때마다 빌드와 테스트가 자동으로 이..
2023.02.08 -
[DB] Redis (레디스)
Redis (레디스) Redis (Remote Dictionary Server)는 이름 그대로 외부에서 사용가능한 Key - Value 형식의 해시 맵 형태의 서버이다. 그래서 별도의 쿼리 없이 Key를 통해 원하는 데이터를 빠르게 가져올 수 있다. 디스크에 데이터를 쓰는 구조가 아니라 메모리에서 데이터를 처리하기 때문에 작업 속도가 상당히 빠르다. 즉, Redis는 고성능 Key - Value 형식의 데이터 저장소로서 String, List, Hash, Set, Sorted Set 과 같은 여러 다양한 자료 구조를 지원하는 NoSQL 이다. 혹은 Key, Value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터 베이스 관리 시스템 (DBMS) 이라고도 말할 수 있다. ..
2023.02.08 -
WebRTC (Web Real-Time Communication)
WebRTC WebRTC는 웹 환경에서 실시간으로 미디어 데이터들을 활용하여 커뮤니케이션할 수 있도록 도와주는 기술이다. WebRTC를 사용하면 실시간 통신 기능을 어플리케이션에 추가하여 동영상, 음성, 일반 데이터를 어플리케이션 간에 전송할 수 있어 개발자가 강력한 음성 및 영상 통신 솔루션을 구축할 수 있다. 또한, 모든 최신 브라우저 뿐만 아니라 모든 주요 플랫폼의 기본 클라이언트에서 사용할 수 있다는 장점이 있다. 오픈 소스 기반이기 때문에 누구나 쉽게 접근하여 구현할 수 있다는 점 또한 장점이다. 따라서 WebRTC는 웹 브라우저 상에서 어떠한 플러그인이나 별도의 소프트웨어 필요없이 음성 채팅, 화상 채팅, 데이터 교환까지 가능하게 하는 기술이다. WebRTC 특징 (1) 서버와 같은 중간자를 ..
2023.02.08