전체 글

전체 글

    [자료 구조] Stack

    Stack 한 쪽 끝에서만 자료를 넣고 뺄 수 있는 LIFO(Last In First Out)형식의 자료 구조 Stack은 데이터가 한 줄로 위에서 아래로 들어간다고 생각하면 쉬운데, 아래로 데이터가 들어오거나 나갈 수 없고, 위에서 데이터가 들어와서 차곡차곡 쌓이고, 데이터가 나갈 때도 위에서부터 나가는 구조인데 이는 LIFO를 따르기 떄문이다. LIFO(Last In First Out)는 최근의 추가항 데이터가 가장 먼저 제거되는 것이다. Stack의 대표적인 기능은 아래와 같다. push : Stack에 요소를 추가한다. pop : Stack에서 요소를 뺀다. top : Stack의 입구와 가장 가까운 요소에 대해 반환한다. size : Stack의 크기를 반환한다.

    [Nest JS] 파이프(Pipe)

    Pipe 요청이 라우터 핸들러로 전달되기 전에 요청 객체를 변환할 수 있는 기회를 제공한다. 파이프는 주로 변환과 유효성 검사를 위하여 사용 된다. 변환(Transformatiion) : 입력 데이터를 원하는 형식으로 변환 유효성 검사(Validation) : 입력 데이터를 사용자가 정한 기준에 유효하지 않은 경우 예외 처리 @nest/common Module에는 내장 파이프가 마련 되어 있다. ValidationPipe ParseIntPipe ParseBoolPipe ParseArrayPipe ParseUUIDPipe DefaultValuePipe 그 중 ParseIntPipe, ParseBoolPipe, ParseArrayPipe, ParseUUIDPipe는 전달된 인자의 타입을 검사하는 용도로 사용..

    [Node JS] Node JS란?

    Node.js 확장성 있는 네트워크 애플리케이션(특히 Server Side) 개발에 사용 되는 소프트퉤어 플랫폼으로, Javascript를 활용하여 논 블로킹 I/O와 단일 스레드 이벤트 루프를 통한 높은 처리 성능을 가지고 있다. 내장 HTTP 서버 라이브러리를 포함하고 있어서 웹 서버에서 아파치 등의 별도 소프트웨어 없이 동작이 가능하여 서버의 동작에 있어서 더 많은 통제를 가능하게 한다. Node.JS는 2009년에 Ryan Dahl이 Inangural JSConf EU conference에서 발표하였는 데, Node.js의 탄생 전까지의 Javascript는 Frontend에서만 사용 되는 언어였습니다. 단순하게 HTML과 CSS로만 구성된 웹 서비스에서 동적 페이지를 다루는 용도로 사용 되었고,..

    Template Engine(템플릿 엔진)

    참고 사이트 : https://velog.io/@hi_potato/Template-Engine-Template-Engine Template Engine 지정된 템플릿 양식과 데이터가 합쳐져서 HTML 문서를 출력하는 소프트웨어 Web Template Engine는 View(Html)와 Data Logic(DB)와 분리해주는 기능을 하며, 템플릿 엔진은 서버 사이드 템플릿 엔진과 클라이언트 사이드 템플릿 엔진으로 나누어진다. Server Side Template Engine 서버에서 DB 혹은 API에서 가져온 데이터를 미리 정의된 Template에 넣어서 HTML을 그리고 클라이언트에 전달해주는 역할을 수행하는 데, HTML 코드에 정적으로 사용되는 부분을 템플릿으로 만들어두고 동적으로 생성되는 부분(데..

    [Spring] MyBatis에 대해 알아보자.

    참고 : https://jung-story.tistory.com/121 이번에 내가 속한 마스외전에서, 외주 프로젝트를 받았는 데, Spring + MyBatis를 이용하여 개발을 진행해서 MyBatis에 대해서 알아보고자 한다. MyBatis란? 객제 지향 언어인 자바를 이용하여 ORM을 쉽게 할 수 있게 해주는 프레임 워크다. JDBC를 통해 데이터베이스에 엑세스 하는 작업을 캡슐화 하며, 일반적인 SQL 쿼리와 저장 프로 시저 및 고급 매핑을 지원하고 모든 JDBC 코드 및 매개 변수의 중복작업을 제거한다. MyBatis는 프로그램에 있는 SQL 쿼리문을 한 구성 파일에 구성하여 코드와 SQL을 분리하는 장점을 가지는 데, 이번 프로젝트에서는 XML 파일에 쿼리문을 작성해 분리를 한다. MyBati..

    [MySQL] MySQL 설치, 설정 - Mac With Homebrew

    참고 블로그 : https://shanepark.tistory.com/41 해당 게시글은 Homebrew가 Mac에 설치가 되어있다는 전제하에 진행 합니다. Homebrew The Missing Package Manager for macOS (or Linux). brew.sh 1. MySQL 설치 터미널을 켜서 아래의 명령어로 homebrew를 통하여 MySQL를 설치한다. brew install mysql 문제 없이 설치가 완료 된다면 아래의 명령어를 통하여, MySQL의 설치 여부와 버전을 확인한다. mysql -V 그리고 MySQL를 실행시키기 위한 명령어를 입력하면 아래와 같이 나온다. mysql.server start 2. MySQL 설정하기. MySQL를 설공적으로 설치 했다면, 초기 설정을 ..

    [JavaScript] 조건문 - if, switch

    조건문 조건문은 특정한 조건에 따라 코드 진행을 달리하는 분기처리를 하는 문법으로, Javascript에서는 if문과 switch문을 많이 사용하며, 논리 연산자와 삼항 연산자로도 사용이 가능하다. 조건문 if문 if문은 소괄호 안의 조건식이 참이 될 때, 중괄호 안의 코드를 실행 시킨다. const age = 21 if(age >= 20){ console.log("성인 입니다.") } // 성인 입니다. 조건문 if else문 단순하게 나이가 20살 이상일 때뿐만 아니라 20살이 아닐 때라는 분기처리를 희망하면 else를 아래와 같이 사용한다. if문의 모든 조건들의 해당되지 않는 나머지 경우의 수일 때 else 중괄호 안의 식이 실행이 된다. const age = 18 if(age >= 20){ co..

    [Javascript] 반복문 - for, for each, for in, for of

    반복문 Javascript에서 코드를 특정한 횟수를 반복하거나 리스트 형태의 데이터를 순회하고 싶을 때 반복문을 사용 합니다. 주로 많이 사용하는 반복문은 for을 이용한 횟수를 중요시하는 반복문들이 있습니다. for for each for in for of 반복문 for 반복문 for은 코드를 특정한 횟수를 반복할 때 사용합니다. for (let i = 0; i 조건식 -> 반복 코드 -> 후위식의 순서대로 진행 되며, 반복하다가 조건식이 false일 때 반복을 멈춥니..

    [Node JS] typescript + sequelize + passport로 유저 API 개발 - Passport로 Local 로그인하기

    전 게시글 확인! [Node JS] typescript + sequelize + passport로 유저 API 개발 - Local User 생성 전 게시글을 확인하고 읽어주시기 바랍니다:) [Node JS] typescript + sequelize + passport로 유저 API 개발 - Sequelize 셋팅 해당 포스트는 Typescript가 셋팅 되어있어야 합니다. [Node JS] Node.js를 Typescr.. pinomaker.com passport는 Node에서 로그인을 처리하기 위한 모듈이다. 간단하게 생각해서 여권이라고 생각하면 되는 데, 서비스를 개발하면 로컬 유저만 있는 경우도 있지만, 구글과 카카오 등 oauth를 이용한 다양한 종류의 유저를 처리해야할 때가 있는 데 이 때 pa..

    [Node JS] typescript + sequelize + passport로 유저 API 개발 - Local User 생성

    전 게시글을 확인하고 읽어주시기 바랍니다:) [Node JS] typescript + sequelize + passport로 유저 API 개발 - Sequelize 셋팅 해당 포스트는 Typescript가 셋팅 되어있어야 합니다. [Node JS] Node.js를 Typescript 프로젝트로 셋팅하기. 1. Node Project 초기화 작업할 폴더를 생성하고 아래의 명령어로 Node Project로 초기화를 해준다. n.. pinomaker.com 전에 열심히 셋팅한 Sequelize를 이용하여 이제 Local User를 생성하는 즉 로컬 회원가입을 개발해보자. 폴더 구조는 src에 api 폴더를 만들고, user api를 수행할 user 폴더 안에 라우팅을 처리할 index.ts와 비즈니스 로직을 ..