4️⃣Chapter4. ES6와 프로젝트 파일 구조의 이해
ES란?
ECMAScript란 ECMA international이라는 국제 표준 기구에서 관리하는 자바스크립트의 표준이다. ECMA-262 기술 규격에 따라 정의된다.
ES가 지속적으로 업데이트 되면서 수정이 이루어지고 있는데 ES5 → ES6에서 변화가 커 ES6 변화에 대해서 알아야한다.
ES6
위 블로그를 토대로 정리함 (일부부분 이해가 가지 않아서 이해가는 부분만 정리)
- ESM(모듈)모듈 내부에서 선언된 모든 변수, 함수, 객체, 클래스는 모두 지역적인 것 (local)로 간주된다.
- 외부로 공개하고자 하는 것은 export하고 다른 모듈에선 import 구문으로 참조하여 사용 가능하다.
- import 할 때 이름 변경하고 싶으면 as 예약어 사용
- import 할 때 단일 객체 (export default) 되었다면 구조분해할당 사용하지 않고 단일 객체로 가져온다.
- 모듈 : 독립성을 가진 재사용이 가능한 블록, import/export를 통해 불러오기 내보내기가 가능하다.
- Promise 객체 지원
- 📚 자바스크립트 Promise 개념 & 문법 정복하기
- 구조분해할당
let arr = [1, 2, 3, 4]; let [a1, a2, a3] = arr; console.log(a1, a2, a3); // 1, 2, 3 let obj = { name: 'melon', age: 30, nationality: 'KR' }; let { name: n, age: a, nationality } = obj; console.log(n, a, nationality); //melon 30 KR
- 배열, 객체의 값을 추출하여 여러변수에 할당할 수 있는 기능
- Spread Operator 전개 연산자
자세한 문법은 JS 강의를 통해 알아보자..
프로젝트 파일 구조
프로젝트 구조는 정말 다향하게 있다. UMC 노드에서 사용하는 프로젝트 파일 구조는 Service-Oriented Architecture(Service Layer Pattern)를 간소화 한 구조 사용.
Service-Oriented Architecture
https://celeroncoder.github.io/blog/posts/should-i-adopt-service-oriented-architecture-soa/
- Controller
- 클라이언트의 요청을 받아 서비스에 전달
- 서비스에서 작업을 마친 데이터를 받아 클라이언트에게 응답
- 단지 요청을 받아 응답 처리를 진행한다. (routing)
- Service Layer
- 비즈니스 로직 캡슐화 및 추상화
- Controller로 부터 전달된 요청에 로직을 적용하는 계층
- Data Access Layer (Repository Layer)
- 쿼리를 수행하며 DB와 상호작용
- Service 계층에서 데이터베이스 접근이 필요한 경우가 발생하는데, 데이터에 대한 직접적인 코드가 작성되는 계층
계층형 아키텍쳐
- Presentation Layer
- 사용자와의 상호작용에 중점을 둔 계층 : view, controller
- Business/Domain Layer
- Domain Layer: 도메인 처리에 중점을 둠. 서비스(어플리케이션) 레이어에 의존하지 않도록 구현하는 것이 좋다. (한 어플리케이션에 의존하면, 다른 어플리케이션에서는 활용할 수 없기 때문이다.)
- Application Service Layer:
- 도메인 처리를 위해 필요한 제반 작업에 중점을 둠. 다른 인프라와 통신, 외부 API와 통신, 트랜젝션
- 소프트웨어의 도메인 로직 처리에 중점을 둔 계층
- Data Access Layer (Persistence Layer)
- 데이터베이스에 직접 요청을 하는 등 데이터베이스에 접근하는데 중점을 둠. 데이터베이스와 mapping되는 객체를 영구히 관리하는 계층: repository, DAO
계층형 아키텍쳐의 장단점 🅾️ 구조가 단순하고, 보편적으로 사용하기 때문에 처음 프로젝트를 시작할 때 적합하다는 장점이 있다. ❎ 결과적으로 각 계층이 의존성을 가지기 때문에 데이터베이스 주도 설계로 이어질 수 있다. 조직화가 어려워지고, 비즈니스 로직이 여기저기 퍼져있어 도메인 파악이 힘들어진다
클린 아키텍쳐
각 계층의 의존성을 낮추고 추상화를 통해 관심사 분리
'Studying Programming > Node.js' 카테고리의 다른 글
Node.js - Express (0) | 2025.03.13 |
---|---|
Node.js (0) | 2025.03.07 |