๐ฐ๐ท For Korean User: ํ๊ตญ์ด๋ก ๋ ํ๋ก์ ํธ ์ค๋ช ์ ์ฌ๊ธฐ๋ฅผ ํด๋ฆญํด์ฃผ์ธ์.
- ๐ Quick Start
- โจ Introduction
- ๐ย Demo
- โ๏ธย Main Feature
- ๐ชย Tech Stack
- ๐ Project Review
- Clone this repo:
git clone https://github.com/hyeonahc/job-search-front.git
- Move to the directory:
cd <YOUR_PROJECT_NAME>
. - Install packages:
yarn install
- Start project
- in your localhost:
yarn start
- after build:
yarn build
thenyarn start
- in your localhost:
Job Search is a small API where you can filter 3 options from the results page of Saramin. The filter options are the following:
- Number of years since the company has been established
- Revenue of the company
- Number of employees
FYI, Saramin is one of the biggest Korean employment websites for job listings. You can think of it as Korean Indeed!
Saramin provides job titles, locations and occupations for job search. You are likely to receive a lot of job postings that donโt match your preferences on the result page.My team came up with the idea of adding more search filters to narrow down the job postings and show relevant result data on the table.
๐ Click here to see the mockup on Behance
๐ Click here to see the live website link on Netlify
- Crawling: Crawled the job posting data from Saramin and displayed them on the table
- Filtering: Added three options that filter the job posting data on the table
Design @hyeonahc
: Adobe XD
Front-end @hyeonahc
: React, Context API, React Table, Scss
Back-end @rerun1129
: Java, Spring
๐ย Click here to see the back-end repository: job_search_back
Apr 17, 2022
-
Context API
When I created projects with React, Iโve been using state only locally (within the same component). I managed the state globally using the context API library for the first time in which I struggled with applying context API to my project. I would like to practice this feature more and use Redux for my next project.
-
React Table
I used React Table library to easily insert data into the table and added the pagination feature. The most challenging part was quickly picking up the right information. Also, I found that it took more time for me to learn how to use the new library. My next goal is to experience more new libraries.
-
Communication with back-end developers
Throughout the project, I found it difficult to understand the back-end developer (Even though it was in my native language, Korean) There were some new terms and a situation I never experienced before. I learned that itโs important to understand the bigger picture, overall web development process, and to communicate with back-end developers as well as understand how the client side receives the data from the back end.
-
Add a .gitignore file at the beginning of the project
I added a .gitignore file later in the project which led to including unnecessary files(cache, node_mdules) in the git history.
-
Make the meaningful commit
The best practice is committing when a certain feature is built. Thatโs something I didnโt know. I committed whenever I felt like it, which led to messing up the commit history.
-
Keep the commit message convention
I didnโt follow the common commit message convention which made it hard to figure out what the commit is about.
I studied the challenging parts of this project and wrote some blog posts. (Written in Korean ๐ฐ๐ท)
- [Git] How to Write Git Commit Message
- [Git] Common Prefix for Conventional Commits
- [Git] 4 Things to Avoid When You Use Git
- ๐ ํ๋ก์ ํธ ์คํํ๊ธฐ
- โจ ์๊ฐ
- ๐ย ๋ฐ๋ชจ
- โ๏ธย ์ฃผ์ ๊ธฐ๋ฅ๊ณผ ๋ก์ง
- ๐ชย ๊ธฐ์ ์คํ
- ๐ ํ๋ก์ ํธ ๋ฆฌ๋ทฐ
- ๋ฆฌํฌ ํด๋ก ํ๊ธฐ:
git clone https://github.com/hyeonahc/job-search-front.git
- ํด๋น ๋๋ ํ ๋ฆฌ๋ก ์ด๋ํ๊ธฐ:
cd <YOUR_PROJECT_NAME>
. - ํจํค์ง ์ค์นํ๊ธฐ:
yarn install
- ํ๋ก์ ํธ ์คํํ๊ธฐ
- ์ฌ์ฉ์ ๋ก์ปฌํธ์คํธ:
yarn start
- ๋น๋ํ ์ฌ์ฉ:
yarn build
thenyarn start
- ์ฌ์ฉ์ ๋ก์ปฌํธ์คํธ:
Job Search๋ ์ฌ๋์ธ IT/๊ฐ๋ฐ ์ง์ ๊ตฐ ๊ฒ์๊ฒฐ๊ณผ์์ ์ธ๊ฐ์ง ํํฐ๋ง ์ต์ ์ ์ถ๊ฐํ์ฌ ํ ์ด๋ธ๋ก ์ ๋ฆฌํด์ฃผ๋ ๊ฐ๋จํ API์ ๋๋ค. 3๊ฐ์ง ํํฐ๋ง ์ต์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ์ ๋ ฅ
- ๋งค์ถ์ก
- ํ์ฌ์ฌ์์
์ฌ๋์ธ์์ ๊ตฌ์ธ์ ๋ณด๋ฅผ ๊ฒ์ํ ๋ ๋ด๊ฐ ์ ํธํ๋ ํ์ฌ ์กฐ๊ฑด์ ํํฐ๋งํด์ฃผ๋ ๊ธฐ๋ฅ์ด ์์ด ๋ถํธํจ์ ๋๊ผ๋ค.
๊ตฌ์ธ์ ๋ณด์์ ํ์ฌ ์ ๋ ฅ, ๋งค์ถ์ก, ํ์ฌ์ฌ์์ ํํฐ๋ง ์ต์ ์ ์ถ๊ฐํด์ ํ ์ด๋ธ๋ก ์ ๋ฆฌํด์ฃผ๋ฉด ์ด๋จ๊น?
๐ Behance์์ ๋ชฉ์ ๋ณด๋ฌ๊ฐ๊ธฐ
๐ Netlify๋ก ๋ฐฐํฌํ ๋ผ์ด๋ธ ์ฌ์ดํธ ๋ณด๋ฌ๊ฐ๊ธฐ
- ํฌ๋กค๋ง: ์ฌ๋์ธ์์ IT/๊ฐ๋ฐ ์ง๊ตฐ์ ํ์ฌ ์ค๋ฆฝ์ผ, ๋งค์ถ์ก, ํ์ฌ์ฌ์์ ์ ๋ณด๋ฅผ ๋ถ๋ฌ์ ํ ์ด๋ธ์ ๋ณด์ฌ์ค๋ค
- ํํฐ๋ง: ํ์ฌ ์ค๋ฆฝ์ผ, ๋งค์ถ์ก, ํ์ฌ์ฌ์์์ ์ธ๋ถ ๊ฒ์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ค
๋์์ธ @hyeonahc
: Adobe XD
ํ๋ก ํธ์ค๋ @hyeonahc
: React, Context API, useTable, Scss
๋ฐฑ์ค๋ @rerun1129
: Java, Spring
๐ย ๋ฐฑ์๋ ๋ฆฌํฌ์งํ ๋ฆฌ: job_search_back ๋ณด๋ฌ๊ฐ๊ธฐ
Apr 17, 2022
-
context API์ ์ฌ์ฉ
์ง๊ธ๊น์ง ๋ฆฌ์กํธ ํ๋ก์ ํธ๋ฅผ ํ ๋ state๋ฅผ ์ปดํฌ๋ํธ ๋ด๋ถ์์๋ง ์ฌ์ฉํ์๋ค. ์ด๋ฒ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ์ฒ์์ผ๋ก context API๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ญ์ ์ผ๋ก state๋ฅผ ๊ด๋ฆฌํด์ฃผ์๋ค. ์์ง ์ฌ์ฉ๋ฒ์ ์ต์ํ์ง ์์ ํ๋ก์ ํธ์ ์ ์ฉํ๋๋ฐ ๋ง์ ์ด๋ ค์์ด ์์๋ค. ๋ฆฌ์กํธ์์ ์ ์ญ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ ๊ณต๋ถํด๋ณด๊ฒ ๋ค. ๋ค์ ํ๋ก์ ํธ์์ ์ ์ญ์ ์ผ๋ก ์ํ๊ด๋ฆฌ๋ฅผ ํ ๋๋ redux๋ฅผ ๊ณต๋ถํด ์ฌ์ฉํด๋ณด๊ณ ์ถ๋ค.
-
React Table ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ
๊ณต์๋ฌธ์์ ์ ํ๋ธ ๊ฐ์๋ฅผ ๋ณด๋ฉฐ React Table ์ฌ์ฉ๋ฒ์ ์ตํ๋ฉด์ ํ๋ก์ ํธ์ ์ ์ฉํด๋ณด์๋ค. ์์ง๊น์ง๋ ๊ณต์๋ฌธ์๋ฅผ ํ์ ํ๋ ์๋๊ฐ ๋๋ฆฌ๊ณ ์๋ก์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ง๋ฌ์๋ ์ฌ์ฉ๋ฒ์ ์ตํ๋๋ฐ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค. ์๋ก์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ํ๋ ๊ฒ์ ๋๋ ค์ํ์ง ์๊ณ ์์ด๋ก ๋ ๊ณต์๋ฌธ์๋ฅผ ์์ฃผ ์ ํด์ผ๊ฒ ๋ค.
-
๋ฐฑ์๋ ๊ฐ๋ฐ์์์ ์ํต๋ฌธ์
ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ํจ๊ป ์์ ์ ํ๋ ๋ฐฑ์๋ ๊ฐ๋ฐ์์ ๋ง์ ์ดํดํ๋๋ฐ ์ด๋ ค์์ด ์์๋ค. ์ด๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํด ์น๊ฐ๋ฐ์ ๋ํ ์ ๋ฐ์ ์ธ ํ๋ฆ์ ์ดํดํ๋ ๊ฒ์ด ์ค์ํ๋ค๊ณ ๋๊ผ๋ค. ํนํ ํ๋ก ํธ์ ๋ฐฑ์๋ ์ฌ์ด์์ ์ด๋ป๊ฒ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๋์ง์ ๋ํ ๊ณต๋ถ๋ฅผ ํด ๋ค์ ํ๋ก์ ํธ์์๋ ์์ฌ์ํต์ ์ด๋ ค์์ ์ค์ด๋ ๊ฒ์ ๋ชฉํ๋ก ์ผ๊ฒ ๋ค.
-
.gitignore ์ ์ฉ์ ๋ค๋ฆ๊ฒ ํ๋ค
GitHub์ ์ฌ๋ผ์ค์ง ์์๋๋ cache, node_modules์ ๋ํ ๋ณ๊ฒฝ ์ ๋ณด๋ ๊ฐ์ด ์ปค๋ฐ๋์ด commit history๊ฐ ์ง์ ๋ถํด์ง๋ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ํ๋ค.
-
๊น ์ปค๋ฐ ๋ฉ์์ง ์ปจ๋ฒค์ ์ ์ง์ผ์ฃผ์ง ๋ชปํ๋ค
๊น ์ปค๋ฐ ๋ฉ์ธ์ง์ ๋ํ prefix, convention์ ๋ํ ์ฌ์ ์ง์์ด ์์ด ๊ธฐ๋ฅ๋ณ๋ก ์ปค๋ฐ์ ํ์ง ๋ชปํ๊ณ ๊ฒฐ๊ณผ์ ์ผ๋ก commit๋ณ๋ก ๋ด๊ฐ ์ด๋ค ์์ ์ ํ๋์ง ํ์ ํ๊ธฐ๊ฐ ์ด๋ ค์์ก๋ค.