일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 소켓
- Vue.js
- 오블완
- 자바
- 티스토리챌린지
- 나만무
- 자바스크립트
- userprog
- 핀토스
- 스택
- pintos
- CSS
- 크래프톤정글
- defee
- corou
- 4기
- 코드트리
- 큐
- TiL
- 시스템콜
- 알고리즘
- 리액트
- 백준
- JavaScript
- 크래프톤 정글
- 모션비트
- Flutter
- HTML
- Java
- 사이드프로젝트
- Today
- Total
목록개발 TIL (98)
미새문지
결합도(Coupling) 와 응집도(Cohesion) 결합도(Coupling)와 응집도(Cohesion)는 소프트웨어 설계의 품질을 평가하는 중요한 개념이다.이 두 개념은 모듈 간의 관계와 모듈 내부의 요소들이 얼마나 잘 통합되어 있는지를 나타내며, 소프트웨어의 유지보수성, 재사용성, 확장성에 큰 영향을 미칠 수 있기 때문에 매우 중요하다.결합도(Coupling)결합도는 한 모듈이 다른 모듈과 얼마나 밀접하게 연결되어 있는지를 나타내며, 모듈 간의 의존성이 높을수록 결합도가 높고, 의존성이 낮을수록 결합도가 낮다.낮은 결합도(Low Coupling)모듈 간의 상호 의존성이 적다.모듈이 독립적으로 동작할 수 있어 변경의 영향이 최소화된다.유지보수와 재사용이 용이해진다.높은 결합도(High Coupling)..
HOC(Higher-Order Components)HOC는 React에서 컴포넌트를 인수로 받아 새로운 컴포넌트를 반환하는 함수이며, 컴포넌트를 재사용하고 확장하기 위한 고급 기술이다.HOC는 React의 컴포넌트 재사용을 통해 코드의 중복을 줄이고, 컴포넌트의 기능을 쉽게 확장할 수 있게 한다.HOC 특징컴포넌트를 인수로 받음HOC는 보통 하나 이상의 컴포넌트를 인수로 받아 새로운 컴포넌트를 반환하며, 이 과정에서 원본 컴포넌트는 수정되지 않고, 확장된 기능을 갖춘 새로운 컴포넌트가 생성된다.원본 컴포넌트를 래핑함HOC는 원본 컴포넌트를 래핑하여 필요한 추가 기능을 부여한다. 예를 들어, 데이터 페칭, 상태 관리, 로깅 등의 기능을 HOC로 분리할 수 있다.함수형 또는 클래스형 컴포넌트에 사용 가능HO..
즉시 실행 함수(IIFE, Immediately Invoked Function Expression)IIFE는 정의되자마자 실행되는 자바스크립트 함수이며, 이는 자바스크립트에서 흔히 사용되는 패턴으로, 함수의 스코프를 이용해 변수를 캡슐화하거나 초기화 코드를 즉시 실행할 때 유용하다.(function() { }) (); 또는 (function() { } ());이 기본 형태이다.IIFE의 장점스코프 캡슐화: IIFE 내부에서 정의된 변수는 외부에서 접근할 수 없으므로 전역 스코프를 오염시키지 않는다.모듈화: IIFE를 사용하면 모듈 단위로 코드를 분리하여 관리할 수 있다.익명 함수: IIFE는 이름이 없는 익명 함수로 정의되므로 함수 이름을 정의하지 않아도 된다.초기화 코드: 페이지 로드 시점에서 실행..
OOP객체 지향 프로그래밍(Object-Oriented Programming, OOP)은 소프트웨어 설계 방법론 중 하나로, 프로그램을 여러 개의 객체(object)로 구성하여 그 객체들 간의 상호작용을 통해 프로그램을 설계하고 구현하는 방법론이다.OOP의 핵심 개념은 클래스(class)와 객체(object)이며, 여기서 객체는 데이터와 데이터를 처리하는 코드를 묶은 독립적인 단위이고, 클래스는 이러한 객체를 정의하는 설계도이다. OOP의 핵심 개념클래스(Class)객체를 정의하는 틀이나 설계도객체의 속성(데이터)과 행동(메소드)을 정의예: class Car, class Fruit객체(Object)클래스의 인스턴스(instance)실제로 메모리에 할당되어 동작하는 개체예: myCar = Car(), my..
Base64 인코딩Base64 인코딩은 바이너리 데이터를 ASCII 텍스트로 변환하는 인코딩 방식이며, 이는 데이터를 텍스트 기반 시스템(예: 이메일, JSON, XML 등)에서 쉽게 전송하고 저장할 수 있도록 하기 위해 사용된다.Base64는 바이너리 데이터를 텍스트로 변환할 때 데이터 크기를 약 33% 정도 증가시킨다. 인코딩 과정바이너리 데이터 분할: 원본 바이너리 데이터를 3바이트(24비트)씩 나눈다.비트 그룹 변환: 각 3바이트 블록을 6비트씩 4개의 그룹으로 나눕니다. 6비트는 2^6 = 64개의 값(0부터 63까지)을 가질 수 있다.Base64 인덱스 매핑: 각 6비트 그룹을 Base64 인덱스 테이블의 값으로 변환하는데, 이 테이블은 " A-Z (0-25)", "a-z (26-51)", "..
리덕스를 사용하는 이유리덕스를 사용하는 이유는 주로 애플리케이션의 상태 관리가 복잡해지면서 나타나는 문제들을 해결하기 위함이다.리덕스의 장점예측 가능한 상태 관리리덕스는 단일 스토어와 액션, 리듀서를 사용하여 상태 변경이 언제 어디서 일어나는지 명확하게 정의할 수 있다.이를 통해 상태 변화의 흐름을 쉽게 추적하고 예측할 수 있다.디버깅 및 개발 도구 지원리덕스는 강력한 디버깅 도구인 Redux DevTools를 제공하는데, 이 도구를 사용하면 상태 변경을 시각화하고, 시간 여행 디버깅(time-travel debugging)을 통해 이전 상태로 돌아가거나 특정 시점의 상태를 재현할 수 있다.중앙 집중식 상태 관리애플리케이션의 모든 상태가 하나의 스토어에 저장되므로 상태 관리가 중앙집중식으로 이루어지며, ..
DHCPDHCP가 무엇인지 설명해주세요.DHCP(Dynamic Host Configuration Protocol)는 네트워크 상에서 장치가 자동으로 IP 주소 및 기타 네트워크 설정을 받을 수 있도록 해주는 프로토콜이다. 주요 기능IP 주소 할당: 네트워크에 연결된 장치(클라이언트)에게 IP 주소를 동적으로 할당한다.기타 네트워크 설정 제공: 서브넷 마스크, 게이트웨이 주소, DNS 서버 주소 등의 네트워크 설정 정보를 제공한다.IP 주소 갱신 및 해제: IP 주소를 일정 시간 동안만 유효하게 하고, 만료 전에 갱신하거나 네트워크에서 벗어날 때 해제할 수 있다.작동 방식DHCP Discover: 클라이언트가 네트워크에 연결되면, DHCP 서버를 찾기 위해 브로드캐스트 메시지(DHCP Discover)를 ..
웹소켓과 소켓 통신소켓과 포트의 차이가 무엇인가요?소켓 (Socket)소켓은 네트워크 통신의 종단점으로, 두 시스템 간의 데이터 전송을 가능하게 한다. 소켓은 IP 주소와 포트 번호를 결합한 것으로, 네트워크 상의 특정 프로세스와 통신하기 위한 인터페이스이다.IP 주소: 네트워크 상의 특정 장치(호스트)를 식별포트 번호: 장치 내의 특정 애플리케이션(프로세스)을 식별프로토콜: TCP, UDP와 같은 통신 방식소켓은 클라이언트와 서버 간의 연결을 설정하고, 데이터 전송 및 수신을 관리하는 역할을 하며, 소켓 프로그래밍에서는 소켓을 생성하고, 특정 주소와 포트에 바인딩한 후, 연결을 수립하고 데이터를 주고받는다. 포트 (Port)포트는 네트워크에서 특정 프로세스를 식별하는 숫자이며, 포트 번호는 IP 주소와..