오늘 한일
- 미니프로젝트 2일차 입니다. 오늘부터 제대로된 업무를 진행하기 위해 API 작성에서 팀원들의 파트를 지정해 각자의 작성해야할 범위를 지정해 주었고, 전반적인 코드 작성에 편의를 위해 Github에 프로젝트의 전반적인 틀을 잡은 코드를 업로드 하였습니다.
- API구성이 의외로 많은 시간이 걸리지 않았습니다. Sequelize를 사용해 DB의 구성요소와 스키마를 작성하고, 모든 백 엔드 팀원들에게 프로젝트의 첫 코드를 배포하여 DB 구성을 끝난이후 부터 모든 작업은 엄청나게 빠른속도로 진행되었습니다. CRUD 기반의 API들은 이전에 배운 기초, 심화 과정을 거쳐오면서 이해하고 넘어왔기 때문에 간단히 넘어갈 수 있었고, Favorites와 같은 즐겨찾기 기능또한 매번 작성하는 코드와 크게 차이나지 않아 빠르게 진행되었던 것 같습니다.
- 프로젝트 진행 2일차, 코드작성을 시작한 지 1일차 만에 80%의 핵심적인 코드를 작성하였습니다. 이제부터 남은 것은 어떠한 추가기능을 넣을 것인지 결정하는 것만 남았습니다.
오늘 배운 것
- 백 엔드와 프론트 엔드의 협업 방법
- AWS EC2 MySQL 배포 방법
- SQL Like 사용법
내일 할 것
- 일주일 간의 재정비
- AWS CCP 학습
필기노트
-- DB 유저 생성
insert into Users (nickname, password, createdAt, updatedAt) values ("123","1313",NOW(), NOW());
insert into Users (nickname, password, createdAt, updatedAt) values ("124","1414",NOW(), NOW());
-- DB 포스트 생성
insert into Posts (userId, title, artist, showDate, description, img, createdAt, updatedAt) values (1, "Bohemian","QUEEN", NOW(), "return 70th ","https://upload.wikimedia.org/wikipedia/ko/e/ea/%EC%98%81%ED%99%94_%EB%B3%B4%ED%97%A4%EB%AF%B8%EC%95%88_%EB%9E%A9%EC%86%8C%EB%94%94.jpg",NOW(),NOW());
insert into Posts (userId, title, artist, showDate, description, img, createdAt, updatedAt) values (1, "Opera","ghost", NOW(), "Scream!","https://www.theatermania.com/dyn/graphics/theatermania/v9w1279/the-phantom-of-the-opera-banner-222.jpeg",NOW(),NOW());
insert into Posts (userId, title, artist, showDate, description, img, createdAt, updatedAt) values (2, "2 Phút Hơn (KAIZ Remix)","Zero Two", NOW(), "Oh!","https://image.bugsm.co.kr/album/images/200/40234/4023416.jpg?version=20210204110908.0",NOW(),NOW());
-- DB Favorite 생성
insert into Favorites (userId, postId, createdAt, updatedAt) values (1,1,NOW(),NOW());
insert into Favorites (userId, postId, createdAt, updatedAt) values (1,2,NOW(),NOW());
insert into Favorites (userId, postId, createdAt, updatedAt) values (1,3,NOW(),NOW());
insert into Favorites (userId, postId, createdAt, updatedAt) values (2,2,NOW(),NOW());
// TODO
cmd 에서 실행하는 docker mysql에서는 데이터의 한글이 깨졌다
- 하지만 Express에서 실행하는 웹에서 DB를 가져올 경우 한글이 정상적으로 출력되었다.
-- DB LIKE문 사용법
% : 글자수를 지정해주지 않는 모든 문자를 검색한다.
_ : 글자수를 지정해 문자를 검색한다.
ex)
mysql > SELECT * FROM Posts WHERE title LIKE "%BO%";
- Posts 테이블의 title에서 BO문자가 존재하기만 하면 출력해준다.
mysql > SELECT * FROM Posts WHERE title LIKE "BO%";
- Posts 테이블의 title에서 BO문자가 처음에 존재 하면 출력해준다.
mysql > SELECT * FROM Posts WHERE title LIKE "BO_%";
- Posts 테이블의 title에서 문자열의 처음에 BO문자와 1개의 아무 문자가 존재할 경우 출력해준다.
mysql > SELECT * FROM Posts WHERE title LIKE "%#%%";
mysql > SELECT * FROM Posts WHERE title LIKE "%[%]%";
- Posts 테이블의 title에서 문자열의 %문자가 존재할 경우 출력한다.
// TODO 검색을 할 경우 제목만? 아니면 내용도 같이?
- 우선은 제목만으로 구현하도록 설정
- 이후에 필요할 경우 내용도 같이 검색하도록 설정
// TODO 명령 프롬프트에서는 한글이 깨지는데 Sequelize에서는 한글 검색이 되는가?
- 한글, 베트남어 검색이 가능하다.
// TODO 이미지 테이블을 어떤 방식으로 구현할 것이고 외래키를 어떻게 쓸 것인가?
// TODO multer 라이브러리 사용법
-- 이미지 테이블 구성
CREATE TABLE testblob (
image_id tinyint(3) NOT NULL AUTO_INCREMENT,
image_type varchar(25) NOT NULL,
image longblob NOT NULL,
image_size varchar(255) NOT NULL,
image_name varchar(50) NOT NULL,
KEY image_id (image_id)
);
DB Blob 형식 선언
S3 사용방법
'항해99 > TIL' 카테고리의 다른 글
2021-07-12 항해99 TIL (0) | 2021.07.13 |
---|---|
2021-07-11 항해99 TIL (0) | 2021.07.12 |
2021-07-09 항해99 TIL (0) | 2021.07.10 |
2021-07-08 항해99 TIL (0) | 2021.07.09 |
2021-07-07 항해99 TIL (0) | 2021.07.08 |