70 / 100 SEO Score

Node.js란 무엇이며, Shopify 앱 개발에서 어떤 역할을 할까요?

Shopify 앱을 개발하고 싶다고 했을 때 가장 먼저 듣게 되는 말이 있습니다.
“Node.js부터 설치하세요”라는 말입니다.
하지만 개발을 처음 시작하는 분이라면, 이 말이 정확히 무슨 뜻인지 이해하기 어려울 수 있습니다.
이 글에서는 Node.js가 무엇인지, Shopify 앱에서 어떤 일을 하는지, 그리고 어떻게 사용하는지를 아주 쉽게 풀어 설명드리겠습니다.

Node.js 란 무엇인가요?

Node.js는 원래 웹 브라우저 안에서만 작동하던 **자바스크립트(JavaScript)**를 브라우저 밖에서도, 즉 컴퓨터나 서버에서 실행할 수 있게 해주는 기술입니다.
이전에는 자바스크립트로 사용자 인터페이스만 만들 수 있었지만, Node.js 덕분에 서버를 만들고, 데이터를 처리하고, 앱을 통째로 구동하는 것도 가능해졌습니다.
즉, Node.js는 자바스크립트를 프론트엔드뿐 아니라 백엔드에서도 사용할 수 있도록 해주는 프로그램입니다.

Shopify 앱 개발에서 Node.js의 역할

Shopify 앱은 단순한 웹사이트가 아닙니다.
상품 정보를 불러오고, 주문 내역을 확인하고, 사용자 설정을 저장하고, 다른 외부 API와 연결되기도 합니다.
이러한 작업들은 화면(UI)을 구성하는 React가 아닌, 백엔드에서 조용히 처리되며, 이때 중심 역할을 맡는 것이 바로 Node.js입니다.

Node.js는 Shopify 앱에서 다음과 같은 중요한 일들을 처리합니다.

Shopify에서 앱이 설치되었을 때 사용자 정보를 저장합니다
Shopify의 인증(OAuth) 절차를 처리합니다
상품, 주문, 고객 정보를 불러오기 위해 Shopify API를 호출합니다
React(Polaris) 화면에서 요청한 데이터를 받아 처리하고 결과를 반환합니다
사용자의 설정 정보를 데이터베이스에 저장하고 불러옵니다

쉽게 말하면 Node.js는 Shopify 앱의 머리와 심장 같은 존재입니다.

Node.js는 어떻게 사용하나요?

Node.js는 **터미널(명령어 입력창)**을 통해 사용합니다. 앱을 만들고 실행하며, 외부 도구를 설치하고 관리할 때도 터미널을 사용하게 됩니다.

Node.js 설치

Node.js는 공식 웹사이트(https://nodejs.org) 에서 운영체제에 맞게 설치할 수 있습니다.
설치하면 nodenpm이라는 명령어를 사용할 수 있게 됩니다.

node는 자바스크립트 파일을 실행하는 명령어입니다
npm은 Node.js에서 사용하는 다양한 도구(패키지)를 설치하고 관리하는 도구입니다

예를 들어 Shopify 관련 기능을 사용하려면 아래 명령어로 설치합니다.

npm install @shopify/shopify-api

이렇게 하면 Shopify API와 통신할 수 있는 도구가 앱에 추가됩니다.

앱 실행하기

Shopify 앱은 Node.js로 만든 웹 서버를 실행해야 작동합니다.
일반적으로 다음 명령어로 서버를 실행합니다.

npm run dev

그러면 컴퓨터에서 http://localhost:3000 같은 주소로 서버가 켜지며, 앱이 작동하게 됩니다.
외부에서 접속하려면 Render, Cloudflare Tunnel 같은 서비스와 연결할 수 있습니다.

코드 구조 이해하기

Shopify 앱의 코드 구조는 대체로 다음과 같이 구성됩니다.

/app
  /routes         ← Shopify와 통신하는 API 경로
  /middleware     ← 인증, 보안 필터 등
  server.js       ← 앱의 시작 파일
  .env            ← 비밀 키(Shopify API KEY 등)

server.js는 앱의 메인 엔진 역할을 하며, 여기에 Shopify API 연결, 인증 처리, 데이터 처리 기능이 들어갑니다.
React와 Polaris는 보통 /frontend 폴더 안에서 화면(UI)을 담당합니다.

Node.js 기본 문법 쉽게 이해하기

Node.js는 자바스크립트로 만들어졌기 때문에, 자바스크립트 문법과 비슷하지만 서버 작업을 위해 필요한 몇 가지 중요한 문법이 추가로 존재합니다.

모듈 가져오기

외부 도구나 파일을 사용할 때는 require 또는 import를 사용합니다.

const express = require('express'); // 일반 방식

또는 최신 방식:

import express from 'express'; // ESModule 방식

express는 Node.js에서 가장 널리 쓰이는 서버 프레임워크입니다.

서버 시작하기

아래는 Node.js를 이용해 기본 웹 서버를 시작하는 예제입니다.

const express = require('express');
const app = express();

app.get('/', (req, res) => {
  res.send('Hello Shopify!');
});

app.listen(3000, () => {
  console.log('서버가 3000번 포트에서 실행 중입니다');
});

이 코드는 localhost:3000 주소로 접속했을 때 “Hello Shopify!”라는 문장을 화면에 보여주는 간단한 서버입니다.
app.get()은 사용자가 / 주소로 접근했을 때 무엇을 보여줄지 정의하고, res.send()는 사용자에게 보낼 응답을 정합니다.
app.listen()은 몇 번 포트에서 서버를 실행할지 지정합니다.

환경 변수 사용하기

Shopify API Key처럼 민감한 정보를 코드에 직접 쓰면 안 됩니다.
대신 .env라는 파일을 만들어 변수로 관리합니다.

예시:

SHOPIFY_API_KEY=abcd1234
SHOPIFY_API_SECRET=efgh5678

Node.js에서 이 값을 사용하려면 다음처럼 코딩합니다.

require('dotenv').config();

const apiKey = process.env.SHOPIFY_API_KEY;

이렇게 하면 외부에 노출되지 않도록 중요한 값을 보호하면서 사용할 수 있습니다.

비동기 처리 (async/await)

Node.js는 외부 서버에서 데이터를 불러오거나 파일을 읽을 때 시간이 걸리는 작업을 많이 처리합니다.
이때는 async/await 문법을 사용해 비동기 처리를 합니다.

app.get('/products', async (req, res) => {
  const data = await fetchShopifyProducts();
  res.json(data);
});

이 예제는 fetchShopifyProducts() 함수가 상품 목록을 불러오면, 그 결과를 사용자에게 JSON 형식으로 반환합니다.
이러한 방식은 데이터를 기다렸다가 처리할 수 있어 매우 유용합니다.

결론: Node.js는 Shopify 앱의 핵심 엔진입니다

React는 화면에 보여지는 부분을 담당하고, Node.js는 그 화면 뒤에서 모든 정보를 처리하고 전달합니다.
Shopify 앱을 만들기 위해서는 Node.js가 꼭 필요하며, 그 역할은 단순한 실행 환경을 넘어서 앱 전체의 논리를 책임지는 중심이 됩니다.

처음에는 Node.js의 구조나 터미널 명령어들이 익숙하지 않을 수 있지만, 하나씩 따라하면서 익히다 보면 어느 순간 자연스럽게 익숙해지게 됩니다.
React와 Node.js를 동시에 사용할 수 있다는 점은 개발 생산성을 크게 높여주며, Shopify 앱을 직접 만들고 싶은 분들에게는 더없이 좋은 기회가 될 수 있습니다.