본문 바로가기

JavaScript33

Closure(클로저) Closure 함수가 실행되었을 때의 렉시컬 환경 function outer() { const x = 10 const inner = function () { console.log(x) } return inner } const closure = outer() closure() 외부함수 outer 에서 선언한 변수 x와, x를 출력하는 함수 내부함수 inner outer 함수는 inner 함수를 반환하고 life-cycle 종료 변수 closure 에 outer 함수를 할당하고 실행 10 출력 outer 함수는 변수 x와 내부함수 inner 를 선언하고, inner 함수를 반환하고 수명을 다한다. 하지만 outer 함수를 closure 변수에 할당하고 실행하니 이미 수명을 다한 outer 함수에서 선언한 x.. 2023. 7. 31.
Sequelize paranoid(삭제-복구) Paranoid sequelize 의 paranoid 는 컴퓨터의 휴지통 개념처럼 데이터를 완전히 삭제하는게 아닌 삭제 후 복구가 가능하도록 새로운 필드 속 넣어 두는 것이다. models 설정 'use strict'; const { Model } = require('sequelize'); module.exports = (sequelize, DataTypes) => { class Posts extends Model { /** * Helper method for defining associations. * This method is not a part of Sequelize lifecycle. * The `models/index` file will call this method automatically. .. 2022. 12. 24.
컨트롤러(Controller) 컨트롤러 컨트롤러는 클라이언트의 요청을 처리한 후 서버에서 처리된 결과를 반환해주는 역할을 한다. 클라이언트의 요청을 수신하고, 요청에서 들어온 데이터 및 내용을 검증한 뒤 서버에서 수행된 결과를 클라이언트에 반환한다. 프레젠테이션 계층(Presentation Layer) 프레젠테이션 계층은 대표적으로 컨트롤러로 사용된다. 사용자가 서버에 요청을 하게 되면 가장 먼저 만나게 되는 계층이다. 하위 계층(서비스 계층, 저장소 계층) 에서 발생하는 예외(Exception)를 처리한다. 클라이언트가 전달된 데이터에 대해 유효성을 검증하는 기능을 수행한다. 클라이언트의 요청을 처리한 후 서버에서 처리된 결과를 반환한다. Express 에서의 컨트롤러 클라이언트의 요청을 받음 요청에 대한 처리는 서비스에 전달 클라.. 2022. 12. 10.
아키텍쳐 패턴(Architecture Pattern) 아키텍쳐 패턴 소프트웨어의 구조를 구성하기 위한 가장 기본적인 토대 각각의 시스템들과 그 역할이 정의 되어 있고, 여러 시스템 사이의 관계와 규칙 등이 포함되어 있다. 검증된 구조로 개발을 진행하기 때문에 안정적인 개발이 가능하다. 아키텍쳐 패턴을 도입할 경우 도메인이 복잡할스록 모델이나 코드를 더 쉽게 변경할 수 있다. 대표적인 아키텍쳐 패턴 저장소 패턴 영속적인 저장소에 대한 추상화 서비스 계층 패턴 유스 케이스(Usecase)의 시작과 끝을 명확하게 정의하기 위한 패턴 작업 단위 패턴 원자적 연산을 제공 애그리게이트 패턴 데이터 정합성을 강화하기 위한 패턴 아키텍쳐 패턴을 도입하기 전 아키텍쳐 패턴이 주는 이익과 비용에 대해 확실한 이유가 있어야 한다. 해당하는 패턴을 채택했을 때 어떤 장단점이 있.. 2022. 12. 10.
반응형