- Node.js 기반의 서버 프레임워크 (ubiaccess-framework = Express.js 기반 미니 프레임워크)
- Spring 같은 대형 프레임워크보다는 훨씬 단순하게, Express.js를 확장해서 DB 연결, 컨트롤러 관리, 라우팅 등을 빠르게 만들 수 있도록 구성된 구조
- Controller로 라우팅을 관리
- Database/Helper로 DB 쿼리 관리
- util로 응답 포맷·공용 기능 관리
- Express + MySQL을 쓰지만, Java Spring 같은 어노테이션 느낌(@Controller, @RequestMapping)을 흉내냄.
- DB 쿼리 실행 → 데이터 가공 → 응답 포맷 통일을 도와주는 구조
주요 구성 요소
1. loader
- 서버를 처음 시작할 때, 각종 컨트롤러, 모델, 설정 파일을 불러옴
- 예: controller_loader.js, database_loader.js
→ Express 라우터에 자동으로 @Controller / @RequestMapping 같은 데코레이터 기반 라우트를 등록
2. controllers
- HTTP 요청을 처리하는 부분.
- 예: person.js
- 컨트롤러는 라우터 역할을 하고, DB 조회·비즈니스 로직을 호출해서 결과를 리턴
3. database
- database_mysql.js 같은 DB 연결 모듈.
- 커넥션 풀을 만들고, SQL 실행을 도와줍니다.
- query()나 execute()를 통해 실제 SQL을 DB에 날림
4. util
- 공용 유틸리티 모듈.
- 예:
- util/util.js → sendRes(), sendError() 같은 응답 포맷 도우미
- util/param.js → 파라미터 파싱, SQL where/order/page 구문 생성
- util/controller_helper.js, database_helper.js, response_helper.js → 반복되는 DB/응답 로직을 재사용하기 쉽게 만든 클래스들
5. database/sql
- SQL 템플릿 모아둔 곳.
- 예: person-sql.js
- 컨트롤러에서 personSql.test_person_list 같은 식으로 불러 씀.
- SQL은 하드코딩하지 않고 여기서 관리.
6. index.js
- 앱 실행 진입점.
- Express 서버를 띄우고, 포트(config.server.port) 설정을 불러서 시작
- controller_loader를 실행시켜 라우팅을 자동으로 연결
주요 구성 요소
- config/
서버 설정, DB 설정, 소켓 설정 등이 들어감 (config.js, sql_config.js 등).
→ 환경 세팅을 바꾸고 싶을 때 수정. - controllers/
요청을 처리하는 곳.
예: person.js, customer.js → /person, /customer API 엔드포인트 담당.
→ 새로운 API 만들고 싶으면 여기 xxx.js 파일 추가. - database/
DB 연결 모듈. 보통 database_mysql.js 같은 기본 DB 핸들러가 들어 있음.
→ DB 커넥션, 쿼리 실행. - sql/
SQL 템플릿 모아두는 곳.
예: person_sql.js, customer-sql.js
→ 컨트롤러에서 require('../database/sql/person-sql') 식으로 불러옴.
===> gpt가 그려준 구조 다이어그램 ===>
'공간정보아카데미' 카테고리의 다른 글
변수 vs 객체 / stack vs heap (0) | 2025.09.01 |
---|---|
Spring - DI - Container (0) | 2025.09.01 |
java - MyBatis (0) | 2025.08.29 |
Session, Cookie, Cache (0) | 2025.08.26 |
Vue - Pinia (0) | 2025.08.25 |