SPACE LOGBOOK

OCEAN LOGBOOK

개발 용어 개념정리

2026.05.12

개발 용어 개념정리

2026.05.12
SPACE LOGBOOK

개발 용어 개념 정리

서버/개발 환경 이해를 위한 참고서 — 작업 기록

01 JavaScript / Node.js
JavaScript 언어

원래 웹 브라우저(크롬, 사파리 등) 안에서만 동작하던 프로그래밍 언어. 버튼 클릭하면 반응하고, 화면을 동적으로 바꾸는 데 쓰임.

📋 비유: 홈택스 화면에서 숫자 입력하면 자동으로 세액이 계산되는 것 — 그게 JavaScript.
Node.js 실행환경

JavaScript를 브라우저 밖(서버)에서도 실행할 수 있게 해주는 환경. 덕분에 새솔CRM 서버(app.js)도 JavaScript로 만든 것.

📋 비유: 세금신고 프로그램을 윈도우에서 실행하려면 .NET이 필요하듯, JavaScript 서버 코드를 실행하려면 Node.js가 필요.

02 npm · 패키지 관리
npm Node Package Manager

Node.js와 함께 설치되는 패키지(도구) 관리자. 다른 사람이 만들어놓은 기능들을 내 프로젝트에 쉽게 설치하고 관리.

📋 비유: 앱스토어처럼, 필요한 기능(패키지)을 검색해서 설치. “PDF 만들기”, “엑셀 읽기” 같은 기능을 처음부터 만들 필요 없이 가져다 씀.
# 자주 쓰는 npm 명령어 npm install ← 필요한 패키지 전부 설치 (처음 세팅) npm run build ← 빌드 실행 (소스 → 배포용 파일) npm run dev ← 개발용 미리보기 (로컬 테스트) npm run start ← 앱 실행
package.json 설정파일

프로젝트의 설명서 겸 설정파일. 어떤 패키지가 필요한지, npm run XXX 명령어가 무슨 작업인지 정의되어 있음.

"scripts": { "build": "vite build", ← npm run build 할 때 실행 "dev": "vite dev", ← npm run dev 할 때 실행 }

03 React · 빌드 · Vite
React UI 라이브러리

Facebook이 만든 UI(화면) 개발 도구. 복잡한 화면을 컴포넌트(부품) 단위로 쪼개서 만들 수 있음. 새솔CRM의 my-notes 앱이 React로 제작됨. 소스파일 확장자 .jsx

빌드(Build) 변환 과정

사람이 쓴 코드(.jsx)를 브라우저가 읽을 수 있는 압축 파일(.js)로 변환하는 과정. npm run build 명령어로 실행.

📋 비유: 한글(.hwp) → PDF 변환과 같음. 원본(hwp)은 편집용, 변환본(PDF)은 배포용.
App.jsx (소스) → npm run build → dist/index-xxxx.js (배포용)
Vite 빌드 도구

React 소스를 빠르게 빌드해주는 도구. npm run build 하면 내부적으로 Vite가 동작. 개발자가 직접 다룰 일은 거의 없고 자동으로 실행됨.


04 PM2 · 프로세스 관리
PM2 Process Manager 2

서버에서 Node.js 앱을 24시간 살아있게 관리해주는 도구. 오류로 죽으면 자동 재시작, 서버 재부팅해도 자동 실행.

📋 비유: 야간 경비원. 프로그램이 꺼지면 자동으로 다시 켜주고, 정전 후 전기 들어오면 자동으로 복구.
pm2 list ← 실행 중인 프로세스 목록 pm2 logs ← 로그(오류/기록) 보기 pm2 restart saesol-crm ← 재시작 pm2 stop saesol-crm ← 중지 pm2 start app.js --name saesol-crm ← 새로 등록 및 실행
node vs pm2
구분node app.jspm2 start
용도잠깐 테스트실제 서비스 운영
터미널 닫으면앱 꺼짐계속 실행
오류로 죽으면그냥 죽어있음자동 재시작
서버 재부팅 후수동 재시작 필요자동 실행

05 서버 · SSH · Linux
SSH Secure Shell

원격 서버(AWS Lightsail)에 안전하게 접속하는 방법. PEM 키 파일로 인증. 접속하면 서버 터미널을 내 PC에서 직접 조작 가능.

# 새솔CRM 서버 접속 ssh -i "C:\Users\user\Downloads\saesoltax.pem" ubuntu@15.106.8X.2X
자주 쓰는 Linux 명령어
명령어뜻예시
cd폴더 이동cd /home/ubuntu/saesol-crm-web
ls파일 목록 보기ls -la
cat파일 내용 보기cat .env
nano파일 편집nano app.js
mkdir폴더 만들기mkdir backup
cp파일 복사cp app.js app.js.bak

06 Git · GitHub
Git 버전 관리 도구

코드의 변경 이력을 스냅샷으로 저장하는 도구. 언제든 이전 버전으로 되돌릴 수 있음.

📋 비유: 세금신고서를 수정할 때마다 버전 저장. “3월 15일 초안”, “3월 20일 수정본”처럼. 잘못되면 이전 버전으로 복원.
git add . ← 변경된 파일 전부 선택 git commit -m "원천신고 기능 추가" ← 스냅샷 저장 + 설명 메모 git push ← GitHub 서버에 업로드
GitHub 원격 저장소

Git으로 저장한 코드를 인터넷 서버에 보관하는 서비스. 새솔CRM 저장소: viXXXX500-cpu/saesol-crm (Private)

📋 비유: 로컬 저장(Git) = 사무실 캐비닛 / GitHub = 클라우드 백업. 컴퓨터가 날아가도 GitHub에서 복원 가능.
PAT Personal Access Token

GitHub에 push할 때 신원 확인용 비밀번호 역할. 한 번만 발급되고 다시 볼 수 없으므로 즉시 복사 필요. 서버에 credential 저장해두면 매번 입력 불필요.


07 API · Ajax · Express
API Application Programming Interface

프로그램끼리 데이터를 주고받는 창구. 브라우저(화면)가 서버에 “이 데이터 줘” 요청하면 서버가 응답해주는 방식.

📋 비유: 식당의 주문 창구. 손님(브라우저)이 주문서(요청)를 내면, 주방(서버)이 요리(데이터)를 가져다줌.
Ajax 비동기 통신

페이지 전체를 새로고침하지 않고, 필요한 데이터만 서버에서 가져오는 방식. 새솔CRM에서 업체 목록 클릭할 때 화면이 깜빡이지 않는 게 Ajax 덕분.

📋 비유: 메뉴판 전체를 바꾸지 않고 오늘의 특선만 업데이트하는 것.
Express 서버 프레임워크

Node.js로 API 서버를 쉽게 만들 수 있게 해주는 도구. 새솔CRM의 app.js가 Express 기반. URL별로 어떤 데이터를 돌려줄지 정의.

// /api/companies 요청 오면 업체 목록 반환 app.get('/api/companies', (req, res) => { res.json(업체목록); });

08 프론트엔드 vs 백엔드
한 줄 정의
구분프론트엔드 (Frontend)백엔드 (Backend)
위치사용자 브라우저 안서버 안 (눈에 안 보임)
역할화면 표시, 클릭·입력 처리데이터 저장·조회·인증
언어/도구HTML, CSS, JS, ReactNode.js, Express, DB
새솔CRM 예시업체 목록 화면, 노트 폼업체 데이터 저장, Gmail 연동
📋 비유: 식당으로 치면 — 프론트엔드는 홀(손님이 보는 메뉴판·테이블), 백엔드는 주방(재료 손질·요리·재고). 손님은 주방을 볼 수 없지만, 주방이 없으면 아무것도 안 됨.
프론트엔드 3요소
기술역할비유
HTML화면 구조 (뼈대)건물의 콘크리트 구조
CSS화면 스타일 (디자인)인테리어, 도배, 페인트
JavaScript화면 동작 (기능)전기, 수도, 엘리베이터
풀스택 Full Stack

프론트엔드 + 백엔드 둘 다 개발하는 것. 새솔CRM이 딱 풀스택 앱. Claude Code로 둘 다 개발 중인 것.

📋 비유: 홀 서비스도 하고 주방도 보는 1인 식당 사장님.
SSR vs CSR
SSR (서버 사이드)CSR (클라이언트 사이드)
화면 생성 위치서버에서 완성된 HTML 전송브라우저에서 JS로 생성
대표 도구WordPress, 일반 HTMLReact, Vue (새솔CRM)
특징첫 로딩 빠름, SEO 유리화면 전환 부드러움
📋 비유: SSR = 주방에서 완성된 요리를 가져다줌 / CSR = 재료를 테이블에 가져다주면 손님이 직접 조리.
프론트↔백엔드 통신 흐름
① 사용자 클릭 → 프론트엔드 JavaScript 실행
② Ajax 요청 → 백엔드 API로 데이터 요청 전송
③ 서버 처리 → Express가 받아서 DB 조회/저장
④ JSON 응답 → 데이터를 프론트엔드로 전달
⑤ 화면 갱신 → 새로고침 없이 화면만 업데이트

09 DB · SQL · JSON
DB (데이터베이스) 저장소

데이터를 구조적으로 저장하고 빠르게 찾을 수 있는 시스템. 새솔CRM은 SQLite (파일 하나짜리 간단한 DB) 사용.

📋 비유: 세무사 사무소의 고객 파일 캐비닛. 업체별로 정리돼 있고 “홍길동” 검색하면 바로 찾을 수 있는 것.
SQL 질의 언어

DB에 데이터를 넣고, 찾고, 수정하고, 삭제하는 명령어 언어.

SELECT * FROM companies WHERE name = '홍길동' ← 조회 INSERT INTO notes (content) VALUES ('메모내용') ← 삽입 UPDATE companies SET phone = '010-1234' ← 수정 DELETE FROM notes WHERE id = 5 ← 삭제
JSON 데이터 형식

프론트엔드↔백엔드가 데이터를 주고받을 때 쓰는 형식. 사람도 읽기 쉽고 기계도 처리하기 쉬운 구조.

// 백엔드가 프론트엔드에 보내는 JSON 예시 { "id": 123, "name": "홍길동 주식회사", "phone": "031-123-4567", "taxType": "법인" }
📋 비유: 주방(백엔드)이 홀(프론트엔드)에 요리 내용을 전달할 때 쓰는 표준 주문서 양식.
DB 종류 비교
DB특징용도
SQLite파일 하나 = DB 전체. 설치 불필요새솔CRM (소규모)
MySQL서버 별도 설치, 다중 접속에 강함중규모 웹서비스
PostgreSQL기능 풍부, 대규모에 적합대형 서비스
MongoDBJSON 형태로 저장 (NoSQL)비정형 데이터

10 전체 흐름 한눈에
새솔CRM이 돌아가는 구조
브라우저 → crm.saesol-tax.com 접속
AWS 서버 → Node.js + Express (app.js) 실행 중
PM2 → saesol-crm + gmail-poller 24시간 유지
GitHub → vXXXXXX510-cpu/saesol-crm (코드 백업)
기능 수정할 때 흐름
코드 수정 → SSH 서버 배포 → pm2 restart → git commit + push

⚡ 한 줄 핵심 요약

JavaScript웹 화면을 동작하게 만드는 언어
Node.jsJavaScript를 서버에서 실행하는 환경
npm필요한 도구를 설치·관리하는 앱스토어
React / .jsx화면을 부품 단위로 만드는 UI 도구
빌드(Build)소스코드 → 배포용 파일로 변환
PM2서버 앱을 24시간 살려두는 관리자
SSH원격 서버에 안전하게 접속하는 방법
Git / GitHub코드 버전 관리 + 클라우드 백업
API / Ajax화면↔서버 데이터 주고받는 방식
ExpressNode.js로 API 서버 만드는 도구
프론트엔드사용자 눈에 보이는 화면 영역 (HTML/CSS/JS)
백엔드서버에서 데이터 처리하는 보이지 않는 영역
풀스택프론트+백엔드 둘 다 개발 (새솔CRM이 풀스택)
DB / SQLite데이터를 구조적으로 저장하는 시스템
SQLDB에 데이터 넣고 찾고 수정하는 명령어
JSON프론트↔백엔드 데이터 전달 표준 형식
SSR / CSR화면을 서버에서 만드냐 / 브라우저에서 만드냐

댓글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 기록은 여기까지지만,
생각은 아직 이동 중이다