728x90

Study Planner(Google Spredsheet)
Book Library(Notion)

 

Today Read Hours Total Read Hours
2.0 684.5

 


Today I Read

 

Book No. Hours
(Sum)
Title Author Date Pages IL BL
86 1.5
(23.0)
(Hunger Games Trilogy, Book 2)Mockingjay Suzanne Collins 2022.01.29 ~
ING
211~227/303 MG+ 5.3
87 0.5
(5.5)
River Boy Tim Bowler 2022.01.30 ~
ING
72~80/162 MG 5.3

 


 

다시 영영사전으로 돌아왔다.
결국 단어라는 게 문맥 속에서 그 의미가 나타나기 때문에 최대한 많은 예문을 보는 게 낫겠다는 생각이 들었다. 
그리고 확실히 두 번째 읽고 있는 River Boy가 더 잘 읽힌다.
Mockingjay를 끝으로 판타지나 SF는 조금 더 나중에 읽어야겠다는 생각이 든다.
아무래도 지금 현실에 기반을 두지 않다 보니 현실에서는 사용되지 않는 새로운 단어들도 많고,
내 멋대로 상상하게 되는 경우가 비일비재해진다. 
일단 먼저 기본에 충실해야야겠다.
반응형
728x90

Study Planner(Google Spredsheet)
Book Library(Notion)

 

Today Read Hours Total Read Hours
1.5 682.5

 


Today I Read

 

Book No. Hours
(Sum)
Title Author Date Pages IL BL
86 1.0
(21.5)
(Hunger Games Trilogy, Book 2)Mockingjay Suzanne Collins 2022.01.29 ~
ING
202~211/303 MG+ 5.3
87 0.5
(5.0)
River Boy Tim Bowler 2022.01.30 ~
ING
65~72/162 MG 5.3

 


 

말하기는 언제 하지...
반응형
728x90

Study Planner(Google Spredsheet)
Book Library(Notion)

 

Today Read Hours Total Read Hours
1.0 681.0

 


Today I Read

 

Book No. Hours
(Sum)
Title Author Date Pages IL BL
86 1.0
(20.5)
(Hunger Games Trilogy, Book 2)Mockingjay Suzanne Collins 2022.01.29 ~
ING
190~202/303 MG+ 5.3
87 0.0
(4.5)
River Boy Tim Bowler 2022.01.30 ~
ING
65~/162 MG 5.3

 


 

Mockingjay는 재미없다. 그런데 이게 내 이해와 관련된 게 아닐까 걱정된다.
중간중간 흐름이 끊어진 채로 읽는 느낌인데, 하필 내가 이해하지 못한 부분이 책의 핵심 내용이었다거나 하는 경우라면 재미가 없을 수밖에 없을 것 같긴 하다. 
아무래도 나중에 한번 더 읽어 봐야 할 것 같다. 
반응형
728x90

Study Planner(Google Spredsheet)
Book Library(Notion)

 

Today Read Hours Total Read Hours
2.0 680.0

 


Today I Read

 

Book No. Hours
(Sum)
Title Author Date Pages IL BL
86 1.5
(19.5)
(Hunger Games Trilogy, Book 2)Mockingjay Suzanne Collins 2022.01.29 ~
ING
175~190/303 MG+ 5.3
87 0.5
(4.5)
River Boy Tim Bowler 2022.01.30 ~
ING
57~65/162 MG 5.3

 


 

ING
반응형
728x90

Study Planner(Google Spredsheet)
Book Library(Notion)

 

Today Read Hours Total Read Hours
1.5 678.0

 


Today I Read

 

Book No. Hours
(Sum)
Title Author Date Pages IL BL
86 1.5
(18.0)
(Hunger Games Trilogy, Book 2)Mockingjay Suzanne Collins 2022.01.29 ~
ING
157~175/303 MG+ 5.3
87 0.5
(4.0)
River Boy Tim Bowler 2022.01.30 ~
ING
57~/162 MG 5.3

 


 

나중에 Hunger Games Trilogy를 다시 읽게 되면 지금 읽었던 느낌과 어떻게 다를지 궁금하다.
아마 그래도 조금은 더 잘 이해하지 않을까 싶긴 하다. 
어찌 되었든 이왕 시작한 거 포기하지 말고, 끝까지 가봐야겠다.
반응형
728x90

Study Planner(Google Spredsheet)
Book Library(Notion)

 

Today Read Hours Total Read Hours
2.0 676.5

 


Today I Read

 

Book No. Hours
(Sum)
Title Author Date Pages IL BL
86 1.5
(16.5)
(Hunger Games Trilogy, Book 2)Mockingjay Suzanne Collins 2022.01.29 ~
ING
141~157/303 MG+ 5.3
87 0.5
(4.0)
River Boy Tim Bowler 2022.01.30 ~
ING
49~57/162 MG 5.3

 


 

뭔가 굉장히 평온하게 책을 읽어나가는 느낌이 든다.
어렵지도...그렇다고 쉽지도 않은 그런 애매한 상태긴 한데, 그냥 어찌어찌 읽어진다. 
다행이다.
반응형
728x90

Study Planner(Google Spredsheet)
Book Library(Notion)

 

Today Read Hours Total Read Hours
2.5 674.5

 


Today I Read

 

Book No. Hours
(Sum)
Title Author Date Pages IL BL
86 2.0
(15.0)
(Hunger Games Trilogy, Book 2)Mockingjay Suzanne Collins 2022.01.29 ~
ING
120~141/303 MG+ 5.3
87 0.5
(3.5)
River Boy Tim Bowler 2022.01.30 ~
ING
41~49/162 MG 5.3

 


 

River Boy를 다시 읽으면서 예전엔 안보이던 장면들의 디테일이 보이니 신기하다. 
확실히 작년 7월에 River Boy를 처음 읽었을 때에 비해 지금 내 영어 읽기 능력은 성장한 것 같다. 
일단 이대로 계속 해도 될 것 같다.
반응형
728x90

Study Planner(Google Spredsheet)
Book Library(Notion)

 

Today Read Hours Total Read Hours
2.0 672.0

 


Today I Read

 

Book No. Hours
(Sum)
Title Author Date Pages IL BL
86 1.5
(13.0)
(Hunger Games Trilogy, Book 2)Mockingjay Suzanne Collins 2022.01.29 ~
ING
110~120/303 MG+ 5.3
87 0.5
(3.0)
River Boy Tim Bowler 2022.01.30 ~
ING
34~41/162 MG 5.3

 


 

영한사전으로 단어를 찾으니....속시원하다.
그동안 Oxford Learner's Dic.을 이용해서 단어를 찾고 quizlet에 정리하는데 시간을 굉장히 많이 쏟았었는데, 그냥 네이버 영한사전에서 검색하고 바로 클릭해서 단어장에 입력하는 것으로 방법을 바꿨다. 
단어를 외우는데 집중하는게 아니라, 그 의미만 기억하는 방법으로.
단어들이 머리속에 떠오르는 어떤 이미지로 기억된다면 한국어든 영어든 상관이 없지 않을까 생각이 들었다. 
일단은 이 방법으로 최대한 많이 책을 읽어봐야겠다.
반응형
728x90

Frontend 초기 세팅에 이어서 이번엔 Backend 초기 세팅!

1. npm 초기화 및 .gitignore 설정

  a. npm 초기화

npm init --yes (--yes or -y : npm 초기화시에 물어보는 여러 질문들을 넘기는 명령어)

--yes(-y) 명령어를 입력하면 아래 사진과 같이 가장 기본적인 내용만 package.json에 담기게 된다.

  b. .gitignore 설정

      아래 사진과 같이 gitignore.io 사이트에서 키워드를 넣고 Create 한 후 나온 텍스트로 .gitignore 파일 생성

 

2. 필요한 패키지 설치

패키지는 개인, 팀 별로 천차 만별일테니 참고만.

 

a. devDependencies

    1. npm i @babel/core @babel/node @babel/preset-env --save-dev(node가 이해할 수 있는 문법으로 변경)
    2. npm i eslint-config-prettier --save-dev(eslint-config-prettier : prettier와 충돌할 설정들을 비활성화)
    3. npm i eslint-plugin-prettier --save-dev(eslint-plugin-prettier : eslint에 prettier의 포매팅 기능을 추가)
    4. npm i nodemon --save-dev(nodemon : 코드 수정 시 자동으로 서버 재시작)

    5. npm i prettier-plugin-prisma --save-dev(prettier-plugin-prisma : prisma 사용 시 prettier 기능 적용)

    6. npm i prisma --save-dev(prisma : 데이터베이스에 대한 접근을 쉽게 하도록 도와주는 소프트웨어)
b. dependencies
    1. npm i @prisma/client --save(@prisma/client : prisma를 이용하여 DB 제어)
    2. npm i bcrypt --save(bcrypt : 암호화 관련 패키지)
    3. npm i cors --save(cors : 브라우저에서 다른 출처의 리소스를 공유)

    4. npm i dotenv --save(dotenv : .env 파일로부터 환경 변수를 읽어 들임)

    5. npm i express --save(express : Node.js 웹 애플리케이션 프레임워크)

    6. npm i jsonwebtoken --save(jsonwebtoken : 유저 정보가 담긴 JSON 데이터를 암호화해서 클라이언트와 서버 간 전달 가능)

 

최종적으로 설치된 패키지(package.json)

3.  환경 설정

환경 설정 역시 개인, 팀 별로 다를 테니 참고만.

 

a. .babelrc 설정 및 package.json script 수정(start 추가)

// .babelrc
{ "presets": ["@babel/preset-env"] }
// package.json
"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "nodemon server.js --exec babel-node" // 추가
  },

b. .env 설정

.env는 환경변수 파일로 key = value 형태로서 변수로 설정된 key에 해당하는 값을 process.evn.key 형태로 사용이 가능하다.

// .env
DATABASE_URL="mysql://USERNAME:PASSWORD@localhost:3306/DB_NAME" // mysql 사용

PORT = 8080

SECRET = testproject // jsonwebtoken 검증시 필요

c. .eslintrc 파일 생성

// .eslintrc
{
  "extends": ["eslint:recommended", "plugin:prettier/recommended"],
  "parserOptions": {
    "ecmaVersion": 2017,
    "sourceType": "module"
  },

  "env": {
    "es6": true,
    "browser": true,
    "node": true,
    "jest/globals": true
  },

  "plugins": ["jest"] // TDD용
}

d. .prettierrc 파일 생성

// .prettierrc
{
  "printWidth": 80,
  "tabWidth": 2,
  "singleQuote": true,
  "trailingComma": "all",
  "bracketSpacing": true,
  "semi": true,
  "arrowParens": "avoid",
  "endOfLine": "lf"
}

 

4. 폴더 설정

Layered Pattern을 적용하여 아래와 같이 폴더 생성

5. server.js 생성

import http from 'http';
import express from 'express';
import cors from 'cors';
import dotenv from 'dotenv';
// import { PrismaClient } from '@prisma/client';

dotenv.config(); // dotevn 라이브러리 사용
// const prisma = new PrismaClient();

import routes from './routes';

const PORT = process.env.PORT;

const app = express();

// middleware
app.use(cors());
app.use(express.json());

// route
app.use(routes);

// server test
app.use('/ping', (req, res) => {
  return res.status(200).json({ message: 'pong' });
});

// create server
const server = http.createServer(app);

// run my server
const serverStart = async () => {
  try {
    server.listen(PORT, () => {
      console.log(`server is listening on PORT ${PORT}`);
    });
  } catch (error) {
    console.log(error);
    // await prisma.$disconnect();
  }
};

serverStart();

6. DB 생성 및 연결

a. prisma 초기 세팅

npx prisma init

b. DB 연결

// prisma/schema.prisma
datasource db {
  provider = "mysql"
  url      = env("DATABASE_URL")
}

// .env
DATABASE_URL="mysql://USERNAME:PASSWORD@localhost:3306/DB_NAME" // '3.환경설정' 내용과 동일

c. prisma 모델 생성 

prisma/schema.prisma 수정이 완료된 후, 아래 명령어 실행.

npx prisma migrate dev --name init // 작성된 prisma 모델을 .env에 연결된 로컬 DB에 만들어준다.

생성된 마이그레이션 파일이 DB에 적용되었는지 확인.

d. prisma client 생성

prisma로 DB를 제어하기 위해 client가 필요.

npx prisma generate

7. 최종 결과물

위와 같이 초기 설정을 해서 나온 결과물은 아래 그림과 같다. 코드는 아래 gitghub에서 확인 가능!

https://github.com/quark4904/test-project-back

반응형
728x90

Study Planner(Google Spredsheet)
Book Library(Notion)

 

Today Read Hours Total Read Hours
1.5 670.0

 


Today I Read

 

Book No. Hours
(Sum)
Title Author Date Pages IL BL
86 1.5
(11.5)
(Hunger Games Trilogy, Book 2)Mockingjay Suzanne Collins 2022.01.29 ~
ING
95~110/303 MG+ 5.3
87 0.0
(2.5)
River Boy Tim Bowler 2022.01.30 ~
ING
27~34/162 MG 5.3

 


 

원서 읽는 습관은 이제 거의 정착된 것 같다. 
원래부터 책을 좋아했었기 때문에 어렵진 않았던 것 같은데... 이게 정말 영어를 습득하는데 좋은 방법인지는 아직 잘 모르겠다.
올해 말쯤이 되면 적어도 방향은 잡히지 않을까 싶다.
반응형
728x90

프로젝트 초기 세팅을 정리해놓지 않으니 매번 시작할 때마다 까먹어서 이 참에 정리를 해놓으려고 한다.
순서는 상관이 없고, 이 세팅이 정답도 아니다.
개인별로, 팀별로, 회사별로 다 다를테니 어떤 흐름인지만 확인하면 될 것 같다.

 

Backend 초기 세팅은 여기로

1. CRA(create react app) 설치

일단 node.js가 설치되어 있다는 가정하에 시작한다.

npx create-react-app test-proejct

위 명령어를 실행한 폴더 하위에 'test-project'이라는 폴더가 생기면 CRA 설치 완료.
해당 폴더를 vsc로 열면 아래와 같은 폴더 구조를 갖게 된다.

vsc에서 터미널(단축키: cmd + j)을 열어 npm start 명령어를 실행하면 아래와 같이 정상적으로 실행이 되는 것을 확인할 수 있다.

2. 필요한 패키지 설치

패키지는 개인, 팀 별로 천차 만별일테니 참고만.

패키지 설치시 package.json 파일에 해당 패키지가 추가가 되는지 꼭 확인한다.
만약 추가가 되어 있지 않으면 해당 프로젝트를 다른 사람이 clone 받았을 때 패키지를 설치할 수가 없다.

 

<패키지 설치 옵션 간단 설명>
--save : dependencies에 추가됨(npm5 이상부터 생략 가능)(dependencies : 실제 애플리케이션 운용에 필요한 패키지)
--save-dev(또는 -D) : devDependencies에 추가됨(devDependencies : 개발에 필요한 패키지)


a. devDependencies
1. npm i eslint-config-prettier --save-dev(eslint-config-prettier : prettier와 충돌할 설정들을 비활성화)
2. npm i eslint-plugin-prettier --save-dev(eslint-plugin-prettier : eslint에 prettier의 포매팅 기능을 추가)
3. npm i prettier --save-dev --save-exact(--save-exact : 버전이 달라지면서 생길 스타일 변화를 막기 위함)
b. dependencies
1. npm i react-router-dom --save(react-router-dom : router 사용)
2. npm i styled-components --save(styled-components : javascript에서 css 사용이 가능한 스타일링 프레임워크)
3. npm i styled-reset --save(styled-reset : css 설정 초기화)

최종적으로 설치된 패키지(package.json)

3.  환경 설정

환경 설정 역시 개인, 팀 별로 다를테니 참고만.


a. .eslintrc 파일 생성

{ "extends": ["react-app", "plugin:prettier/recommended"] }

b. .prettierrc 파일 생성

{
  "printWidth": 80,
  "tabWidth": 2,
  "singleQuote": true,
  "trailingComma": "all",
  "bracketSpacing": true,
  "semi": true,
  "arrowParens": "avoid",
  "endOfLine": "lf" 
}

c. .gitignore 설정
.eslintcache 추가

d. .env 설정
.env는 환경변수 파일로 key = value 형태로서 변수로 설정된 key에 해당하는 값을 process.evn.key 형태로 사용이 가능하다.

REACT_APP_SERVER_HOST="http://localhost:8000"
REACT_APP_CLIENT_HOST="http://localhost:3000"

만약 위와 같이 .env에 서버 주소를 지정하면 fetch 함수를 사용해서 백엔드와 통신을 할 때 아래와 같이 사용이 가능하다.

fetch(`${process.env.REACT_APP_SERVER_HOST}/user/signin`, {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  mode: 'cors',
  body: JSON.stringify({
    email: emailValue,
    password: pwValue,
  }),
})

4. public 폴더 및 src 폴더 수정

이부분도 개인, 팀 별로 다를 테니 참고만.


a. public 폴더(아래 사진)
- images 폴더 생성
- 불필요한 파일 삭제
- index.html에서 불필요한 부분 삭제 및 추가

b. src 폴더(변동이 많기 때문에 자세한 코드는 아래 github에서 확인)
- 불필요한 파일 삭제
- components, pages, styles 폴더 생성
- Routes.js 파일 생성(react-router-dom 패키지를 사용할 경우)
- config.js 파일 생성(API를 일괄적으로 관리해주기 위한 용도)
- GlobalStyle.js, Theme.js 파일 생성(styled-components 패키지를 사용할 경우)

5. 최종 결과물

위와 같이 초기 설정을 해서 나온 결과물은 아래 그림과 같다. 코드는 아래 gitghub에서 확인 가능!

https://github.com/quark4904/test-project-front

틀린 부분이나 부족한 부분이 있으면 댓글 부탁 드립니다!


반응형

'Programming > React' 카테고리의 다른 글

[React.js]Link로 props 전달하기  (0) 2022.01.13
[React.js]React.memo() 알아보기  (0) 2021.12.26
[React]export와 export default의 차이  (0) 2021.11.30
728x90

Study Planner(Google Spredsheet)
Book Library(Notion)

 

Today Read Hours Total Read Hours
2.0 668.5

 


Today I Read

 

Book No. Hours
(Sum)
Title Author Date Pages IL BL
86 1.5
(10.0)
(Hunger Games Trilogy, Book 2)Mockingjay Suzanne Collins 2022.01.29 ~
ING
79~95/303 MG+ 5.3
87 0.5
(2.5)
River Boy Tim Bowler 2022.01.30 ~
ING
27~34/162 MG 5.3

 


 

그동안 모르는 단어가 나오면  oxford learner's dictionaries에서 찾고 quizlet을 이용해서 정리를 했었는데, 생각보다 시간이 많이 걸렸다. 그리고 영영사전으로 단어를 찾으니 뭔가 그 단어에 대한 개념이 정확히 꽂힌다는 느낌이 들지 않았다. 
결국 다시 영영사전으로 돌아가긴 하겠지만, 오늘부터는 일단 많은 단어를 접해야겠다는 생각에 영한사전으로 단어를 빠르게 익히는 방법으로 변경했다.
그래서 그런가 확실히 읽는 속도는 빨라진것 같다.
반응형

+ Recent posts