알고리즘이란어떤 문제의 해결을 위해 필요한 절차를 기술한 것입니다.그 절차나 방법을 이해할 수 있다면, 어떤 방법으로도 기술할 수 있는 것입니다.1 입력이 있어야 한다.2 결과를 구할 수 있어야 한다.3 각 단계(방법)은 명백하고 모호하지 않아야 한다.4 순서대로 실행
십진수0부터 9까지 10개의 숫자는 최대 10개, 항목이 10개가 넘는다면, 두 자리 십진 숫자로는 00부터 99까지 최대 100 항목 ,즉 100개를 넘는 항목을 처리하려면 세 자리로 넘어가야 하는데 , 000부터 999까지 1,000개가 가능하다 (0은 보통 생략하
어셈블러기계어와 일대일 대응이 되는 컴퓨터 프로그래밍의 저급 언어이다.컴퓨터 구조에 따라 사용하는 기계어가 달라지며, 따라서 기계어에 대응되어 만들어지는 어셈블리어도 각각 다르게 된다.컴퓨터 CPU마다 지원하는 오퍼레이션의 타입과 개수는 제각각이며, 레지스터의 크기와
자바스크립트브라우저가 웹페이지에서 자바스크립트를 발견하면(예를 들어 , <script> 태그를 만나면) 프로그램의 텍스트를자바스크립트 컴파일러로 전달한다컴파일러는 프로그램에 에러가 있는지검사하고 , 프로그램을 모형 컴퓨터처럼 만들어 낸 컴퓨터의 어셈블리 언어 명령
※메일 전송과 파일 공유 > TCP (전송 제어 프로토콜) 두 개의 호스트를 연결하고 데이터 스트림을 교환하게 해주는 중요한 네트워크 프로토콜이다. 에러가 없이 패킷이 신뢰할 수 있게 전달 되었는지 보증해 주는 것이다. TCP는 동시제어가 가능하다. 1. 텔넷과 S
== : 값만 비교해서 true,false를 반환한다.=== : 값과 데이터타입(Data Type)까지 비교해서 true,false를 반환한다.null 과 undefinde는 값이 없는것은 동일 하지만 데이터 타입이 다르다.
🐶 ES란?ES(ECMAScript)란 자바스크립트를 표준화 하기 위해 만들어진, ECMA-262 기술 규격에 따라 정의하고 있는 표준화된 스크립트 프로그래밍 언어이다.ES6의 9가지 기능1️⃣ 기본 매개 변수 (Default Parameters)beforafter⛔
스코프는 참조 대상 식별자(identifier, 변수, 함수의 이름과 같이 어떤 대상을 다른 대상과 구분하여 식별할 수 있는 유일한 이름)를 찾아내기 위한 규칙이다. 자바스크립트는 이 규칙대로 식별자를 찾는다.전역 스코프 (Global scope) :코드 어디에서든지
확장성이 있는 네트워크 어플리케이션 개발에 사용되는 소프트웨어 플랫폼이다.V8이라는 JavaScript 엔진 위에서 동작하는 자바스크립트 런타임(프로그램을 실행할 수 있는 환경)이다.Node.js를 이용하여 서버를 만들 수 있다Node.js는 NPM 이라는 오픈 소스
🌼 undefined은 변수를 선언하고 값을 할당하지 않은 상태, null은 변수를 선언하고 빈 값을 할당한 상태(빈 객체)이다. 즉, undefined는 자료형이 없는 상태이다.☃️ null은 원시값(Primitive Type) 중 하나로, 어떤 값이 의도적으로 비
깊은 복사(Deep Copy)는 '실제 값'을 새로운 메모리 공간에 복사하는 것을 의미하며,얕은 복사(Shallow Copy)는 '주소 값'을 복사한다는 의미입니다. 즉, 참조하고 있는 실제값은 같습니다.p2에 p1을 할당할 때, 주소값이 할당되는 것이기 때문에 한 객
브라우저와 서버가 통신할 수 있도록 만들어주는 여러 프로토콜 가운데 한 종류로 웹 브라우저와 웹 서버 사이에 HTML(웹 문서를 만들기 위한 언어) 문서를 주고받는데 쓰이는 통신 프로토콜입니다.클라이언트란(요청 : Request) 요청을 보내는 쪽을 의미하며 일반적으로
템플릿 리터럴(Template Literals)은 내장된 표현식을 허용하는 문자열 리터럴입니다.템플릿 리터럴(Template Literals)은 표현식/문자열 삽입, 여러 줄 문자열, 문자열 형식화, 문자열 태깅 등 다양한 기능을 제공합니다.
배열 혹은 객체에서 각각 값(value)이나 프로퍼티(property) 를 분해하여 손쉽게 별도의 변수에 담을 수 있도록 해 줍니다.
객체(Object) / Oriented(지향) / Programming(프로그래밍) 객체 지향 프로그래밍이란 인간 중심적 프로그래밍 패러다임(견해, 사고법)이라고 할 수 있다.즉, 현실 세계를 프로그래밍으로 옮겨와 프로그래밍하는 것을 말한다. 현실 세계의 사물들을 객체
Go언어로 작성된 리눅스 컨테이너 기반으로하는 오픈소스 가상화 플랫폼이다.모든 서비스를 한 서버안에 올린다면 안정성에 문제가 생길수도 있습니다. 그래서 안정성을 높이며 리소스도 최대한 활용할 수 있는 방법으로 나타난게 서버 가상화입니다 대표적인 가상화 플랫폼으로는 VM
Object를 참조하는 keywordjavascript는 함수 호출 방식에 따라 '동적'으로 결정 된다.함수를 호출하면 해당 함수 내부 코드에서 사용된 this는 전역객체(window)에 바인딩된다.함수는 전역객체의 메소드이다. 따라서 메소드 호출시와 동일하게 메소드
형상 관리 도구이다.(버전 관리 시스템이라고도 한다.)소프트웨어를 개발하는 기업의 핵심 자산인 소스코드를 효과적으로 관리할 수 있게 해주는 무료, 공개소프트웨어.Git - 분산형 관리 시스템SVN : 중앙 서버에 소스코드와 히스토리를 저장Git : 소스코드를 여러 개발
string , number , boolean , undefined , symbol , (null) 타입을 가지고있다.단 하나의 데이터를 담고있다.할당 시, 값(value)자체를 할당한다.b는 a의 '값'을 복사하기 때문이다. b = a 를 할당, b= 5를 재할당 =
현재 프로젝트에 관한 정보와 npm or yarn 으로 설치한 패키지이름,버전,데이터 등 관리하는 파일위치는 프로젝트이 최상위 디렉토리에 위치해있다.name 과 version으로 구분된다.npm install OR yarn install로 package.json을 만들
타 웹 페이지를 가져와 데이터를 추출하는 행위이다.우리가 정한 특정 웹 페이지에서 데이터를 추출하는 것특정주제 스포츠 뉴스에 랭킹 1~5위인 데이터, 어떤 물품의 가격등 -> 원하는 데이터 추출URL을 탐색해 반복적으로 링크를 찾고 가져오는 과정크롤러 : 데이터를 수집
앞서 동기/비동기가 무엇인지 부터 알고 넘어가자시간이 오래 걸리는 일을 동기적(Sync)로 처리하게 되면, 그 작업이 처리될 때까지 클라인언트가 서버에 들어가지 못한다.요청을 하면 시간이 얼마나 걸려도 요청한 자리에서 결과가 기다리는 방식요청과 결과가 동시에 일어나지
테이블 간의 관계를 직관적으로 파악 할 수 있다.SQL 정규화 - DB설계시 중복을 최소화해서 구조화 하는 프로세스스키마를 준수하지 않으면 테이블에 추가 할 수 없다.스키마에 따라 정해진 구조에 맞는 것만 테이블에 추가 할 수 있다.데이터의 성능이 일반적으로 정렬,탐색
🌼 DB Tool ⛔️ SQL Tool |SQL| |-| |DataGrip| |DBeaver| |DbVisualizer| |TablePlus| |TeamSQL| |Sequle Pro| |MySQL Workbench| ⛔️ NoSQL Tool |NoSQL| |-
Object-Relational Mapping(객체-관계 매핑)객체,관계형 데이터베이스의 데이터를 자동으로 연결 해준다.모델 그자체에 쿼리 메소드를 정의, 모델의 메소드를 사용하여 객체를 저장,제거,불러오는 방식User 모델의 프로퍼티와 메서드를 정의할 수 있습니다.공
Model , View, Controller로 구성되어있다.데이터와 비즈니스 로직을 관리한다.데이터를 가진 객체이다.모델의 상태에 변화가 있을 때 컨트롤러와 뷰에게 알린다.와 같은 통보를 통해 뷰는 최신의 결과를 보여줄 수 있고, 컨트롤러는 모델의 변화에 따른 적용 가
데이터베이스의 구조(개체, 속성, 관계)와 제약 조건에 대한 정의, 메타 데이터라고함DBMS 주어진 설정에 따라 데이터베이스 스키마 생성자료를 저장, 조회, 삭제, 변경 할 때 DBMS는 자신이 생성한 데이터 베이스 스키마를 참조참조각 개인의 입장에서 필요로 하는 데이
🌼 Nest.js
Javascript에 타입을 부여한 언어로 Javascript의 확장된 언어.TypeScript는 기존의 자바스크립트(ES5) 문법을 그대로 사용할 수 있다.존재하지 않는 프로퍼티의 접근을 허용합니다Javascript는 다른 언어와는 다르게 오류를 코드 실행전에 알려주
클라이언트에서 사용할 수 있는 기능을 설명하는 일련의 규칙우리가 사용하는 접근 방식에 따라 더 많거나 적은 기능을 더 많거나 덜 쉽게 구현할 수 있는 방식Code-first/Schema-firstGraphql 스키마를 먼저 정의하고, 정의한 스키마에 따라 코드구현하는
javascript는 동적 분석을 하기 때문에 코드를 직접 실행 시켜 에러를 찾아야 한다.linter는 코드를 정적 분석을 하기 때문에, 직접 실행 시키지 않아도 자동으로 검출서로 같은 스타일로 코드를 작성할 수 있게 도와주는 도구입니다.코드를 완전히 다시 작성, 코드
1번 -> 타입을 미리 지정하여 string 타입만을 받아야 함으로 범용성이 떨어진다.2번 -> any를 사용하면 타입을 제한할 수 없고, 어떤 타입의 데이터가 retrun되는지 알 수 없다.이러한 문제점을 보안하기 위해 Generic단일 타입이 아닌 다양한 타입에서
서버가 클라이언트 인증을 확인 하는 방식Cookie, Session의 보안하는 방식에서 JWT등장기초적인 인증방식부터 공부하고, JWT 방식을 사용하는 이유를 알아보겠음{key/value}의 형식의 문자열 이다.사이트가 사용하고 있는 서버를 통해 클라이언트의 브라우저에
Login Process는 로그인 과정이라 불린다운영 체제나 응용 프로그램에 엑세스 하는데 사용되는 절차로그인 과정은 서버로 SSL을 이용한 ID, PASSWORD, 회원정보를 서버에 전달, DB 저장 암호는 비밀유지를 위해 마스킹표시로그인이 필요한 페이지는, 사용자느
암호화만 가능하고 복호화는 할 수 없다.MD5 : 128비트 암호확 해시 함수SHA-1 (안전하지 않아 쓰이진 않는다.), SHA-2(SHA-256) 권장SHA-256임의의 길이 메세지를 256비트의 축약된 메세지로 만드는 알고리즘경우의 수가 2^256속도가 빠르기 때
여러 행으로부터 하나의 결괏값을 반환하는 함수SELECT 구문에서만 사용가능주로 평균, 합, 최대, 최소등 구하는데 사용위 테이블로 가정USER 테이블 안에 있는 유저 유저 총 갯수를 반환(총 유저), 중복된 값도 COUNT한다. => 4 DISTINCT 쓰면 중복 제
인증 - 사용자의 신원을 확인인가 - 신원이 확인된 사용자에서 권한을 부여한다.회원 가입, 로그인 하는 절차라고 생각사용자의 정보(id,pw...)를 토대로 회원가입을 진행한다. 사용자의 패스워드는 암호화 한상태로 DB에 저장 사용자가 로그인시 id,pw(DB에 암호화
PG사 결제 모듈에 대한 연동 개발을 진행할 때, 제공되는 결제 플랫폼 OR결제 호스팅 서비스(API)2023-02-06 Iamport가 PortOne으로 봐뀌었다기존 Iamport에서 이용중인 서비스는 그대로 사용할 수 있게 봐뀌었다.PG사 : 신용카드사와 직접 계약
OAuth 프로토콜의 기능 중 하나로 SNS(소셜) 로그인이 있는 것이다.다양한 플랫폼 환경에서 권한 부여를 위한 산업 표준 프로토콜입니다.타사의 가입 정보를 이용해, 어플리케이션 OR 플랫폼에 손쉽게 로그인할 수 있는 프로세스따로 회원가입 즉,계정을 새로 만들 필요없
이미지는 DB에 직접 넣지 않고 이미지를 다운받을 수 있는 주소를 넣는다.실제 이미지는 다른 컴퓨터에 저장한다.이미지는 용량이 매우 크기 때문에, 이미지를 저장하는 컴퓨터의 용량이 커야 한다참조파일 업로드 엔드포인트를 만든다브라우저 파일 태그 <input type
데이터베이스의 상태를 변경시키기 위해 수행하는 작업 단위즉, SQL 질의어를 통해 DB에 접근하는 것SELETINSERTDELETEUPDATE원자성(Atomicity) - DB에 모두 반영 또는, 전혀 반영되지 않아야함일관성(Consistency) - 트랜잭션 수행 전
오픈 소스로서 NoSQL로 분류되고, in-memory 솔루션으로 분류되기도 한다.외부에서 사용 가능한 Key-Value 쌍의 해시 맵 형태의 서버라고 생각할 수 있다.디스크에 데이터를 쓰는 구조가 아니라 메모리에서 데이터를 처리하기 때문에 작업 속도가 상당히 빠르다.
🌼 Microservice
Test Driven Development의 약자로 ‘테스트 주도 개발테스트 코드를 작성을 먼저하고, 그것에 맞게 코드를 작성한다.실패하는 테스트 코드를 작성할 때까지 실제 코드를 작성하지 않는 것최소 실제 코드를 작성참고Red : 실패하는 테스트 코드를 먼저 작성한다
ex) https:wwww.test.com을 Ip주소로 변환해주는 시스템test.com -> DNS서버로 전송 -> test.com = "12.1234.123.4123""12.1234.123.4123"의 Ip 주소를 갖고있는 호스팅 서버브라우저는 받은 Ip 주
통칭 방화벽 이라고 한다.방화벽이란? -> 정의된 보안 규칙에 기반으로, 네트워크 트래픽을 모니터링하고 제어하는 보안 시스템개별 장치만 보호하므로 개별 네트워크 엔드 포인트를 격리하려는 경우 유용개인은 적합, 기업은 적합하지 않는다.또한, 모든 장치가 소프트웨어와 호환
인터넷 상에서 정보를 주고 받기위한 프로토콜클라이언트와 서버 사이에 이루어지는 요청/응답 프로토콜암호화되지 않은 방법으로 데이터를 전송보안이 강화된 HTTP모든 HTTP 요청과 응답 데이터는 네트워크로 보내지기전에 암호화HTTPS는 HTTP의 하부에 SSL과 같은 보안
어떤 기능을 추가할 때 가장 우려되는 점은 해당 기능이 기존 코드에 어떤 영향을 미칠지 알지 못한다.우리가 서비스를 운영한다고 가정하고 생각해보면, 사용자들의 피드백을 참고하여 코드를 수정새로운 기능 추가 => 기존 코드에 영향력 행사 => 에러발생어디서 에러가 났는지
🌼 Kubernetes (K8s) 컨테이너화된 애플리케이션을 어디서나 배포,확장,관리할 수 있는 오픈소스 시스템 "k"와 "s"와 그 사이에 있는 8글자를 나타내는 약식 표기 > Kubernetes 배경 1️⃣ 초기 배포 애플리케이션을 물리 서버에서 실행 한 물
🌼 서버리스 클라우드 컴퓨팅의 모델 중 하나로 개발자가 서버를 직접 관리할 필요가 없는 아키텍처 서버리스는 동적으로 서버의 자원을 할당한다. 사용자가 없으면 할당하지 않고 대기하다 요청이 들어오면 그때 자원을 할당해서 요청을 처리하고 대기 한다. 비용은 대기상태를 제
개발 단계부터 배포까지의 모든 단계를 자동화를 통해 효율적이고 빠르게 배포하는 것CI/CD는 DevOps 엔지니어의 핵심 업무지속적인 통합빌드와 일련의 자동 테스트가 이루어져 동작을 확인하고 변경으로 인해 문제가 생기는 부분이 없도록 보장공유 Repositiory에 통
Gitflow는 Git 브랜치를 관리하기 위한 레거시 Git 워크플로워다여러 브랜치 들을 사용하여 개발하는 Git 브랜치 모델master : 기준이 되는 브랜치, 제품을 베포develop : 개발 브랜치, 각자 작업한 기능들을 병합(Merge)집니다.feature :
정책에 따라 서비스를 빠르게 확장,축소할 수 있는 서비스트래픽이 급증하게되면 CPU 사용률이 높아지게 된다.CPU 사용률이 우리가 지정한 퍼센트(ex: 80%)를 넘게되면 미리 만들어놓은 이미지를 이용해 인스턴스를 새롭게 생성트랙피이 줄어들어 CPU 사용률이 낮아지게