그리고 front를 만들어주어 back으로 보낼 준비를 해주자. 여기서 중요한 것은 form의 메소드를 POST로 설정해주어야한다. 만약 url의 설정을 바꾸고 싶다면 action attribute를 주어 url도 설정할 수 있으나 같은 url주소로 POST를 할꺼니 action은 따로 지정하지 않았다.
mongoDB는 다목적이고 document(문서) 기반으로 작동한다. 보통 database는 문서기반이 아니다 sql 기반이다. 엑셀시트 같은 개념이다. mongoDB에서 DB는 object로 움직인다. 행으로 저장이 되지않고 Array Object들로 구성이 된다. JSON처럼 저장된다는 느낌이라고 생각하면 된다.
Install
MongoDB Community Server를 다운 받아준다.
Connecting
Mongoose
mongoose는 NodeJS와 MongoDB를 이어주는 매개체가 될것이다. mongo가 잘 설치 되었는지 확인하기 위해 터미널에 아래의 명령어를 입력해준다. not found 문구가 나오면 다시 설치해야한다.
mongod
그리고 아래 입력
mongosh
mongosh 명령어
help
show dbs
db.
VScode로 돌아와서 mongoose 설치
npm install mongoose --save
mongoDB와 연결해주기 위해 코드를 작성해야한다. src 폴더에 db.ts or js를 생성
import mongoose from "mongoose";
//mongosh에 나와있는 connecting to 참조
mongoose.connect("mongodb://로컬호스트:포트넘버/임의 저장소 이름을 지정",{});
백엔드 파일에가서 db.ts or js 파일 자체를 import를 해주어야한다. 경고나 주의가 터미널창에 나오면 ,{} 안에 터미널창에 나오는 데로 작성해주면 된다.
연결의 성공 여부나 에러를 console.log로 출력하기 위해 다음과 같이 문장을 추가한다.
mongoose.connection.once("connected", () => console.log("✅ DB is connected"));
mongoose.connection.on("error", (error) => console.log(error));
** typescript를 설치 했다면 간혹 다른 도구를 설치하면 설치한 도구가 뭔지 몰라 빨간 줄이 그어질때가 있는데 당황하지 말고 마우스를 올리면 @types/도구이름 을 설치하라고 나오니 설치하면 잘 작동될것이다.
nodemon 설치
작업을 하면서 계속해서 'dev'명령어를 칠 수 없으니 nodemon을 사용해줘서 개발환경에서 백엔드가 지속적으로 동작할 수있게 만들어주어야 하는데 이때 도움을 줄수 있는 것이 nodemon이다.
npm i nodemon --save-dev
실행문을 바꿔준다.
"dev": "nodemon --exec ts-node src/server"
nodemon 파일 변경 감지 설정
//nodemon.json
{
"ext": "ts,json,tsx"
}
ESLint / Prettier 설정
npm init @eslint/config
//프로젝트 루트 폴더 위치에서 터미널에
npm i -D prettier eslint-config-prettier
//명령어를 입력하여 prettier와 eslint-config-prettier 패키지를 설치합니다.
//프로젝트 루트 폴더 위치에 .prettierrc 파일 (prettier 설정 파일)을 생성합니다.
// 아래를 참고하여 prettier 옵션들을 .prettierrc 파일에 작성합니다. 추가적인 옵션들은 Prettier Options를 참고하시면 됩니다.
{
// 쌍따옴표 대신 홑따옴표 사용
"singleQuote": true,
// 모든 구문 끝에 세미콜론 출력
"semi": true,
// 탭 대신 공백으로 들여쓰기
"useTabs": false,
// 들여쓰기 공백 수
"tabWidth": 2,
// 가능하면 후행 쉼표 사용
"trailingComma": "all",
// 줄 바꿈할 길이
"printWidth": 80,
// 객체 괄호에 공백 삽입
"bracketSpacing": true,
// 항상 화살표 함수의 매개 변수를 괄호로 감쌈
"arrowParens": "always",
// OS에 따른 코드라인 끝 처리 방식 사용
"endOfLine": "auto"
}
.eslintrc에 가서
extends: ['기존 설정들', 'prettier']
또한 extent에서 eslint와 prettier를 설치해주고
vscode setting.json에 아래 추가
// 파일을 저장할 때마다 `eslint` 규칙에 따라 자동으로 코드를 수정
"editor.codeActionsOnSave": { "source.fixAll.eslint": true },
// `prettier`를 기본 포맷터로 지정
"editor.defaultFormatter": "esbenp.prettier-vscode",
// 파일을 저장할 때마다 포매팅 실행
"editor.formatOnSave": true,
Server란?
서버는 항상 켜져있고, 인터넷에 연결되어 있으며 request를 listening하고 있는 컴퓨터이다.
request란?
request는 우리가 서버에게 요청하는 것들이다. 브라우저로 웹사이트로 들어가는 행위가 request를 보내는것이다. 이 행위는 행위를 listening 하고 있는 서버에만 적용된다. 또한 get이외에 CRUD가 기반이 되는 post, delete, put 등등이 있다.
controllers
해당 url로 이동하려고 하면 그에 대한 동작을 실행하는게 controller이다. 여기서 request 와 response를 제공하게 되는데 request에는 누가 웹사이트를 request 했는지 cookies, 브라우저 정보 , IP 주소 같은 정보들이 있다. response에는 여러 메소드가 있다. cookie 설정부터 무엇을 보내고 렌더링하고 응답을 끝내는 등 많은 메소드가 있다.
middleware란?
request와 response 중간에서 동작하는 함수 따위를 middleware라고 한다.
middleware는 controller와 비슷하다. 보안이나 CRUD를 구현할때 같이 쓰인다.
3-1. 플렛폼을 추가할때 Android package name을 추가해야하는데 앱안에 있는 것과 같은 이름을 사용해야함 ./android/app/build.gradle에서 다음 부분을 찾아 ID 이름을 입력
defaultConfing{
applicationId "id 이름"
3-2. android nickname은 알아서 지어주고 Debug signing certificate SHA-1가 필요한데 이는 구글 인증을 하거나 핸드폰번호나 Dynamiv Link로 인증하고 싶다면 필요하다.
이를 하기 위해서 VS CODE로 돌아와 터미널에서 다음을 입력하면 터미널에서 Text가 나온다.
cd android && ./gradlew signingReport
그 후 Task :app:signingReport라는 걸 찾아주고 SHA1의 부분을 찾아 복사하고 파이어베이스에 붙어주면 파일을 다운받을 수 있는데 이 파일을 앱안에 넣어줘야한다.
4. 다음 버튼을 누르고 ./android/build.gradle에 가서 google()과 classpath() 부분을 확인해 주고 없는건 추가해준다.
./android/app/build.gradle에가서도 화면에 나와있는 부분을 추가해주어야한다.
5. npm run android를 해주어 잘 설치가 되었는지 확인한다.
React Native와 FireBase연동하기 (IOS SetUp)
3. 파이어베이스 프로젝트에 ios추가
3-1. ios bundle ID를 입력해야하는 데 이는 XCode안에서 찾아야한다. 프로젝트 내의 ios폴더를 finder로 열어 .xcworkspace나 .xcodeproj 파일을 눌러 실행시킨다. Xcode에서 Pods 말고 프로젝트 이름의 폴더를 클릭하면 Identity에 Bundle Identifier가 있다. (xcode창은 끄지 말것).
app nickname은 원하는 걸 작성하면되고 app store ID는 앱스토어 이미 출시가됬다면 그 번호를 작성해주면 된다.
4. 다음 버튼을 누르고 기다리면 다운로드 해야할 파일이 나올것이다. 그 파일을 다운로드 하고 이 파일을 프로젝트에다 추가해야하는데 xcode에서 프로젝트로 가서 오른쪽클릭해서 add files to '프로젝트 명'을 누르고 다운받은 파일을 누르고 Copy items if needed , create groups 항목에 체크하고 add를 누른다.
5. ./ios/{projectName}/AppDelegate.mmfile (orAppDelegate.m)을 열어주고 다음을 추가
#import <Firebase.h>
didFinishLaunchingWithOptions라는 function을 찾아주고
[FIRApp configure];
를 넣어준다. 넣을 수있는공간은 comment으로 넣으라고 써져있다.
쓰고 나서 다음을 터미널에 작성하여 실행
npx pod-install
그리고 Xcode 를 닫아주고 Use version on Disk 클릭해주고 프로젝트를 실행시켜 문제가 없는지 확인한다.