Develope/기타 8

더 나은 코드 품질을 위한 SOLID 원칙

소프트웨어 개발에서 좋은 코드 품질을 유지하는 것은 매우 중요하다. 코드가 복잡해질수록 유지보수와 확장성이 어려워지기 때문에, 코드가 처음부터 이해하기 쉽고, 유지보수하기 쉬우며, 확장 가능한 구조로 작성되는 것이 중요하다. 이러한 목표를 달성하기 위해 객체 지향 프로그래밍과 소프트웨어 설계에서 SOLID 원칙이 탄생했다.SOLID는 소프트웨어 개발에서 따르기 좋은 다섯 가지 기본 원칙의 약어로, 이 원칙들을 준수하면 더 나은 코드 품질을 유지할 수 있다. 각 원칙은 고유한 목적과 가치를 가지고 있으며, 이를 통해 소프트웨어 시스템을 보다 효율적이고 유연하게 만들 수 있다.1.단일 책임 원칙 (Single Responsibility Principle, SRP)단일 책임 원칙은 "클래스는 하나의 책임만 가..

Develope/기타 2024.08.30

Typescript Infer란?

infer란 무엇인가?infer 키워드는 TypeScript의 조건부 타입(Conditional Types)과 함께 사용되어 특정 타입을 추론할 수 있는 메커니즘을 제공한다. 기본적으로 제네릭 타입에서 특정 부분을 추출하거나 변환할 때 유용하며, 타입스크립트가 타입을 추론하는 과정에서 특정 타입을 변수처럼 사용할 수 있다.type Example = T extends infer U ? U : never;여기서 T extends infer U는 T 타입을 U라는 이름으로 추론하겠다는 의미이다. 이 간단한 예제는 T 타입 자체를 U로 추론하고, 그 결과로 U를 반환합니다infer의 실제 활용 예제infer 키워드를 사용하면 복잡한 타입에서 특정 부분을 쉽게 추출할 수 있으며, 이를 통해 타입 변환을 간결하게 ..

Develope/기타 2024.08.26

Typescirpt any, unknown, never 정리

anyany 타입으로 선언되었을 경우에는 어떠한 타입의 될 수 있는 타입을 의미한다. any를 사용하면 TypeScript의 타입 체크를 우회할 수 있기에 해당 변수에 어떠한 타입의 값이든 할당할 수 있다. 이로 인하여 타입 안정성이 없어지므로, 런타임 오류가 발생할 가능성이 높아진다.let something: any;something = 123; // 숫자 할당 가능something = "hello"; // 문자열 할당 가능something = true; // 불리언 할당 가능something.someMethod(); // 타입 오류 없음, 하지만 런타임에 오류가 발생할 수 있음unknownunknown 타입은 any와 마찬가지로 어떤 타입의 값이든 담을 수 있지만, 그 값을 사용하기 전에 타입 검사를..

Develope/기타 2024.08.16

컴파일러(Compiler), 트랜스파일러(Transpiler)

컴파일링(Compiler)과 트랜스파일링(Transpiler)[(Babel)https://babeljs.io/] 공식 홈페이지에 들어가면 Babel is a JavaScript Compiler 라는 설명을 볼 수 있다.또한 위키피디아에서는 Babel에 대해서는 아래와 같이 설명하고 있다. Babel is a free and open-source JavaScript transcompiler ...transcompiler(Transpilier) 라는 설명으로 Babel을 설명한것으로 확인할 수 있는데, 그렇다면 Compiler와 Transpiler가 어떠한 차이가 있을까?컴파일러(Compiler)일반적으로 컴파일러(Compiler)은 한 언어로 작성된 소스 코드를 실행 가능한(excutable) 하위 수준..

Develope/기타 2024.06.22

# Visual Studio Code(VSCode) 키보드 입력이 정상적으로 작동하지 않을 때

한컴오피스 또는 한컴오피스 한글을 설치하게 되면 한컴 입력기가 같이 설치된다. 이러한 환경에서 Visual Sutdio Code(이하 VSCode) 에서 한국어 입력기가 한컴 입력기로 선택되어 있는 경우 키보드 입력이 작동하지 않는 경우가 발생한다. 또한 VSCode 단축키 crtl + v(Comment) 도 정상적으로 작동하지 않는다. 그러기에 해당 내용을 수정하기 위하여 한국어 입력 방식을 Microsoft 입력기로 변경하거나 한컴 입력기를 삭제하는 방법이 있다. 방안 ctrl + shift 키를 누른거나 작업표시줄에서 한국어 입력 방식을 Microsoft 입력기로 변경한다.

Develope/기타 2024.03.04

Visual Sutdio(VSCode) REST Client

REST Client Visual Studio Code(이하 VSCode)의 REST Client는 Visual Studio Code의 확장 프로그램 중 하나입니다. 이를 통해 HTTP 요청을 보내고 응답을 받을 수 있다. 이를 통해 RESTful API를 테스트하고 디버깅하는 등의 작업을 수행할 수 있다. REST Client를 사용하면 텍스트 파일 안에서 HTTP 요청을 작성하고 실행할 수 있으며, 보통 .http 또는 .rest 확장자를 가진 파일 안에 요청을 작성하고, 이를 실행하여 요청을 보내고 응답을 확인할 수 있다. 설치 마켓플레이스에서 rest client를 검색하여 설치한다. 사용법 .rest, .http 확장자 파일을 생성후 아래와 같이 작성한다. GET https://api.githu..

Develope/기타 2024.02.18

점진적 향상법, 우아한 성능저하법

점진적 향상법, 우아한 성능저하법 점진적 향상법 구식 기술 환경에서 동작할 수 있는 기능을 구현하고, 최신 기술을 사용할 수 있는 환경에서는 더 나은 사용자 경험을 제공할 수 있는 최신 기술을 제공하는 방법이다. 즉, 구식 환경에서도 충분히 서비스를 사용할 수 있고, 최신 환경이라면 더 나은 기능들을 사용할 수 있도록 만드는 것이다. 우아한 성능저하법 최신 기술을 기반으로 기능을 구현한 뒤, 구형 기술을 기반한 환경에서도 유사하게 동작하도록 만드는 방법이다. 최신 브라우저에서는 100만큼의 기능을 제공하고, 구식 브라우저에서는 50 정도의 기능만을 제공하게 제작하는 방법이다.

Develope/기타 2021.01.14

Github 블로그 만들기

Github에서는 Github Repository를 이용하여 Static Website를 제공해주는 Github Pages 서비스를 제공하기 때문에, 해당 서비스를 통하여 블로그를 구성할 수 있습니다. 이 글에서는 Github Pages 서비스와 Jekyll 이용하여 블로그를 만들기 위한 방법을 소개합니다. Github Repository 만들기 Repository 만들기 Github 페이지 접속 후 Repository 생성페이지로 진입합니다. Repository name 항목에 username.github.io와 같이 입력 후 Public로 생성합니다. 생성되어진 Repository 확인 최초 생성되어진 Repository에서 creating a new file을 선택하여 index.html 파일을 생..

Develope/기타 2020.05.19