전체 글
[Nest JS] Nest JS 시작하기.
Documentation | NestJS - A progressive Node.js framework Nest is a framework for building efficient, scalable Node.js server-side applications. It uses progressive JavaScript, is built with TypeScript and combines elements of OOP (Object Oriented Progamming), FP (Functional Programming), and FRP (Functional Reac docs.nestjs.com NestJS NestJS는 Node.JS 기반의 웹 API Framework로 Express 혹은 Fastify Frame..
[JavaScript] Map, Filter, Reduce
MAP() 배열에 접근해 콜백 함수를 통해 새로운 값으로 정의하고 신규 배열을 만들어 반환하는 함수로, 배열을 순회할 때 주로 사용된다. 사용 방법은 arr.map(() => {})이며, 새로운 변수에 저장하거나, log와 같은 이벤트 연결 혹은 UI를 보여줄 수 있다. const arr = [1, 2, 3] // 배열 arr의 값을 2배로 곱한 새로운 배열 반환해 mapArr에 저장 const mapArr = arr.map(item => item*2) console.log(mapArr) // [2, 4, 6] map()의 매개 변수는 value, index, source가 차례로 오게되며, 각각 value는 각 요소의 값, index는 순서, source는 순회 중인 배열이며, 모든 매개 변수를 사용할..
[JavaScript] 이터러블(interable), 이터레이터(iterator), 제네레이터(Generator)
이터러블(interable) 이터레이터를 리턴하는 [Symbol.iterator] 메소드를 가지고 있는 자료를 반복할 수 있는 객체다. 우리가 많이 사용하는 배열도 이터러블이며, 이터러블은 for of문으로 순회 할 수 있다. 만약 [Symbol.iterator] 메소드를 제거한다면, for of문으로 순회 할 수 없게 된다. const arr = [1, 2, 3] for(const a of arr) console.log(a) // 1, 2, 3 //[Symbol.iterator]를 없애본다면? arr[Symbol.iterator] = null for(const a of arr) console.log(a) // ERROR 이터레이터(iterator) 이터러블 객체의 [Symbol.iterator] 메소드..
[CS] 진법에 대해 알아보자(1)
2진법과 10진법 우리는 일상생활에서 주로 10진법을 사용한다. 1946년에 개발된 컴퓨터 에니악은 사람에게 익숙한 10진법을 사용하도록 설계되었지만, 전기 회로는 전압이 불안정하여 전압을 10단계로 나누어 처리하는 데 한계가 있었다. 그래서 1950년에 개발된 에드박은 단 두가지 단계, 전기가 흐르면 1, 전기가 흐르지 않으면 0으로만 동작하도록 설계되었고 매우 성공적이었기에, 지금까지 대부분의 컴퓨터는 2진법을 사용한다. 우리는 변수에 값을 저장하면 10진수로 저장되는 것처럼 보았지만, 실제로 컴퓨터는 2진수 밖에 모르기에, 2진수로 바뀌어 저장하게 된다. 따라서 age에 22를 저장하면 실제로는 2진수인 11001로 저장이 되는 것이다. 2진수는 0과 1로만 데이터를 표현하기에 10진수보다 많은 자..
[Java] 자바의 자료형
Java의 자료형은 기본형과 참조형 두가지로 구분이 가능하다. 기본형은 실제 값을 가지고, 참조형은 어떤 값이 저장되어있는 주소를 값으로 가진다. Java의 기본 자료형은 아래의 표와 같다. 종류 키워드 크기 허용 범위 논리형 boolean 1 byte false, true 문자형 char 2 byte '\u0000' ~ 'uFFFF' 정수형 byte 1 byte -128 ~ 127 short 2 byte -32,768 ~ 32,767 int 4 byte -2147483648 ~ 2147483647 long 8 byte - 9,223,372,036,854,775,808~9,223,372,036,854,775,807 실수형 float 4 byte ±1.4E-45 ~ 3.4E38 double 8 byte ±..
[Spring] Ioc, DI, 컨테이너
해당 게시글은 김영한님의 스프링 핵심 원리 - 기본편의 강좌 정리 입니다. 내용 및 소스 출처 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8 Ioc 제어의 역전(Inversion of Control) 기본 프로그램은 클라이언트 구현 객체가 스스로 필요한 서버 구현 객체를 생성하고, 연결을 했다. 즉 구현 객체가 프로그램의 제어 흐름을 조종한 것이다. 하지만 AppConfig(조립, 설정자)가 있으면, 구현 객체는 자신의 로직을 실행하는 역할만 담당하며, 모든 제어 흐름을 AppConfig가 가져간다. 즉 AppConfig가 어떤..
[Spring] 좋은 객체 지향 설계의 5가지 원칙
해당 게시글은 김영한님의 스프링 핵심 원리 - 기본편의 강좌 정리 입니다. 내용 및 소스 출처 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8 SOLID 클린코드로 유명한 로버트 마틴이 정리한 좋은 객체 지향 설계의 5가지 원칙 SRP: 단일 책임 원칙(single responsibility principle) OCP: 개방-폐쇄 원칙 (Open/closed principle) LSP: 리스코프 치환 원칙 (Liskov substitution principle) ISP: 인터페이스 분리 원칙 (Interface segregatio..
[Spring] 객체 지향 프로그래밍이란?
해당 게시글은 김영한님의 스프링 핵심 원리 - 기본편의 강좌 정리 입니다. 내용 및 소스 출처 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8 Spring은 객체 지향 언어인 Java의 프레임워크로, 객체 지향 언어의 특징을 살려내고, 좋은 객체 지향 프로그램을 개발 할 수 있게 도와주는 프레임워크다. 객체 지향 프로그래밍이란? 프로그래밍을 명령어의 목록으로 보는 것이 아닌, 독립된 단위 "객체"들의 모임으로 파악하는 것으로, 각 객체는 메세지를 주고 받고 데이터를 처리 할 수 있다. 객체 지향 프로그래밍은 프로그램을 유연하고 변..
[JavaScript] 정규식에 대해 알아보자
정규식(정규 표현식) 문자열에서 특정 문자 조합을 찾기 위한 패턴이다. JavaScript에서는 정규식도 객체이기에, RegExp의 exec 등의 메서드를 사용할 수 있다. 정규 표현식 만들기 const re1 = /ab+c/ const re2 = new RegExp('ab+c') //정규식은 // 안에 찾고자 하는 패턴을 작성하고 여러가지 옵션을 준다. Groups and ranges | 는 또는을 의미한다. const reg = /HI|HELLO/ // HI or HELLO () 는 그룹을 의미한다. const reg1 = /(HI|HELLO) | (BYE)/ // HI거나 HEllO를 찾거나 혹은 BYE const reg2 = /gr(e|a)y/ //grey 혹은 gray 탐색 (?:) 찾지만, 그..
[HTTP] HTTP 상태 코드
HTTP 상태 코드 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능으로 크게 5가지로 구분된다. 1XX (Informational) : 요청이 수신되어 처리 중 2XX (Successful) : 요청 정상 처리 3XX (Redirection) : 요청을 완료하려면 추가 행동이 필요 4XX (Client ERROR) : 클라이언트 오류, 잘못된 문법등으로 서버가 기능을 수행 할 수 없다. 5XX (Server ERROR) : 서버 오류, 서버가 정상 요청을 처리하지 못 함. 2XX (Successful) 클라이언트의 요청을 성공적으로 처리 200 : 요청 성공 201 : 요청이 성공하여, 새로운 리소스가 생성됨 202 : 요청이 접수는 되었지만,처리가 되지 않았다. 204 : 서버가 요청을 성..