직접 만든 Express 서버에 React를 연동해보자

연동 방법이 목적이니 만큼 Typescript나 CORS 등의 부가적인 설정은 제외하였다

 

 

1. Creact-React-App으로 React 프로젝트 생성

npx create-react-app frontend

위 코드로 프로젝트를 생성한 후

 

cd frontend

생성된 프로젝트로 이동한다음

 

npm build

서버에서 사용하기 위해 빌드해준다

 

 

 

2. Express 서버 생성

리액트가 있는 frontend 프로젝트에서 나와서 backend 프로젝트를 만들어준다

 

 

서버 구동에 필요한 기본적인 파일을 생성한다

 

 

server.js

import express from "express";
import path from "path";
import router from "./routes/router";

const PORT = 3001;
const app = express();

app.use(express.static(path.join(__dirname, "../../frontend/build")));

app.get("*", router);

app.listen(PORT, () => {
    console.log(`Server listening on port http://localhost:${PORT}`);
});

포트 번호는 3000번을 사용하는 React와 충돌을 피하기 위해 다른 번호로 설정한다

 

 

여기서 주목해야할 부분은 아래 부분인데

app.use(express.static(path.join(__dirname, "../../frontend/build")));

static 경로를 React 빌드 디렉토리로 지정해 주어

React에서 빌드한 파일 들을 렌더 할 수 있도록 만들어 준다

 

 

router.js

import express from "express";
import path from "path";

const router = express.Router();

router.get("*", (req, res) => {
    res.sendFile(path.join(__dirname, "../../../frontend/build/index.html"));
});

export default router;

라우터에서도 build의 index.html을 향할 수 있도록 경로를 지정해준다

 

 

라우터까지 잘 작성했다면 서버를 실행시켜 준다

 

이후 http://localhost:3001 로 접속하여

위 화면을 만난다면 모든 설정이 완료되었다

 

 

 

3.  참고사항

- 이렇게 연동하는 경우 리액트 서버를 계속 실행시켜둘 필요는 없다

- 리액트의 변동 사항을 서버에서 확인하기 위해서는 추가 빌드가 필요하다(npm build)

- 따라서 리액트 개발을 진행할 때에는 리액트 서버를 통해 개발을 진행하고 변동사항을 서버에 적용하고 싶을 때에만 빌드하여 Express 서버에서 확인하도록 하자

보기 좋은 윈도우 개발환경 구축을 위해 PowerShell을 위한 Oh My Zsh라고 할 수 있는 Oh My Posh를 설치 하였다

설치 과정을 3단계로 따라해보자

 

 

1. Nerd Font

우선 아래 링크에서 Nerd Font를 설치한다

 

폰트는 터미널 내에서 아이콘 등을 표현하기 위해 필요하며,

설치하지 않고 진행할 경우 유니코드 대체 문자(▯)가 표기될 수 있다

 

아래 링크에 접속해보면 폰트의 종류가 상당히 많은데

필자는 powerlevel10k에서 사용하는 Meslo 폰트로 진행하였다

 

폰트 설치 후 사용하는 IDE나 코드 에디터, 윈도우 터미널 앱의 설정에 진입하여

터미널 폰트 설정을 설치한 폰트로 꼭 변경하여 주자

 

https://www.nerdfonts.com/

 

Nerd Fonts - Iconic font aggregator, glyphs/icons collection, & fonts patcher

Iconic font aggregator, collection, & patcher: 3,600+ glyph/icons, 40+ patched fonts: Hack, Source Code Pro, more. Popular glyph collections: Font Awesome, Octicons, Material Design Icons, and more

www.nerdfonts.com

 

 

 

2. Oh My Posh

winget install JanDeDobbeleer.OhMyPosh -s winget

터미널에 위 코드를 입력하여 Oh My Posh를 설치한다

 

코드를 실행하면 Oh My Posh와 기본 테마가 함께 설치 된다

 

 

 

3. 테마

notepad $PROFILE

터미널에 위 코드를 입력하여 PowerShell 프로필 파일을 연다

 

만약 VSCode가 설치되어 있다면 notepad 대신 code 명령어를 사용해도 좋다

 

 

oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\원하는테마이름.omp.json" | Invoke-Expression

프로필 파일 끝에 위 코드를 추가하여 테마를 설정하면 모든 설치가 완료된다

 

단, 파워쉘 스크립트를 실행하기 위한 권한 설정이 필요할 수 있는데

 

해당 코드 적용 이후에 에러메시지가 나타난다면

 

Set-ExecutionPolicy RemoteSigned

파워쉘에서 위 코드를 입력하여 권한을 부여하도록 하자

 

자세한 권한에 대해서는 아래 공식문서를 참고하자

 

https://learn.microsoft.com/ko-kr/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.3

 

 

 

 

 

테마 목록은 아래 링크에서 확인하여 원하는 테마를 선택할 수 있다

 

https://ohmyposh.dev/docs/themes

 

Themes | Oh My Posh

Oh My Posh comes with many themes included out-of-the-box. Below are some screenshots of the more common themes.

ohmyposh.dev

 

코드 설명
\n 문자열 안에서 줄 바꿈
\t 문자열 안에서 탭 사용
\\ \를 문자 그대로 출력
\' '를 문자 그대로 출력
\" "를 문자 그대로 출력
\r 캐리지 리턴 (커서를 줄의 맨 앞으로 이동)
\f 폼 피드 (줄을 바꾸지만 커서 위치는 그대로)
\a 벨 소리 (출력 시 스피커에서 소리가 난다)
\b 백 스페이스
\000 널 문자

 

프로그래밍을 할 때 사용할 수 있도록 미리 정의해 둔 문자 조합.

출력물을 보기 좋게 정렬하는 용도로 주로 사용 된다.

+ Recent posts