WebSocket
·
TIL(Today I Learned)
WebSocket은 무엇인가클라이언트와 서버 간의지속적인 전이중 연결을 제공하는 통신 프로토콜입니다. HTTP 프로토콜과 달리, WebSocket은 한번 연결이 설정되면 양방향으로 데이터를 자유롭게 교환할 수 있습니다. 이는 실시간 업데이트와 즉각적인 데이터 전송을 필요로 하는 애츨리케이션에 이상적입니다.WebSocket의 원리OSI 7계층과 WebSocketOSI 모델은 네트워크 통신을 7계층으로 나눈 모델입니다. WebSocket은 주로 전송계층(TCP)과 응용계층(HTTP/HTTPS)에서 작동합니다. 초기 연결설정은 HTTP/HTTPS 프로토콜을 통해 이루어지고, 연결이 설정되면 전송계층의 TCP를 통해 양방향 통신이 이루어집니다. WebSocket의 동작 원리핸드쉐이크: 클라이언트는 HTTP 요청..
개발문서 ChatGPT를 이용해 쉽게 읽는 방법
·
카테고리 없음
ChatGPT 유료 결제자가 아니라면 아래의 링크를 통해 무료로 이용가능하다고 하니, 꼭 사용해보세요.https://www.googleadservices.com/pagead/aclk?sa=L&ai=DChcSEwjci6j7iMuHAxV0J3sHHRC6OyMYABAAGgJ0bQ&co=1&ase=2&gclid=CjwKCAjw2Je1BhAgEiwAp3KY7-IC5wEq2X5es5xA4FTZKCWJaPloFG14TopyilaTt8b7ERE4Wdxd0hoC_tMQAvD_BwE&ohost=www.google.com&cid=CAESVeD2_rd7aqTxwx75pxKtVK3FiQxHj4CxF_mhPy2KZCur1yQP8fSPom7I3J2XMrjAtPJEqqNwZ7-izusY6LjR7FDBsTKnV5Hk9Ah8epH9et..
[git] rebase
·
TIL(Today I Learned)
rebase rebase는 merge와 함께 다른 브랜치로 합칠 때 사용됩니다. rebase는 말 그대로 base를 변경하는 것입니다.   main 브랜치인 C1에서 bugFix 브랜치를 분기했습니다. bugFix의 base는 C1이 됩니다. base란 현재 브랜치(bugFix)가 다른 브랜치 위로 이동되기 전의 공통 조상을 의미합니다. 즉, bugFix와 main의 공통 조상은 C1이 되는겁니다.   이제 `git rebase main`을 질의하면, bugFix의 커밋들을 main의 마지막 커밋으로부터 재적용하는 작업입니다. 이 과정에서 base가 변경됩니다. bugFix의 base가 C1에서 C7로 변경됩니다. 반대로 이번에는 main 브랜치에서 `git rebase bugFix`를 해보겠습니다. m..
[1-2]소프트웨어의 재공학
·
카테고리 없음
1. 소프트웨어 공학 (1) 재공학과 재사용(Software Reuse) ①②③④⑤⑥⑦⑧ ① 소프트웨어 재공학(Software Reengineering)의 개념 및 목표 소프트웨어 위기를 개발의 생산성이 아닌 유지보수의 생산성으로 해결하려는 방법을 의미한다. 재구조화는 재공학의 한 유형으로 사용자의 요구사항이나 기술적 설계의 변경 없이 프로그램을 개선하는 것이다. 소프트웨어 재공학 관점에서 가장 연관 깊은 유지보수 유형은 예방 유지보수(Preventive Maintenance)이다. 재사용을 수월하게 하며 소프트웨어의 수명을 연장하는 것을 목표로 한다. ② 재공학의 장점 개발 시간과 비용을 감소시킨다. 프로젝트 실패의 위험을 감소시킨다. 소프트웨어의 품질 및 생산성을 향상시킨다. 구축 방법에 대한 개발 ..
소프트웨어의 개념과 소프트웨어 공학
·
카테고리 없음
1. 소프트웨어 (1) 소프트웨어의 개념 및 특징 ① 소프트웨어 개념 컴퓨터를 동작시키고 어떤 일의 처리 순서와 방법을 지시하는 명령어의 집합인 프로그램과 프로그램의 수행에 필요한 절차, 규칙, 관련 문서 등을총칭한다. 프로그램(Program): 컴퓨터를 통해 일련의 작업을 처리하기 위한 명령어와 관련된 데이터의 집합을 의미한다. 자료 구조(Data Structure): 컴퓨터 기억 장치 내에 자료의 표현, 처리, 저장 방법 등을 총칭하는 것으로 데이터 간의 논리적 관계나 처리 알고리즘을 의미한다. 문서(Document): 소프트웨어를 개발하면서 작성하는 사용자 설명서, 소프트웨어 요구 분석서, 평가서, 명세서, 프로젝터 계획서, 검사 계획서 등을 의미한다. ② 소프트웨어의 특징 상품성: 소프트웨어를 개..
[JS]전역객체와 Node객체
·
TIL(Today I Learned)
Node.js를 공부하다가 보니 문득 헷갈렸습니다. Javascript에서 모든 객체는 Object를 상속합니다. 그럼 window, global과 같은 전역객체도 Object 객체를 상속하는걸까요. 위의 이미지와 같이 Object와 EventTarget과 window객체가 프로토타입 체인상에 존재한다는 것을 확인할 수 있습니다. 그런데 document는 window에 속한 객체이니까 Node가 window일까요? 그렇지 않습니다. 그렇다고 Node를 상속하지도 않습니다. 그럼 window는 어디에 있고 Node는 뭘까요. 분명 이 사이에 window객체가 있을거 같은데요. 모던 자바스크립트 Deep Dive의 20장 '실행 컨텍스트'에서 정답을 찾을 수 있었습니다. 전역 객체는 전역 코드가 평가되기 이..
[CSS]이미지 사이즈 맞추기
·
CSS
전달받은 이미지는 왼쪽의 이미지처럼 위아래에 검은색 부분이 있습니다. 이 부분을 제외하고 위의 이미처럼 내용만 표시되게 하려면 어떻게 해야할까요. 방법은 object-fit이었습니다. object-fit: img 도는 video를 컨테이너 크기에 맞게 리사이징하는 속성입니다. fill: 기본값, 주어진 너비에 맞게 늘리고 줄입니다 contain: 주어진 너비에 맞게 리사이징하지만 주어진 비율을 유지합니다. cover: 주어진 비율을 유지하고 주어진 너비를 꽉 채웁니다. none: 리사이징하지 않습니다. scale-down: none 또는 contain의 가장 작은 버전으로 크기를 줄입니다. 그런데 height이 %이면 object-fit이 적용되지 않습니다.. 왜일까요. height이 %이면 예상치 못한..
React에서 함수형 컴포넌트를 장려하는 이유
·
TIL(Today I Learned)
자바스크립트 딥 다이브를 읽다가 문득 궁금해졌습니다. 함수는 호출될 때마다 실행 컨텍스트가 생성됩니다. 이에 반해 클래스는 인스턴스가 생성될 때 생성되는 메소드를 제외하고, 생성된 클래스 객체 자체가 재사용됩니다. 그렇다면, 매번 새롭게 만들어지는 함수형 컴포넌트보다 클래스형 컴포넌트가 메모리 사용 측면에서 더 뛰어난게 아닐까요. 그런데 왜 React에서는 클래스형 컴포넌트보다 함수형 컴포넌트의 사용을 장려하는 것 일까요. import React, { useState } from 'react'; function FunctionalComponent() { const [count, setCount ] = useState(0); function handleButtoClick() { setCount(count ..