기술 스택Express.js, MongoDB 패키지 설치express: Node.js 서버 프레임워크.body-parser: 요청 본문 파싱.mongoose: MongoDB와 Node.js 연결.dotenv: 환경변수 관리. MongoDB MongoDB: 개발자 데이터 플랫폼업계를 선도하는 모던 데이터베이스를 토대로 구축된 애플리케이션 데이터 플랫폼을 사용해 아이디어를 더욱 빠르게 실현하세요. MongoDB는 데이터를 손쉽게 처리할 수 있도록 지원합니다.www.mongodb.commongoDB 계정생성 후 연동프로젝트 생성 & Cluster 생성app.js 또는 server.js 설정// 미들웨어 설정app.use(require('body-parser').json());// mongoose 연동const..
express-generator터미널에서 아래 명령어를 통해 express-generator를 설치express-generator : 프로젝트를 간단하게 생성해주는 도구npm install -g express-generator 프로젝트 생성express [프로젝트 명]# 프로젝트 생성로그 warning: the default view engine will not be jade in future releases warning: use `--view=jade' or `--help' for additional options create : nodejs-api\ create : nodejs-api\public\ create : nodejs-api\public\javascripts\ creat..
nodeJs설치아래 공식 홈페이지에서 node.js 설치파일 다운로드 Node.js — 어디서든 JavaScript를 실행하세요Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.nodejs.org설치 완료 후 cmd를 통해 정상적으로 설치되었는지 확인npm --version node --version Visual Studio Code개발툴은 visual studio code 를 사용함. 아래 홈페이지에서 다운로드https://code.visualstudio.com/ Visual Studio Code - Code Editing. RedefinedVisual Studio Code redefines AI-powered coding ..
신규 프로젝트를 진행하면서 회원을 hierarchy구조로 사용해야해서 self join 을 쓰지않고 조회하는 방법을 찾아봤다.OracleStart With ~ : 최상위 조건Connect By Prior ~ : 부모와 자식 관계로 연결할 데이터 매핑# 판매자 계층조회 쿼리SELECT USERNO,NAME,DECODE(LEVEL,1,'대리점',2,'매니저',3,'영업사원')FROM T_DEALERWHERE SUPPLIER_NO IS NOT NULLSTART WITH UPPER_DEALER_NO IS NULL -- 최상위 계층 조회 조건CONNECT BY PRIOR USERNO = UPPER_DEALER_NO -- 매핑 조건ORDER BY LEVEL; MySqlOracle은 간단하게 조회가능했으나 MySQL..
Bridge Pattern Bridge Pattern이란? 큰 클래스 또는 밀접하게 관련된 클래스들의 집합을 두개의 개별 계층구조(추상화 및 구현)로 나눈 후 각각 독립적으로 개발할 수 있도록 하는 구조 디자인 패턴 Bridge Pattern 구현방법 기초 추상 클래스 정의 추상화에 필요한 작업들을 일반 구현 인터페이스에 선언 추상화 클래스 내에 구현 유형에 대한 참조 필드 추가 (작업들을 참조되는 구현 객체에 위임) 클라이언트 코드 - 구현 객체를 추상화의 생성자에 전달 → 이후부터는 추상화 객체와만 작업 가능 Bridge Pattern 장단점 장점 새로운 추상화들과 구현들을 상호 독립적으로 도입 가능(OCP) 추상화의 상위수준 논리과 구현의 플랫폼 세부 정보에 집중 (SRP) 단점 결합도가 높은 클래..
Adapter Pattern Adapter Pattern이란? 호환되지 않는 인터페이스를 가직 객체들을 협업을 할 수 있도록하는 구조적 디자인 패턴 주요 구성요소 타겟(target) : 클라이언트가 직접적으로 호출하는 인터페이스 어댑티(adaptee) : 아직 호환되지 않은 기존 클래스 클라이언트 : 특정 작업을 요청하는 클래스 어댑터 : 타겟 인터페이스를 구현하여 클라이언트 요청을 어댑티로 전달하는 클래스 Adapter Pattern 구현방법 서로 호환되지 않는 (인터페이스가있는) 클래스를 호환시키기 위해 신규 클라이언트 인터페이스를 선언한다. 신규 인터페이스의 구현객체에 해당 서비스를 호출 가능하도록 만드는 코드 작성한다. 클라이언트에서 서비스를 직접 호출하지않고 신규로 생성한 어댑터 인터페이스를 통..
Interceptor Interceptor : 요청에 대한 작업 전/후로 가로챈다. Filter와 다르게 DispatcherServelt이 컨트롤러를 호출하기 전, 후로 끼어들기 때문에 Spring context영역 내부에서 controller에 관한 요청과 응답에 대해 처리. HandlerInterceptor 를 구현하여 사용하며 preHandle,postHandle,afterCompletion 메서드를 구현하여 사용가능하다. preHandle : 컨트롤러 실행 전 postHandle : 컨트롤러 수행 후 결과를 뷰로 보내기 전 afterCompletion : 뷰의 작업까지 완료된 후 수행 WebConfing 설정 interceptor 사용 설정은 아주 간단하다 addInterceptor 를 통해 생성..