본문 바로가기
WEB/웹 프로젝트

[6주차] 웹프로젝트 진행

by 단월໒꒱ 2022. 2. 6.

이번주 계획

 : 자료 수집 + DB 제작 + DB 데이터 입력

 

1) 자료 수집

  - 각 ott별 콘텐츠 몇 가지 선정 및 해당 콘텐츠에 대한 후기&감상평 모음

 

2) DB 작업

  - DB 생성, table 생성

  - 수집한 자료를 DB에 입력

  - 웹페이지와 DB 연동

 

 

https://github.com/jini-coding/ott_review_project

 

GitHub - jini-coding/ott_review_project: SISS 2022 겨울방학 웹프로젝트 - OTT별 콘텐츠 리뷰 홈페이지 제작

SISS 2022 겨울방학 웹프로젝트 - OTT별 콘텐츠 리뷰 홈페이지 제작. Contribute to jini-coding/ott_review_project development by creating an account on GitHub.

github.com

 

 

① 자료수집

 

처음 선정한 OTT (넷플릭스, 왓챠, 티빙, 디즈니플러스)에서 몇가지 컨텐츠를 정한 뒤 해당 컨텐츠에 대한 리뷰/후기를 찾아보았다.

몇몇 OTT는 해당 앱에서 자체적으로 후기 서비스를 지원해줘서 거기서 따왔지만 없는 OTT의 컨텐츠의 경우 인터넷 블로그나 공식 홈페이지, SNS를 참고하였다.

 

 

② DB 생성, Table 생성

 

CREATE DATABASE CONTENTS_REVIEW;

USE CONTENTS_REVIEW;

CREATE TABLE contents(
    -> id INT(11) NOT NULL AUTO_INCREMENT
    -> title VARCHAR(40) NOT NULL
    -> ott VARCHAR(20) NOT NULL
    -> category VARCHAR(20) NOT NULL,
    -> PRIMARY KEY(id));

CREATE TABLE review(
    -> id INT(11) NOT NULL,
    -> score INT(11) NOT NULL,
    -> comments TEXT NOT NULL,
    -> created DATETIME NOT NULL);

 

 

처음으로 CONTENTS_REVIEW라는 이름의 데이터베이스를 생성했다.

해당 데이터베이스를 선택한 후 contents, review 테이블을 각각 생성했다.

각 제목별로 구분할 id, 콘텐츠 제목인 title, ott는 말 그대로 ott, 드라마/영화 등을 구분할 category, 별점 score, 후기 comments, 작성날짜 created 칸을 만들었다.

NOT NULL은 비어있으면 안된다는 표시이고 AUTO_INCREMENT는 자동으로 1씩 증가한다는 의미이다.

 

 

 

③ DB에 데이터 입력

 

// contents 테이블
INSERT INTO contents(title, ott, category) VALUES('제목', 'ott', '카테고리');

INSERT INTO contents(title, ott, category) VALUES('오징어 게임', 'netflix', '웹드라마');
INSERT INTO contents(title, ott, category) VALUES('지금 우리 학교는', 'netflix', '웹드라마');
INSERT INTO contents(title, ott, category) VALUES('불가살', 'netflix', '드라마');
INSERT INTO contents(title, ott, category) VALUES('미스터 션샤인', 'netflix', '드라마');
INSERT INTO contents(title, ott, category) VALUES('슬기로운 감빵생활', 'netflix', '드라마');
INSERT INTO contents(title, ott, category) VALUES('좋좋소', 'watcha', '웹 드라마');
INSERT INTO contents(title, ott, category) VALUES('한니발', 'watcha', '드라마');
INSERT INTO contents(title, ott, category) VALUES('구르미 그린 달빛', 'watcha', '드라마');
INSERT INTO contents(title, ott, category) VALUES('육룡이 나르샤', 'watcha', '드라마');
INSERT INTO contents(title, ott, category) VALUES('낭만닥터 김사부', 'watcha', '드라마');

// contents 테이블 보기
SELECT * FROM contents;


// review 테이블
INSERT INTO review(id, score, comments, created) VALUES('콘텐츠에 해당하는 id', '별점', '코멘트', NOW());

INSERT INTO review(id, score, comments, created) VALUES('1', '2', '무차별적으로 사람을 죽이는 장면들이 (물론 작가가 시사하는 바는 있지만) 굳이? 너무 과하고 극적인데? 싶은 느낌이 많이 들었고, 게임이나 구성 자체는 엄청 과한데 사실상 인물들의 개인적 서사라던지, 관계도 같은 부분은 뻔하게 느껴져서 더 실망을 했던 것 같다.', NOW());
INSERT INTO review(id, score, comments, created) VALUES('1', '4', '스토리에 대한 정보 없이 충동적으로 본 드라만데 끊임없이 몰임감과 긴장감을 느낄 수 있었다.', NOW());
INSERT INTO review(id, score, comments, created) VALUES('1', '4', '오징어게임을 보면서, 옛날에 봤던 일본 영화 배틀로얄이 생각나기도 했어요 ㅋㅋㅋㅋ 돈을 위한 것이든 살아남기 위한 것이든 똑같은 느낌이죠 뭐. 치열한 전쟁터의 느낌. 호불호가 강한 평점을 받기는 했지만 조금 빌런들이 시끄러웠던거 빼고는 몰입도 있게 봤어요 ㅋㅋㅋㅋ', NOW());
INSERT INTO review(id, score, comments, created) VALUES('1', '4', '사실 보기 전에는 안 좋은 평도 좀 봐서 반신반의했는데, 보고 나니 왜 전 세계 1위를 쓸었는지는 알 것 같다. 큰 포맷 자체가 누구나 받아들이기 쉽게 심플하면서도, 자본주의의 디스토피아적인 이야기를 다룬 것이 최근 영미권에서는 많이 안 보이는데, 이런 주제를 건드렸다는 것에서 일단 자극적이었던 것 같다.', NOW());
INSERT INTO review(id, score, comments, created) VALUES('1', '4', '본인의 욕망에 충실한 인간들의 싸움과 그럼에도 불구하고 나이와 성향이 만들어낸 이해심을 옅볼 수 있는 순간이 장면 곳곳에 묻어져 있었다. 한계가 있는 장소에서 만들어지는 압도적인 스케일과 연기, 돈 없이도 건강하게 산다는 것 자체가 행복이라고 생각하는 이들의 배부른 상상을 걷어차줄만한 핑크빛 불행을 맛보고 싶다면 꼭 보시길 바란다.', NOW());
INSERT INTO review(id, score, comments, created) VALUES('2', '3', '개인적으로 좀비 아포칼립스 장르를 좋아해서 재밌게 봤지만, 원작과 비교해서 이건 너무 새롭게 만든게 아닌가 싶다. 스토리 설정을 어떻게 했는지 원작에 비해 퀄리티가 심하게 떨어져 유치한 좀비 드라마를 보는 느낌이었다. 뭐, 그래도 하차안하고 마지막 화까지 본 것만으로도 일단 기본은 한 작품이라고 생각한다. 원작에 비해 퀄리티가 너무 떨어져서 그런지 다 보고나도 여운이 느껴지진 않는다.', NOW());
INSERT INTO review(id, score, comments, created) VALUES('2', '5', '아무리 지옥 같은 세상이더라도, 살아 남자! 살아있으면 반드시 웃을 일이 생길 테니깐.... 이 같은 감성에 참 약한데[T.T] 그래서인지 재미를 떠나 진짜 극중 인물들의 생존을 응원하면서 끝까지 지켜본 작품이었습니다.', NOW());
INSERT INTO review(id, score, comments, created) VALUES('2', '4', '트롤들이 많아서 가슴을 뻑뻑 치며 봐야되긴 하는데 볼만하다.', NOW());
INSERT INTO review(id, score, comments, created) VALUES('2', '3', '그럭저럭 재밌긴 한데 쓸데없이 잔인한 묘사, 질질 끄는 연출, 고구마 전개, 개연성 부족 등 아쉬운 부분이 많다. 킬링타임용으로 보는 건 괜찮은 듯.', NOW());
INSERT INTO review(id, score, comments, created) VALUES('2', '3', '주연배우들 너무 안 먹고 계속 좀비들 대치 상황만 보여주니 좀 디테일이 허술해 보인다. 아무도 탈수 증상이 없고 계속 좀비대치 상황만 되니 보고 있는 시청자 입장에서도 지친다. 연출, 연기하느라 고생한 드라마라는 생각은 드나, 대본, 연출, 연기 전반적으로 아쉬웠다.', NOW());
INSERT INTO review(id, score, comments, created) VALUES('3', '5', '다소 낯설 수도 있는 판타지 에피소드가 그려져 있는 드라마이지만, <불가살>의 주연을 맡은 배우들의 열연을 비롯해 탄탄한 스토리가 드라마를 보다 보면 깊이 빠져들게 하는 매력을 가지고 있었다.', NOW());
INSERT INTO review(id, score, comments, created) VALUES('3', '5', '독특하면서도 한 서린 bgm과 탁 트인 배경또한 몰입도에 한 몫 한 것 같다. 믿고보는 배우들의 연기도 더해지면서 한국적인 웰메이드 드라마의 시작을 제대로 알린 것 같습니다.', NOW());
INSERT INTO review(id, score, comments, created) VALUES('4', '5', '영화 같은 연출, 치밀한 구성, 한마디도 허투루 하지 않는 대사가 더해져 시간 가는 줄 모르고 시청했다.', NOW());
INSERT INTO review(id, score, comments, created) VALUES('4', '5', '로맨스를 가장한 시대극인지, 시대극을 가장한 로맨스인지 모를 듯한 미스터 션샤인. 연인에게, 가족에게, 또는 나라에게 그들의 뜨거운 마음과 사랑을 보여주는 미스터 션샤인.', NOW());
INSERT INTO review(id, score, comments, created) VALUES('4', '2', '이 작품에 대해 실망한 이유 두 가지. 깊은 고민없이 만든 빌런에 대한 연출, 반대 진영에 대한 수준 낮은 묘사', NOW());
INSERT INTO review(id, score, comments, created) VALUES('4', '5', '처음에는 혼란스러울 것이고, 전반부에는 드라마가 느리고 지루하게 느껴지겠지만, 결국에는 모든 것을 깨닫게 된다. 정말 볼만하다. 드라마의 마지막 부분에는 더 이상 의문이 남아있지 않을 거다. 진행이 늦어서 중간에 포기할 뻔 했는데, 그러지 않아서 다행.', NOW());
INSERT INTO review(id, score, comments, created) VALUES('4', '4', '탄탄한 스토리와 주조연 배우들의 연기가 몰입할 수 있게 만들었다. 일본에 넘어가기전 조선의 위태로운 모습을 잘 담아낸 드라마. 비슷한 소재가 여럿있었어도 볼때마다 가슴이 웅장해질수밖에 없음.', NOW());
INSERT INTO review(id, score, comments, created) VALUES('5', '5', '설정도 스토리도 캐릭터도 신선하고 유쾌하면서도 감동적이라 너무 재미있게 본 드라마! 오히려 또 봤을 때 너무 재미있게 봐서 제 인생드라마 중에 최고라고 감히 말해봅니다.', NOW());
INSERT INTO review(id, score, comments, created) VALUES('5', '5', '가볍게는 사건 사고가 끊이지 않는 감옥에서의 교도관, 범죄자들의 삶을 엿볼 수 있는 드라마. 깊게는 각 인물들의 인생이야기, 결국 우리내 인생이야기를 듣게 되는 드라마. 캐릭터들의 케미와 대사가 찰지고, 장면 전환과 배경음악이 적절한 드라마', NOW());
INSERT INTO review(id, score, comments, created) VALUES('5', '4', '처음부터 끝까지 발암끼가 조금씩은 있었지만 재밌었습니다. 발암 없이 힐링은 슬의, 약간의 발암이 있지만 재미는 슬빵인 것 같네요', NOW());
INSERT INTO review(id, score, comments, created) VALUES('5', '5', '재미로 보기에는 정말 추천하고 싶은 드라마. 호불호가 갈리긴 하는데 저는 결말까지 맘에 들었어요.', NOW());
INSERT INTO review(id, score, comments, created) VALUES('5', '4', '인생 드라마까지는 아니지만 그래도 기분 좋게 본 드라마 중에 손에 꼽히는 드라마', NOW());
INSERT INTO review(id, score, comments, created) VALUES('6', '4', '좋좋소를 보고 있자면 현실 고증이 너무 리얼해서 다시 출근한 기분이 든다..ㅎㅎ 한번쯤 경험 해본 적이 있던가.. 또는 현재 경험 중일 수 있는.. X같은 직장 생활의 향기가 느껴지는 극사실주의 드라마..ㅋ', NOW());
INSERT INTO review(id, score, comments, created) VALUES('6', '5', '진짜 공중파보다 백만 배 낫고 이과장 연기 왜 이렇게 잘함 +마지막화까지 너무 좋았다 딱 현실적인 마무리', NOW());
INSERT INTO review(id, score, comments, created) VALUES('6', '5', '웃긴데 웃을 수 없는 현실 저렇게 안되고 싶어도 과연 피할 수 있을까 이세상 모든 충범이의 만개와 성공을 기원', NOW());
INSERT INTO review(id, score, comments, created) VALUES('6', '5', '정말 너무 재밌다 직장인들에게 필요한 블랙코미디라고 쓰고 리얼다큐 24시라고 읽는다', NOW());
INSERT INTO review(id, score, comments, created) VALUES('6', '5', '미생의 시대를 지나 좋좋소의 시대로. 그만큼 사람들은 더 피곤해지고 더 슬퍼졌네. 그렇다해도 조충범을 응원하는 심리는 장그래를 응원하던 마음과 그리 다르지 않으니까.', NOW());
INSERT INTO review(id, score, comments, created) VALUES('7', '4', '추리물 아닙니다. 먹방 드라마입니다.', NOW());
INSERT INTO review(id, score, comments, created) VALUES('7', '5', '매즈 미켈슨 최고의 인생 배역을 맡으신 듯. 이 사람이 한니발이라는 이유만으로 시즌 10은 거뜬히 볼 수 있을 것 같다. 시기적으로 영화판의 프리퀄이라는 것도 상당히 마음에 들고 흥미로움. 영상과 음악도 완벽.', NOW());
INSERT INTO review(id, score, comments, created) VALUES('7', '5', '잔인하면서도 우아하고 정적인. 영상미는 절정에 달했고 캐릭터 하나하나의 묘사가 너무도 잘 되어있다.', NOW());
INSERT INTO review(id, score, comments, created) VALUES('7', '3', '계속해서 보다가 내가 윌이 될것만 같아서 시즌2 중간에 쉬고있다. 우아하지만 너무 사실적이어서 어둠이 두렵다. 해가 떠야 간간히 잠에 든다. 밤이 너무 무섭다ㅜㅠ', NOW());
INSERT INTO review(id, score, comments, created) VALUES('7', '5', '잔인하면서도 우아한, 그러나 초대받고 싶지 않은 만찬', NOW());
INSERT INTO review(id, score, comments, created) VALUES('8', '4', '유치하다가 무거워져서 오히려 좋았다. 개연성은 없었지만 드라마란 판타지 충족물이니까:) 고시 끝나고 이틀만에 밤새면서 몰아서 봐서 행복했다. 영의 왈츠 멜로디는 잊을 수 없을 것 같다.', NOW());
INSERT INTO review(id, score, comments, created) VALUES('8', '2', '성균관스캔들을 떠오르게 만드는 풋풋한 청춘사극. "불허한다, 내사람이다." 이때까진 별점5였는데.. 이후로 점점 지루해지더니.. 결국 포기. 보검이와 유정이는 여전히 예쁘지만 재미가 없어..ㅠㅠ', NOW());
INSERT INTO review(id, score, comments, created) VALUES('8', '4', '본격 박보검 입덕작품', NOW());
INSERT INTO review(id, score, comments, created) VALUES('8', '5', '달달 코믹 모두 갖춰진 드라마. 지루할 마음조차 내주지 않는 드라마. 두 배우의 캐미는 보는 사람에게 설렘을 가져다 준다.', NOW());
INSERT INTO review(id, score, comments, created) VALUES('8', '5', '예쁘게 잘 포장된 한 상자의 약과 같았던 드라마!', NOW());
INSERT INTO review(id, score, comments, created) VALUES('9', '5', '탄탄한 구성, 한명한명 소름돋도록 감동하게 하는 연기에 각자의 눈물나는 스토리까지. 깊으면서도 매력적이고 조였다 풀었다 반전에 반전을 거듭하는 이런 드라마가 진짜 명작이다. 이틀 밤샘.', NOW());
INSERT INTO review(id, score, comments, created) VALUES('9', '3', '한국 드라마는 항상 뒷심이 부족한데 육룡이 나르샤도 급하게 마무리해버렸다. 2차 왕자의 난도 대충 넘어가버리고...', NOW());
INSERT INTO review(id, score, comments, created) VALUES('9', '5', '선죽교에서 하여가 단심가 재해석해서 주고받는 대목에서 진짜 이건 엄청난 드라마라는 걸 다시 한번 느낌', NOW());
INSERT INTO review(id, score, comments, created) VALUES('9', '5', '내 인생드라마. 배우들 연기도 좋고 연출, 각본 다 좋다. 선죽교 씬은 정말 지금까지 모든 한국 드라마 통틀어도 손에 꼽을 명장면!! 상상도 못했던 방식으로 역사를 풀어낸 완벽한 연출이었다.', NOW());
INSERT INTO review(id, score, comments, created) VALUES('9', '5', '진지함 속에 유머가 있고 슬픔의 경계에 희망을 심고 한과 꿈이 공존하는 가벼우나 가볍지 않은 사극. 탄탄한 대본과 실력파 배우가 뭉쳐 여는 정치 사극의 새로운 지평.', NOW());
INSERT INTO review(id, score, comments, created) VALUES('10', '5', '드라마의 어떤 요소 전개 사랑 픽션 어떤것도 놓치지 않은 괴물급 드라마. 한마디로 미쳤다..', NOW());
INSERT INTO review(id, score, comments, created) VALUES('10', '5', '번외편까지 사랑하는 작품. 배우 라인업 스토리 다 좋은 작품이라고 생각함. 김사부가 남긴 주옥같은 명언들 맘 속에 품고 낭만적으로 살아야지. 유연석 서현진 진짜 케미 엄지척.', NOW());
INSERT INTO review(id, score, comments, created) VALUES('10', '4', '우리에게 필요한 건 낭만인데... 현실 속에서 낭만 찾기란 하늘의 별따기. 그래도 보는 동안은 후련했다.', NOW());
INSERT INTO review(id, score, comments, created) VALUES('10', '4', '진짜 재밌음. 근데 김사부가 칼만 잡으면 모든 환자가 죄다 살아나는 게 쬐금 웃김', NOW());
INSERT INTO review(id, score, comments, created) VALUES('10', '5', '의사들이 드는 칼의 무게에 대해서 느낄 수 있었다.. 누구나 알고 있지만 잘 언급하지 않는 사회의 가려운 곳까지 시원하게 긁어줬다. 열심히 사는 건 좋은데 부끄럽게 살지는 맙시다~', NOW());


// review 테이블 보기
SELECT * FROM review;


// JOIN
SELECT * FROM contents LEFT OUTER JOIN review ON contents.id = review.id;

 

 

INSERT INTO contents(title, ott, category) VALUES('제목', 'ott', '카테고리');

INSERT INTO review(id, score, comments, created) VALUES('콘텐츠에 해당하는 id', '별점', '코멘트', NOW());

위의 코드를 통해 각각의 column에 value값을 입력해주었다.

 

어느정도 데이터를 입력한 뒤 아래의 코드를 통해 입력된 데이터를 확인하였다.

SELECT * FROM contents;

SELECT * FROM review; 

 

 

 

 

 

(여기서 내용들은  확인을 위해 임시로 입력한 데이터로 이후에 다시 갈아엎을 예정이다.)

 

마지막으로 두 테이블을 JOIN해서 입력된 데이터를 모아서 확인해보았다.

 

 

 

 

 

 

 DB 연동 (글 작성)

 

<?php
$conn=mysqli_connect("localhost", "root", "password", "contents_review");
var_dump($_POST);
$sql="
  INSERT INTO contents
    (title, ott, category)
    Value(
      '{$_POST['title']}',
      '{$_POST['ott']}',
      '{$_POST['category']}'
      )";
$result=mysqli_query($conn, $sql);
if($result===false){
  echo '저장하는 과정에서 문제가 발생하였습니다.';
  error_log(mysqli_effor($conn));
}
else{
  echo '저장에 성공했습니다. <a href="index.php">돌아가기</a>';
}


$sql2="
  INSERT INTO review
    (id, score, comments, created)
    Value(
      '{$_POST['id']}',
      '{$_POST['score']}',
      '{$_POST['comments']}',
      NOW()
      )";
$result=mysqli_query($conn, $sql2);
if($result===false){
  echo '저장하는 과정에서 문제가 발생하였습니다.';
  error_log(mysqli_effor($conn));
}
else{
  echo '저장에 성공했습니다. <a href="index.php">돌아가기</a>';
}

?>

 

 

DB이름인 CONTENTS_REVIEW를 연결시켜주었다. 

각각의 ott 페이지에 들어가서 후기를 작성할 경우 이 내용이 DB에 저장되게 하도록 하였다.

 

테이블을 두개로 나누었는데 contents 테이블의 내용들은 잘 저장이 되는 반면 review 테이블의 내용들이 저장이 잘 되지 않았다.

해결방법을 모색해서 가능한 다음주 안으로 수정할 예정이다.

 

 

 

⑤ 세부 페이지 수정

 

 

 

 

제목의 작성 방식을 선택하는 방법에서 텍스트 상자에 적는 방법으로 변경하였다. 

별점은 1에서 5점까지 선택할 수 있도록 option을 주었다. 그리고 이를 process_create.php와 연동시켜주었다

 

 

 

'WEB > 웹 프로젝트' 카테고리의 다른 글

[9주차] 웹프로젝트 진행  (0) 2022.02.27
[8주차] 웹프로젝트 진행  (0) 2022.02.19
[4주차] 웹프로젝트 진행  (0) 2022.01.23
[생활코딩] DATABASE - MySQL 정리  (0) 2022.01.09
[생활코딩] WEB2-PHP 정리  (0) 2022.01.03

댓글