B.E

B.E

    [Spring] Spring DI에 대해서 알아보자.

    DI Dependency Injection의 약자로, 의존 주입을 의미하는 데, 여기서 말하는 의존이란 객체 간의 의존을 의미한다. 아래의 예시를 보고 알아보자. public class MemberService{ // MemberDao 객체 생성 private MemberDao memberDao = new MemberDao(); // Member 저장 메서드 public void save(RequestDto req){ // 같은 Email의 Member가 있는 지 조회 Member member = memberDao.selectByEmail(req.getEamil()); // Email을 가진 Member가 있으면 예외 처리 if(member != null){ throw new DuplicateMember..

    Templatee Engine, Mustache 문법

    참고 사이트 : https://taegon.kim/archives/4910 Mustache Mustache는 제어 구조를 가진, 가장 문법이 간단하고 많은 언어를 지원하는 Template Engine이며, Mustache를 기반으로 확장한 Template Engine도 몇가지 있는 데, 대표적으로는 Handlebars와 Hogan.js가 있다. 변수의 사용 아래의 데이터를 이용해 Mustache에서 변수를 사용하는 방법을 알아보자 // Data { "name" : "Chris", "company" : "Github" } Mustache에서는 {{ }}에 변수 이름을 {{ name }}와 같이 입력하여 사용하는 데, 문자열은 자동으로 HTML 이스케이프가 되어 출력이 되지만 이스케이프가 되지 않은 문자열을..

    [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로만 구성된 웹 서비스에서 동적 페이지를 다루는 용도로 사용 되었고,..

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

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

    [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와 비즈니스 로직을 ..

    [Node JS] typescript + sequelize + passport로 유저 API 개발 - Sequelize 셋팅

    해당 포스트는 Typescript가 셋팅 되어있어야 합니다. [Node JS] Node.js를 Typescript 프로젝트로 셋팅하기. 1. Node Project 초기화 작업할 폴더를 생성하고 아래의 명령어로 Node Project로 초기화를 해준다. npm init -y 2. Module 설치 프로젝트를 위한 모듈을 설치한다. 이제 배포 할 때 사용하지 않는 모듈은 --save pinomaker.com 해당 포스트 시리즈는 typescript, passport, sequelize를 이용하여, Local 로그인, Kakao 로그인, Naver Login과 JWT까지 다룰 예정 입니다. 1. 필요한 모듈 설치 먼저 sequelize와 유저 관련 API 개발을 위해 필요한 모듈을 아래와 같이 설치하자. d..

    [Node JS] Node.js를 Typescript 프로젝트로 셋팅하기.

    1. Node Project 초기화 작업할 폴더를 생성하고 아래의 명령어로 Node Project로 초기화를 해준다. npm init -y 2. Module 설치 프로젝트를 위한 모듈을 설치한다. 이제 배포 할 때 사용하지 않는 모듈은 --save-dev 옵션을 사용하여 설치하는 데, 주로 typescript의 모듈을 그렇게 설치한다. Typescript로 Node를 진행하기 위해서는 기존의 모듈을 설치하고, @types의 모듈도 배포용으로 설치를 해줘야한다. 따라서 아래와 같이 모듈을 설치한다. npm install typescript express ts-node npm install --save-dev @types/express nodemon 3. 폴더 구조 생성, index.ts 생성 위의 폴더 구..

    [Spring] 싱글톤 패턴

    해당 글은 김영한님의 스프링 핵심 원리 강좌를 정리한 글 입니다. Spring은 기업용 온라인 서비스 기술을 지원하기 위해서 만들어졌고, 대부분의 스프링 어플리케이션은 웹이다. 웹은 주로 여러 개의 클라이언트로부터의 요청이 동시에 발생하게 되고, 요청이 올 때 마다 객체를 생성하게 되는 데 고객 트래픽이 1초에 100이라면 1초에 100개의 객체가 생성 되는 심각한 메모리 낭비가 발생하게 되었다. 해당 문제를 해결 하기 위해서 하나의 객체를 생성하고, 이 객체를 공유하도록 설계를 하여 효율적인 개발을 하게 되는 데 이를 싱글톤 패턴이라고 한다. 싱글톤 패턴 싱글톤 패턴은 클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴이다. 그러기에 객체 인스턴스를 2개 이상 생성하지 못 하도록 막아야하..