이미지 기반 SNS pinterest를 클론코딩한 프로젝트 입니다.
2021년 7월 9일 ~ 2021년 7월 15일
- 이용우 (Node.js) [팀장] @ archepro84
- 이해웅 (Node.js) @ HW3542
- 홍성훈 (React) @ HseongH
- 주재인 (React) @ demian0721
Front | Back |
---|---|
React | Node.js |
Redux | Express |
Axios | MySQL |
라이브러리 | 설명 |
---|---|
body-parser | 파라미터 추출 |
chokidar | 파일 감시 라이브러리 |
cors | 교차 리소스 공유 |
dotenv | DB비밀번호, 시크릿키 암호화 |
express | 서버 |
express-fileupload | 파일업로드 |
fs | 파일 수정 |
jsonwebtoken | 회원가입 작동 방식 |
sequelize | MySQL ORM |
sequelize-cli | MySQL ORM Console |
mysql | MySQL |
cookie-parser | 쿠키 저장 |
joi | 입력데이터 검출 |
nunjucks | 템플릿 언어 |
📂 Notion
- 게시글을 보여줄때 무한스크롤이 가능하도록 LIMIT 옵션을 사용해서 정해진 갯수의 데이터만 통신하도록 했습닌다.
- 즐겨찾기 기능을 위해 따로 즐겨찾기 테이블을 구성해서 자신이 즐겨찾기에 추가한 경우와 아닌 경우를 TRUE, False로 구분하였습니다.
select postId, img,
case when postId in (select postId from Favorites where userId = ${userId}) then "TRUE" else "FALSE" end as favorite
from Posts
LIMIT ${start}, ${limit};
- 즐겨찾기를 위한 Favorite 테이블을 따로두어 즐겨찾기 기능을 구현했습니다.
SELECT postId, img
FROM Posts
WHERE postId IN (SELECT postId FROM Favorites WHERE userId = ${userId})
LIMIT ${start}, ${limit};
- Like 옵션을 활용하여 특정 글자가 들어간 글의 제목과 아티스트를 검색 가능하도록 구현하였습니다.
SELECT postId, img,
CASE WHEN postId IN (SELECT postId FROM Favorites WHERE userId = ${userId}) THEN "TRUE" ELSE "FALSE" END AS favorite
FROM Posts
WHERE title LIKE '%${keyword}%' OR artist LIKE '%${keyword}%'
LIMIT ${start}, ${limit};