From f5339224ff3d79b5ba5830a4cdfa529c5a18c7da Mon Sep 17 00:00:00 2001 From: "bggiri@naver.comgit config --global user.name sangjunegit config --global user.name bggiri@naver.com" Date: Wed, 20 Jan 2021 15:13:11 +0900 Subject: [PATCH] . --- client/.eslintcache | 2 +- client/src/Pages/Search.js | 25 +- googleReview | 538 ++++--------------------- googleSearch | 14 +- server/controllers/place.controller.js | 32 +- server/routes/place.routes.js | 2 + 6 files changed, 125 insertions(+), 488 deletions(-) diff --git a/client/.eslintcache b/client/.eslintcache index f6c219d..b35b2c1 100644 --- a/client/.eslintcache +++ b/client/.eslintcache @@ -1 +1 @@ -[{"C:\\Users\\노트북펜\\Desktop\\2021winter\\search-page\\client\\src\\index.js":"1","C:\\Users\\노트북펜\\Desktop\\2021winter\\search-page\\client\\src\\reportWebVitals.js":"2","C:\\Users\\노트북펜\\Desktop\\2021winter\\search-page\\client\\src\\Pages\\App.js":"3","C:\\Users\\노트북펜\\Desktop\\2021winter\\search-page\\client\\src\\Pages\\Search.js":"4","C:\\Users\\노트북펜\\Desktop\\2021winter\\search-page\\client\\src\\Components\\Place.js":"5","C:\\Users\\노트북펜\\Desktop\\2021winter\\search-page\\client\\src\\Components\\Paginations.js":"6"},{"size":1133,"mtime":1610956158273,"results":"7","hashOfConfig":"8"},{"size":375,"mtime":1610931750280,"results":"9","hashOfConfig":"8"},{"size":1553,"mtime":1610931750241,"results":"10","hashOfConfig":"8"},{"size":8468,"mtime":1611085803712,"results":"11","hashOfConfig":"8"},{"size":1608,"mtime":1611080275421,"results":"12","hashOfConfig":"8"},{"size":2199,"mtime":1610931750239,"results":"13","hashOfConfig":"8"},{"filePath":"14","messages":"15","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"16"},"1hwnshv",{"filePath":"17","messages":"18","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"16"},{"filePath":"19","messages":"20","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"21","usedDeprecatedRules":"16"},{"filePath":"22","messages":"23","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"24","messages":"25","errorCount":0,"warningCount":6,"fixableErrorCount":0,"fixableWarningCount":0,"source":"26","usedDeprecatedRules":"16"},{"filePath":"27","messages":"28","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"16"},"C:\\Users\\노트북펜\\Desktop\\2021winter\\search-page\\client\\src\\index.js",[],["29","30"],"C:\\Users\\노트북펜\\Desktop\\2021winter\\search-page\\client\\src\\reportWebVitals.js",[],"C:\\Users\\노트북펜\\Desktop\\2021winter\\search-page\\client\\src\\Pages\\App.js",["31","32","33"],"import React, { useEffect, useState } from 'react';\r\nimport { Link, Redirect } from 'react-router-dom';\r\nimport ohuh from '../ohuh.PNG';\r\nimport { Container, Row, Form, Image, InputGroup, Button, Col, FormControl } from 'react-bootstrap';\r\n\r\nfunction App() {\r\n const [state, setState] = useState(false);\r\n const [search, setSearch] = useState(\"\");\r\n\r\n if (state !== false) {\r\n return ;\r\n }\r\n\r\n const handleChange = (e) => {\r\n setSearch(e.target.value);\r\n }\r\n\r\n const handleSubmit = () => {\r\n setState(true);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nexport default App;","C:\\Users\\노트북펜\\Desktop\\2021winter\\search-page\\client\\src\\Pages\\Search.js",["34","35","36","37"],"C:\\Users\\노트북펜\\Desktop\\2021winter\\search-page\\client\\src\\Components\\Place.js",["38","39","40","41","42","43"],"import axios from 'axios';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { Modal, Container, Row, Col, Button, Badge, Card, Accordion, Carousel } from 'react-bootstrap';\r\n\r\nfunction Place(props) {\r\n const [reviews, setReviews] = useState([])\r\n const getReview = () => {\r\n axios.get(`/api/review/${props.search.name}`)\r\n .then(res => {\r\n console.log(\"place res.data\", res.data)\r\n setReviews(res.data)\r\n })\r\n .catch(err => {\r\n console.log(err)\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n getReview();\r\n }, [])\r\n\r\n\r\n return (\r\n setLgShow(false)}\r\n aria-labelledby=\"example-modal-sizes-title-lg\">\r\n \r\n \r\n {props.index + 1}. {props.search.name}\r\n \r\n \r\n \r\n \r\n {reviews.map((review, index) => {\r\n return (\r\n \r\n {review.title}\r\n
{review.summary}
\r\n
{review.content}
\r\n
\r\n )\r\n })}\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default Place;\r\n","C:\\Users\\노트북펜\\Desktop\\2021winter\\search-page\\client\\src\\Components\\Paginations.js",[],{"ruleId":"44","replacedBy":"45"},{"ruleId":"46","replacedBy":"47"},{"ruleId":"48","severity":1,"message":"49","line":1,"column":17,"nodeType":"50","messageId":"51","endLine":1,"endColumn":26},{"ruleId":"48","severity":1,"message":"52","line":2,"column":10,"nodeType":"50","messageId":"51","endLine":2,"endColumn":14},{"ruleId":"48","severity":1,"message":"53","line":4,"column":64,"nodeType":"50","messageId":"51","endLine":4,"endColumn":75},{"ruleId":"48","severity":1,"message":"54","line":5,"column":83,"nodeType":"50","messageId":"51","endLine":5,"endColumn":93},{"ruleId":"48","severity":1,"message":"55","line":15,"column":12,"nodeType":"50","messageId":"51","endLine":15,"endColumn":18},{"ruleId":"56","severity":1,"message":"57","line":51,"column":8,"nodeType":"58","endLine":51,"endColumn":10,"suggestions":"59"},{"ruleId":"60","severity":1,"message":"61","line":124,"column":35,"nodeType":"62","endLine":124,"endColumn":76},{"ruleId":"48","severity":1,"message":"63","line":3,"column":33,"nodeType":"50","messageId":"51","endLine":3,"endColumn":36},{"ruleId":"48","severity":1,"message":"64","line":3,"column":46,"nodeType":"50","messageId":"51","endLine":3,"endColumn":51},{"ruleId":"48","severity":1,"message":"65","line":3,"column":53,"nodeType":"50","messageId":"51","endLine":3,"endColumn":57},{"ruleId":"48","severity":1,"message":"66","line":3,"column":59,"nodeType":"50","messageId":"51","endLine":3,"endColumn":68},{"ruleId":"48","severity":1,"message":"67","line":3,"column":70,"nodeType":"50","messageId":"51","endLine":3,"endColumn":78},{"ruleId":"56","severity":1,"message":"68","line":20,"column":6,"nodeType":"58","endLine":20,"endColumn":8,"suggestions":"69"},"no-native-reassign",["70"],"no-negated-in-lhs",["71"],"no-unused-vars","'useEffect' is defined but never used.","Identifier","unusedVar","'Link' is defined but never used.","'FormControl' is defined but never used.","'Pagination' is defined but never used.","'mobile' is assigned a value but never used.","react-hooks/exhaustive-deps","React Hook useEffect has missing dependencies: 'getImg' and 'getPlace'. Either include them or remove the dependency array.","ArrayExpression",["72"],"react/jsx-no-duplicate-props","No duplicate props allowed","JSXAttribute","'Col' is defined but never used.","'Badge' is defined but never used.","'Card' is defined but never used.","'Accordion' is defined but never used.","'Carousel' is defined but never used.","React Hook useEffect has a missing dependency: 'getReview'. Either include it or remove the dependency array.",["73"],"no-global-assign","no-unsafe-negation",{"desc":"74","fix":"75"},{"desc":"76","fix":"77"},"Update the dependencies array to be: [getImg, getPlace]",{"range":"78","text":"79"},"Update the dependencies array to be: [getReview]",{"range":"80","text":"81"},[1683,1685],"[getImg, getPlace]",[560,562],"[getReview]"] \ No newline at end of file +[{"C:\\Users\\노트북펜\\Desktop\\2021winter\\search-page\\client\\src\\index.js":"1","C:\\Users\\노트북펜\\Desktop\\2021winter\\search-page\\client\\src\\reportWebVitals.js":"2","C:\\Users\\노트북펜\\Desktop\\2021winter\\search-page\\client\\src\\Pages\\App.js":"3","C:\\Users\\노트북펜\\Desktop\\2021winter\\search-page\\client\\src\\Pages\\Search.js":"4","C:\\Users\\노트북펜\\Desktop\\2021winter\\search-page\\client\\src\\Components\\Place.js":"5","C:\\Users\\노트북펜\\Desktop\\2021winter\\search-page\\client\\src\\Components\\Paginations.js":"6"},{"size":1133,"mtime":1610956158273,"results":"7","hashOfConfig":"8"},{"size":375,"mtime":1610931750280,"results":"9","hashOfConfig":"8"},{"size":1553,"mtime":1610931750241,"results":"10","hashOfConfig":"8"},{"size":8936,"mtime":1611123129414,"results":"11","hashOfConfig":"8"},{"size":1608,"mtime":1611080275421,"results":"12","hashOfConfig":"8"},{"size":2199,"mtime":1610931750239,"results":"13","hashOfConfig":"8"},{"filePath":"14","messages":"15","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"16"},"1hwnshv",{"filePath":"17","messages":"18","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"16"},{"filePath":"19","messages":"20","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"21","usedDeprecatedRules":"16"},{"filePath":"22","messages":"23","errorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"24","messages":"25","errorCount":0,"warningCount":6,"fixableErrorCount":0,"fixableWarningCount":0,"source":"26","usedDeprecatedRules":"16"},{"filePath":"27","messages":"28","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"16"},"C:\\Users\\노트북펜\\Desktop\\2021winter\\search-page\\client\\src\\index.js",[],["29","30"],"C:\\Users\\노트북펜\\Desktop\\2021winter\\search-page\\client\\src\\reportWebVitals.js",[],"C:\\Users\\노트북펜\\Desktop\\2021winter\\search-page\\client\\src\\Pages\\App.js",["31","32","33"],"import React, { useEffect, useState } from 'react';\r\nimport { Link, Redirect } from 'react-router-dom';\r\nimport ohuh from '../ohuh.PNG';\r\nimport { Container, Row, Form, Image, InputGroup, Button, Col, FormControl } from 'react-bootstrap';\r\n\r\nfunction App() {\r\n const [state, setState] = useState(false);\r\n const [search, setSearch] = useState(\"\");\r\n\r\n if (state !== false) {\r\n return ;\r\n }\r\n\r\n const handleChange = (e) => {\r\n setSearch(e.target.value);\r\n }\r\n\r\n const handleSubmit = () => {\r\n setState(true);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nexport default App;","C:\\Users\\노트북펜\\Desktop\\2021winter\\search-page\\client\\src\\Pages\\Search.js",["34","35","36","37","38"],"C:\\Users\\노트북펜\\Desktop\\2021winter\\search-page\\client\\src\\Components\\Place.js",["39","40","41","42","43","44"],"import axios from 'axios';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { Modal, Container, Row, Col, Button, Badge, Card, Accordion, Carousel } from 'react-bootstrap';\r\n\r\nfunction Place(props) {\r\n const [reviews, setReviews] = useState([])\r\n const getReview = () => {\r\n axios.get(`/api/review/${props.search.name}`)\r\n .then(res => {\r\n console.log(\"place res.data\", res.data)\r\n setReviews(res.data)\r\n })\r\n .catch(err => {\r\n console.log(err)\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n getReview();\r\n }, [])\r\n\r\n\r\n return (\r\n setLgShow(false)}\r\n aria-labelledby=\"example-modal-sizes-title-lg\">\r\n \r\n \r\n {props.index + 1}. {props.search.name}\r\n \r\n \r\n \r\n \r\n {reviews.map((review, index) => {\r\n return (\r\n \r\n {review.title}\r\n
{review.summary}
\r\n
{review.content}
\r\n
\r\n )\r\n })}\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default Place;\r\n","C:\\Users\\노트북펜\\Desktop\\2021winter\\search-page\\client\\src\\Components\\Paginations.js",[],{"ruleId":"45","replacedBy":"46"},{"ruleId":"47","replacedBy":"48"},{"ruleId":"49","severity":1,"message":"50","line":1,"column":17,"nodeType":"51","messageId":"52","endLine":1,"endColumn":26},{"ruleId":"49","severity":1,"message":"53","line":2,"column":10,"nodeType":"51","messageId":"52","endLine":2,"endColumn":14},{"ruleId":"49","severity":1,"message":"54","line":4,"column":64,"nodeType":"51","messageId":"52","endLine":4,"endColumn":75},{"ruleId":"49","severity":1,"message":"55","line":5,"column":83,"nodeType":"51","messageId":"52","endLine":5,"endColumn":93},{"ruleId":"49","severity":1,"message":"56","line":15,"column":12,"nodeType":"51","messageId":"52","endLine":15,"endColumn":18},{"ruleId":"57","severity":1,"message":"58","line":64,"column":8,"nodeType":"59","endLine":64,"endColumn":10,"suggestions":"60"},{"ruleId":"49","severity":1,"message":"61","line":71,"column":11,"nodeType":"51","messageId":"52","endLine":71,"endColumn":17},{"ruleId":"62","severity":1,"message":"63","line":137,"column":35,"nodeType":"64","endLine":137,"endColumn":76},{"ruleId":"49","severity":1,"message":"65","line":3,"column":33,"nodeType":"51","messageId":"52","endLine":3,"endColumn":36},{"ruleId":"49","severity":1,"message":"66","line":3,"column":46,"nodeType":"51","messageId":"52","endLine":3,"endColumn":51},{"ruleId":"49","severity":1,"message":"67","line":3,"column":53,"nodeType":"51","messageId":"52","endLine":3,"endColumn":57},{"ruleId":"49","severity":1,"message":"68","line":3,"column":59,"nodeType":"51","messageId":"52","endLine":3,"endColumn":68},{"ruleId":"49","severity":1,"message":"69","line":3,"column":70,"nodeType":"51","messageId":"52","endLine":3,"endColumn":78},{"ruleId":"57","severity":1,"message":"70","line":20,"column":6,"nodeType":"59","endLine":20,"endColumn":8,"suggestions":"71"},"no-native-reassign",["72"],"no-negated-in-lhs",["73"],"no-unused-vars","'useEffect' is defined but never used.","Identifier","unusedVar","'Link' is defined but never used.","'FormControl' is defined but never used.","'Pagination' is defined but never used.","'mobile' is assigned a value but never used.","react-hooks/exhaustive-deps","React Hook useEffect has missing dependencies: 'getAssociation', 'getImg', and 'getPlace'. Either include them or remove the dependency array.","ArrayExpression",["74"],"'places' is assigned a value but never used.","react/jsx-no-duplicate-props","No duplicate props allowed","JSXAttribute","'Col' is defined but never used.","'Badge' is defined but never used.","'Card' is defined but never used.","'Accordion' is defined but never used.","'Carousel' is defined but never used.","React Hook useEffect has a missing dependency: 'getReview'. Either include it or remove the dependency array.",["75"],"no-global-assign","no-unsafe-negation",{"desc":"76","fix":"77"},{"desc":"78","fix":"79"},"Update the dependencies array to be: [getAssociation, getImg, getPlace]",{"range":"80","text":"81"},"Update the dependencies array to be: [getReview]",{"range":"82","text":"83"},[2097,2099],"[getAssociation, getImg, getPlace]",[560,562],"[getReview]"] \ No newline at end of file diff --git a/client/src/Pages/Search.js b/client/src/Pages/Search.js index 8a61c30..424c9c0 100644 --- a/client/src/Pages/Search.js +++ b/client/src/Pages/Search.js @@ -15,6 +15,7 @@ function Search(props) { const [mobile, setMobile] = useState(); const [place, setPlace] = useState([{ name: "", category: "", address: "" }]) const [imgUrl, setImgUrl] = useState([]) + const [association, setAssociation] = useState([]) const getImg = () => { axios.get(`/api/search/imges/${search}`) @@ -23,7 +24,7 @@ function Search(props) { setImgUrl(res.data) }) .catch(err => { - console.log('search.images발생', err) + console.log('search.images 에러 발생', err) }) } @@ -34,15 +35,27 @@ function Search(props) { setPlace(res.data) }) .catch(err => { - console.log('search.places발생', err) + console.log('search.places 에러 발생', err) }) } + const getAssociation =() => { + axios.get(`/api/search/association/${search}`) + .then(res => { + console.log("Associations = ", res.data) + setAssociation(res.data) + }) + .catch(err => { + console.log("search.associations 에러 발생", err) + }) + } + useEffect(() => { getPlace() getImg() + getAssociation() if (window.innerWidth < 960) { setMobile(true) } else { @@ -106,7 +119,7 @@ function Search(props) { return page } - const pagePlace = paginate(places, index, 2) + const pagePlace = paginate(association, index, association.length) // function times (){ @@ -137,10 +150,10 @@ function Search(props) { - {time.toString()}**** + {/* {time.toString()}**** */} {time.toLocaleString()}**** - {time.toLocaleDateString()}**** - {time.toLocaleTimeString()}**** + {/* {time.toLocaleDateString()}**** + {time.toLocaleTimeString()}**** */} {place[0].name} diff --git a/googleReview b/googleReview index 462d6c3..bc6ea8c 100644 --- a/googleReview +++ b/googleReview @@ -1,7 +1,10 @@ - 한라산 : 네이버 통합검색

한라산 통합검색 결과

업체정보

전화
064-713-9950
주소
요금
  • 무료
  • 600원
  • 400원
  • 300원
  • 500원
편의시설
주차
제주특별자치도 중앙부에 솟아 있는 산. 높이 1,947.269m로 남한에서 가장 높은 산이다. 제3기 말∼제4기 초 용암이 분출하여 형성되었다. 현무암으로 이루어져 있으며 줄기는 제주도 중앙에서 동서로 뻗는다. 남쪽은 경사가 심한 반면 북쪽은 완만하고, 동서쪽은 비...더보기

방문자 리뷰129

4.5 / 5
  • 5
    정주리2021.01.16 방문
  • 5
    RiRa2021.01.04 방문
더보기

NAVER

해녀의집 통합검색 결과

오조해녀의집전복요리
4.25방문자 리뷰 430블로그 리뷰 866푸짐한 양의 전복죽이 있는 곳

업체정보

전화
064-784-7789
주소
  • 제주 서귀포시 성산읍 한도로 141-13
  • 지번오조리 3 오조해녀의집지도보기
영업시간
매일 07:00 - 19:00
메뉴
  • 12,000원
  • 110,000원
  • 10,000원
  • 10,000원
  • 10,000원
편의시설
주차

방문자 리뷰430

4.25 / 5
  • 5
    허니문2021.01.20 방문
  • 5
    2021.01.16 방문
더보기

다른 곳을 찾으시나요?

제주 서귀포시 성산읍064-782-9230
길찾기
제주 서귀포시 표선면064-787-4917
길찾기
제주 제주시 애월읍064-713-9366
길찾기
제주 제주시 한림읍064-796-7773
길찾기
제주 제주시064-743-4989
길찾기
제주 서귀포시064-738-9557
길찾기
제주 서귀포시 성산읍064-783-1135
길찾기
제주 제주시 우도면064-784-7331
길찾기
제주 서귀포시 성산읍064-782-0672
길찾기
제주 제주시 애월읍064-799-5307
길찾기
이전현재1전체5다음
+ if (typeof nx_usain_beacon !== 'undefined') { nx_usain_beacon.add_tag("nmb.rest.detail"); }

이미지

이미지 신고하기

선택한 이미지가 없습니다.
신고할 이미지를 선택해 주세요.

닫기
+ + + + + +

오디오클립

  • 재생정지
    동영이를 처음 만나게 된 건 스무살이 되던 1월 1일 이었어요. 친구가 술자리에 어떤 남자애(=동영이)를 데려왔더라고요. 솔직히 첫 인상이 마음에 들진 않았는데 (웃음) 술을 한 두잔 마시다 보니 저랑 통하는게 많더라고요. 일주일 정도 시간이 흘렀을 땐가, 동영이에게 ‘바다 가고 싶다’ 라고 문자를 보냈죠. 그런데 동영이가 ‘가자! 나랑’ 하고 답장을 보내더라고요. 저는 그래서 집이랑 멀지 않은 해운대 정도겠거니..라고 생각 했는데..세상에나. 동영이가 가져온 티켓에는 포항이 적혀있었어요! ‘얘 뭐지?’ 싶었다가도 재밌겠다는 생각이 들어 따라갔죠. 저녁에 식당에서 밥을 먹는데, 주인 아주머니가 '이제 차 끊길 시간인데 여기서 밥 먹어도 되나?' 라고 하시는거에요. 뭔가 이상한 낌새가 느껴졌죠. 분명히 동영히는 막차 시간이 넉넉하게 남았다고 했었거든요... ❤️이 커플의 더 많은 이야기 바로보기❤️ 👉https://blog.naver.com/sum-lab/221487275102
    4분
    썸랩
  • 재생정지
    제목: 배또롱 공주 지은이: 김병심 출판사: 파우스트 배또롱 공주 김병심 배또롱 공주는 못난이 공주였습니다. 배또롱 공주는 오백 명의 오빠들이 있었지요. 공주의 오빠들은 키가 크고 힘이 세서 사냥을 잘 했지요. 또 공주의 어머니는 탐라국을 만든 여신이었지요. 탐라국 사람들은 공주의 어머니를 설문대 할망이라 불렀습니다. “내가 겨드랑이로 오백 아들을 낳았는데, 어떻게 너는 배꼽으로 나왔을까? 어떻게 너는 사내도 아닌 쓸모없는 딸로 태어났을까? 어떻게 너는 키도 작고 힘도 없는 바닷가의 돌처럼 검은 피부를 가졌느냐?” 오백 명의 아들을 보며 든든해하던 어머니는 공주가 한심했어요. 아무 쓸모가 없는 딸이 배꼽 연못에서 태어났으니 말이에요. 맞아요. 공주의 오빠들은 어머니의 겨드랑이에서 태어났지만, 공주는 어머니의 배꼽에서 태어났어요. 어머니는 배꼽에서 태어난 막내딸의 이름을 “배또롱”이라고 지었습니다. 오백 명의 오빠들을 낳았을 때 어머니는 기뻐했습니다. 아들들을 어머니처럼 키가 크고 힘이 센 장군들로 만들고 싶었습니다. 탐라국을 범이 살고 임금이 탄생하는 나라로 만들고 싶었거든요. 그렇게 하여 비와 바람을 다스리고 땅과 사람을 다스리는 법을 배워주고 있었습니다. 어느 날, 어머니는 사람들에게 속옷 한 벌을 만들어 달라고 했어요. 속옷을 만들어 주면 육지와 다리를 놓아준다고 약속했습니다. 사람들은 섬을 돌며 명주를 모으기 시작했어요. 명주가 100동(1동은 50필)이나 필요한 거구의 어머니를 위해 사람들은 집집마다 명주를 모았지요. 어림잡아 100동이 다 모아진 사람들은 굿판을 벌여 온갖 음식을 차려놓고 새와 사슴과 꽃들과 어우러진 노래를 부르고 있었습니다. 배또롱 공주는 걱정이 되었습니다. 어머니가 육지와 다리를 놓으면 신비의 섬에는 더 이상 사람의 말로 노래하는 꽃과 새들이 살 수 없을 테니까요. 육지 사람들이 몰려와서 시끌벅적거리면 더 이상 탐라국은 어머니의 아름다운 나라가 될 수 없을 테니까요. 배또롱 공주는 신나서 춤을 추는 사람들 몰래 명주 한 필을 숨겼습니다. ‘어디다 숨겨놓을까? 키가 크고 눈이 밝은 어머니는 금방 찾아내실 텐데….’ 배또롱 공주는 어머니의 피부를 닮은 하얀 명주 한 필을 들고 고민에 빠졌습니다. 하지만 감추는 건 아주 쉬었습니다. 탐라국에는 시고 떫은 땡감들이 잘 자랐거든요. 그래서 배또롱 공주는 땡감이 익기 전에 따서 방아로 빻아 즙을 내서는 명주를 물들였습니다. 감물이 든 명주를 초원에 널어두면 햇빛과 찬 이슬을 맞은 하얀 명주가 점점 진한 흙빛으로 변했으니까요. 키가 큰 어머니는 감물이 든 명주가 아마 농사를 짓기 위해 잘 갈아진 밭 일거라 생각할 테지요. 사람들 또한 99동의 명주가 너무 많아 다 셀 수 없겠지요. 마침내 사람들이 어머니의 속옷을 만드는 날이 되었습니다. 물론 오백 명의 아들들을 자랑스럽게 데리고 나간 어머니는 집 안에다 배또롱 공주를 혼자 놔두고 가셨습니다. 사람들에게 위엄을 보여줘야 할 어머니는 키가 작고 검은, 못난이 공주를 사람들 앞에 보이고 싶지 않을 테니까요. 수군덕거릴 사람들이 싫었거든요. “설문대 할마님, 어서 이 속옷을 입어 보세요. 속옷이 마음에 드시면 약속대로 얼른 육지와 다리를 놔 주세요.” 늘 혼자 옷을 지어 입던 어머니는 사람들이 선물로 내민 속옷을 입었습니다. 그 사이에 살이 좀 더 찌셨을까요? 어머니의 엉덩이 한쪽이 훤히 들여다보였지요. “어째서 내 속옷 크기를 이렇게 못 맞춘단 말이냐! 당장 물러가거라!” 어머니는 속옷이 작은 것도 화가 났지만, 오백 명의 아들들이 보는 앞에서 사람들에게 위엄을 보이고 싶었습니다. 예쁜 속옷을 입은 모습을 보며 “역시 우리 어머니는 최고의 미인이에요.” 아들들이 손뼉을 치며 기뻐해줄 모습을 상상하던 어머니의 실망은 더욱 컸습니다. 실망한 어머니는 사람들에게 다리를 놓아 주기는 커녕 쌀쌀맞게 대했어요. “이제부터 너희들은 나에게 기대지 말고, 스스로 농사짓고 자식을 먹여 살려라.” 이때부터 탐라국에는 어머니와 자식들이 한 마당 안에 집 두채로 나누어 짓고 사는 바깥채와 안채가 생겨났답니다. 이때부터 탐라국에는 여자들도 일을 해야 했습니다. 척박한 돌밭에서 농사를 짓는 것 말고도 바다에 뛰어들어 해산물을 잡아야만 살 수 있게 되었지요. 공주는 걱정이 되었습니다. 어머니의 화는 용이 뿜어내는 불처럼 무섭지만, 금방 풀리기 때문에 그리 걱정하지 않았거든요. 무엇보다도 사람들을 사랑하시고 검소한 어머니가 저렇게 오랫동안 화를 내시는 건 처음 봤거든요. 오빠들에게 창피를 당하신 게 두고두고 속이 상하실 줄 몰랐습니다. 어머니는 고생하는 사람들을 애써 외면하려고 오백 명의 오빠들로 하여금 바다를 닮은 물줄기를 만들기 위해 한라산에 100개의 골짜기를 만들도록 하였습니다. 사실은 사람들에게 일 년 내내 줄지 않는 물을 먹여주시려고 골짜기를 만들고 계시는 거였어요. 아흔아홉 골을 다 만들었을 때 탐라국에는 두 개의 태양이 내리쬐던 옛날처럼 가뭄이 들고 말았어요. 그 옛날에는 대별왕과 소별왕이 하늘에 떠 있는 해 두 개와 달 두 개 중 하나씩 화살로 쏘아 떨어뜨렸거든요. 낮에는 너무 더워 가뭄이 들고, 밤에는 너무 추워 얼음이 되던 때 말이에요. 그래서 떨어진 해 하나는 탐라국이 되었고, 떨어진 달 하나는 바다 속의 이어도가 되었지요. 오빠들은 마지막 남은 한 골을 채 만들기도 전에 굶주리는 사람들을 구하기 위해 사냥을 하고 먹을 것을 구하러 다녔습니다. 사냥을 하러간 오빠들 대신 밭을 일구던 막내 오빠는 배또롱 공주가 숨겨 놓은 감물들인 명주 한 필을 발견해 냈습니다. “어머니, 이 옷감은 질기고 단단해서 사람들이 일을 할 때 편하겠어요. 땀을 흘려도 시원하니 더운 날에도 좋겠어요.” “그래? 사람들에게 참 좋겠다.” 옷감을 요리 조리 살펴보며 미소 짓던 어머니가 고개를 갸우뚱 거렸습니다. “잠깐만, 이 옷감은 어떻게 만든 거지?” 어머니는 언제 화를 내었냐는 듯 사람들 걱정뿐이셨습니다. 이때다 싶어서 배또롱 공주는 옷감을 만드는 방법과 함께 그동안 있었던 일을 어머니에게 말했습니다. “뭐라고! 네가 명주를 숨겼다고? 아무 짝에도 쓸모없는 딸년 같으니라고!” 어머니는 벼락같은 화를 내시고는 배또롱 공주를 영영 바닷속에 가두고 말았습니다. 바닷속에만 존재한다는 이어도에 말이에요. 다시는 뭍으로 나와 새와 꽃과 노래할 수 없게 화살 맞은 달이 떨어져 생긴 이어도로 보내어 모슬포보다 더 멀리 떨어진 남쪽 끝의 바닷속에 꽁꽁 숨겨버리고 말았답니다. 어머니는 감물들인 명주로 사람들에게 옷을 만들어 주었지만, 육지와 다리는 놓아주지 않았습니다. 배또롱 공주의 말을 듣고 보니 탐라국은 육지와 다리를 놓으면 안 될 것 같았거든요. 그리고 차마 딸이 명주를 숨겼다고 사람들에게 말할 수도 없었습니다. 그대신 배또롱 공주에게는 이어도의 여신이 되어 바닷속에 들어간 해녀들과 사람들을 보호하라는 명령을 내렸답니다. 이어도 사나 이어도 사나 이어도 사나 이어도 사나 들리세요? 탐라국 남쪽 바닷가에 앉아 귀를 기울이면 파도에 그려진 음계를 따라 노랫소리가 들립니다. 이 노래는 배또롱 공주가 어머니와 오백 명의 오빠들이 그리워 부르는 노래였다지요. 물질을 하다가 이 노래를 들은 해녀들의 입에서 입으로 구전되어 탐라국의 사람들이 모두 따라 부르게 되었답니다.
    13분
    섬이 들려주는 이야기
  • 재생정지
    한국근현대명화전 [근대의 꿈: 꽃나무는 심어 놓고]전 작품 설명/ 2019.07.02 - 2019.08.15/ 서울시립북서울미술관 전시실2, 프로젝트갤러리2
    1시간 5분
    서울시립북서울미술관
- - - -
- - - - - -

[국어사전]

[영어사전]

인물정보

라산 (한라산) 가수
학력
홍익대학교 기계시스템디자인학 학사
데뷔
2007년 화이팅 대디 1집 앨범 [for Diva]
경력
그룹 '화이팅 대디' 멤버
밴드 'MUS' 보컬
사이트
블로그, 인스타그램, 페이스북, 유튜브
본인참여 2019.09.02. 네이버 인물정보 도움말
가수 라산인물정보 더보기

앨범

앨범 더보기
-
-

비즈사이트

-
- - 한라산 - - - 관련 광고입니다. - 이 광고가 표시된 이유 - -
- 등록 안내 -
-
- - +
- + + 네이버페이3%파워링크에서 구매 시 네이버페이로 결제하면 3% 적립 +
- -

한라산 찾아가는 길

1. 제주시 - 제주종합시외버스터미날에서 중문행 완행버스 이용, 어리목 40분 소요, 영실 입구 60분 소요. -2. 제주시 - 종합시외버스터미날에서 서귀포행 직, 완행버스 이용, 성판악 하차, 30분 소요. -3. 제주시 - 종합시외버스터미날에서 관음사입구까지 버스 이용, 관음사입구, 20분 소요. -4. 제주시 - 종합시외버스터미날에서 서귀포행 직, 완행버스 이용, 법호촌 돈내코스 입구 하차, 돈내코 50분 소요. -5. 제주시 - 관음사, 성판악, 돈내코 - 11번 국도 - 제1횡단도로, 성판악, 서귀포 방향 - 관음사입구, 산천당 왼쪽 삼거리에서 우회전 - 성판악 - 법호촌, 제주청소년야영장입구, 우회전 - 상법호촌.

주변 대중교통 (지하철, 버스)

데이터랩

테마키워드

  • 분위기
    이국적, 깨끗한, 화려한, 편안한, 웅장한
  • 인기토픽
    둘레길, 오름, 등반코스, 철쭉, 국립공원
  • 찾는목적
    휴식, 경치, 산행, 등산, 가족여행

1월, 12 에 많이 찾는 곳

1월, 12월에 많이 찾는 곳 표
최저/최고기온강수확률맑은날인기도
1최저기온4.6° / 최고기온11.3°10%3일
2최저기온6.2° / 최고기온12.8°40%6일
3최저기온8.5° / 최고기온15.5°40%10일

연령/성별 검색 인기도

로딩중정보를 가져오는
중입니다.

남성여성
  • 22.222222222222232%0
    10
  • 85.29688888888887%0
    20
  • 85.72933333333332%0
    30
  • 86.7644444444444%2
    40
  • 86.67688888888883%0
    50
  • 90.79999999999998%1
    60
- - -
\ No newline at end of file + +

오조해녀의집 찾아가는 길

주변 대중교통 (지하철, 버스)

데이터랩

테마키워드

  • 분위기
    고급진, 조그마한, 친절한, 편안한, 쾌적한
  • 인기토픽
    전복죽, 해변, 문어숙회, 전복, 죽집
  • 찾는목적
    가족여행, 경치, 싱싱한, 등산, 보양식

수요일 시간대별 검색 인기도

연령/성별 검색 인기도

로딩중정보를 가져오는
중입니다.

남성여성
  • 25.00000000000001%0
    10
  • 83.82349999999997%0
    20
  • 92.5135%1
    30
  • 89.19249999999998%2
    40
  • 25.00000000000001%0
    50
  • 25.00000000000001%0
    60
\ No newline at end of file diff --git a/googleSearch b/googleSearch index 3929a16..8f14e68 100644 --- a/googleSearch +++ b/googleSearch @@ -1,20 +1,20 @@ -성산일출봉(sungsan) site:tistory.com - Google 검색
다음 검색어에 대한 결과 포함: 성산일출봉(seongsan) site:tistory.com
다음 검색어에 대한 결과만 표시: 성산일출봉(sungsan) site:tistory.com
2020. 5. 17.제주 최고의 관광지 중 하나인 성산일출봉이다.(서귀포시 성산읍) 제주도의 다른 오름이 육지출신(?)인데 반해 성산일출봉은 바다출신이라고 한다.
2019. 6. 20.성산일출봉(Seongsan Ilchulbong) 성산일출봉은 외국인들이 가장 많이 찾는 제주의 필수 코스입니다. 성산일출봉도 제주의 수많은 오름 중 하나�...
2015. 2. 20.성산일출봉! 이건 하나의 상징이다...우리만의 상징 아무도 모르겠지?-ㅠ- 저 모자는 성산일출봉을 의미하고 그거에 신난 나의 모습? ;Maybe nobody�...
2019. 11. 11.성산일출봉은 좋은 날 가야 하는 곳입니다. 명심하세요!! ... 성산일출봉 앞에는 넓~ 은 주차장이 있으니 걱정 마시고요. ... Sungsan is the same.
2017. 10. 24.170503 Rep. Korea / Jeju Island Seongsan Ilchulbong Peak 성산일출봉 제주도 여행에서 빠질 수 없는 곳 성산일출봉 오랫동안 제주도의 상징적�...
2008. 10. 15.자세히 보니 구름이 가득한 것 같다. 일출을 못 볼것 같다는 불길한 예감이 들기는 했지만 그래도 일찍 일어났으니 성산일출봉에 올라갈 채비를 했다.
2010. 9. 1.성산일출봉 입구 옆에 있는 동암사에 들러야 해서 그리로 갔다가 이렇게 맑은 날 일출봉 올라가야지 나중에 언제 맑을 때까지 기다리다 오겠어?
2018. 5. 30.6월 제주도 가볼만한곳! 성산일출봉 Seongsan Ilchulbong Tuff Cone 티스토리 첫 여행 포스팅은 제주도입니다 :) 제주도는 가도가도 정말 또 가고�...
2020. 6. 2.제주 서귀포시 성산읍에 위치한 성산일출봉입니다. 성산일출봉은 제주도를 대표하는 여행지로 많은 관광객들이 찾는곳으로 유명합니다. 세계자연�...
다음 검색어에 대한 결과 포함: 성산일출봉(seongsan) site:tistory.com
다음 검색어에 대한 결과만 표시: 성산일출봉(sungsan) site:tistory.com
2020. 5. 17.제주 최고의 관광지 중 하나인 성산일출봉이다.(서귀포시 성산읍) 제주도의 다른 오름이 육지출신(?)인데 반해 성산일출봉은 바다출신이라고 한다.
2019. 6. 20.성산일출봉(Seongsan Ilchulbong) 성산일출봉은 외국인들이 가장 많이 찾는 제주의 필수 코스입니다. 성산일출봉도 제주의 수많은 오름 중 하나�...
2015. 2. 20.성산일출봉! 이건 하나의 상징이다...우리만의 상징 아무도 모르겠지?-ㅠ- 저 모자는 성산일출봉을 의미하고 그거에 신난 나의 모습? ;Maybe nobody�...
제주도 여행 추천 장소 「성산일출봉 편」 +Scroll down:English version ... 성산 일출봉 앞에는 넓~은 주차장이 있으니 걱정 마시고요. ... Sungsan is the same.
2017. 10. 24.170503 Rep. Korea / Jeju Island Seongsan Ilchulbong Peak 성산일출봉 제주도 여행에서 빠질 수 없는 곳 성산일출봉 오랫동안 제주도의 상징적�...
2008. 10. 15.자세히 보니 구름이 가득한 것 같다. 일출을 못 볼것 같다는 불길한 예감이 들기는 했지만 그래도 일찍 일어났으니 성산일출봉에 올라갈 채비를 했다.
2010. 9. 1.성산일출봉 입구 옆에 있는 동암사에 들러야 해서 그리로 갔다가 이렇게 맑은 날 일출봉 올라가야지 나중에 언제 맑을 때까지 기다리다 오겠어?
2018. 5. 30.6월 제주도 가볼만한곳! 성산일출봉 Seongsan Ilchulbong Tuff Cone 티스토리 첫 여행 포스팅은 제주도입니다 :) 제주도는 가도가도 정말 또 가고�...
2020. 6. 2.제주 서귀포시 성산읍에 위치한 성산일출봉입니다. 성산일출봉은 제주도를 대표하는 여행지로 많은 관광객들이 찾는곳으로 유명합니다. 세계자연�...
\ No newline at end of file +var b=[function(){google.tick&&google.tick("load","dcl")}];google.dclc=function(a){b.length?b.push(a):a()};function c(){for(var a;a=b.shift();)a()}window.addEventListener?(document.addEventListener("DOMContentLoaded",c,!1),window.addEventListener("load",c,!1)):window.attachEvent&&window.attachEvent("onload",c);}).call(this);(function(){(function(){google.csct={};google.csct.ps='AOvVaw3tkj4PcXgT6Fp1Q4xF_eAd\x26ust\x3d1611209212423167';})();})();(function(){(function(){google.csct.rd=true;})();})();google.drty&&google.drty(); \ No newline at end of file diff --git a/server/controllers/place.controller.js b/server/controllers/place.controller.js index d4ae24f..384ea2a 100644 --- a/server/controllers/place.controller.js +++ b/server/controllers/place.controller.js @@ -17,6 +17,8 @@ const searchPlace = async (req, res) => { let places = {} $1('.ct_box_area').each(function (i) { + + // console.log($1('.biz_name').text()) // console.log($1('.category').text()) // console.log($1('.addr').text()) @@ -49,24 +51,38 @@ const searchImg = async (req, res) => { // images[i] = { imgUrl: $(this).find('img').atrr('src') } // }) // console.log('%%%%%%%%%%%%%%%%%%%%%%%%%%%', images) - res.send(images) + // 여기서 있는건 찾아와서 추가를 시켜야한다. //사진만 업데이트 let Place = await Places.findOne({ name: req.params.search }) Place.times.push(new Date().toLocaleString()) - await Places.updateOne({ name: req.params.search }, { img: images, times : Place.times }) - await Places.createIndex({address : "text", name : "text"}) - - + await Places.updateOne({ name: req.params.search }, { img: images, times: Place.times }) - console.log("************************************************", await Places.find({$text:{$search:"\"경남\""}})) - // console.log(await Places.find()) const newPlaces = await new Places( ).save() + + res.send(images) }) } +const searchAssociation = async (req, res) => { + let Place = await Places.findOne({ name: req.params.search }) + let address = Place.address.split(' ')[0] + + + // let AssociationsId = [] + + let addressPlaces = new RegExp(`${address}`) + let responsePlaces = await Places.find({ address: addressPlaces }) + res.send(responsePlaces) + // responsePlaces.map(Association => { + // AssociationsId.push(Association._id) + // }) + // console.log("Associations = ", Associations) + // res.send(AssociationsId) +} + -export default { searchImg, searchPlace } +export default { searchImg, searchPlace, searchAssociation } diff --git a/server/routes/place.routes.js b/server/routes/place.routes.js index 0a1d53f..6817a28 100644 --- a/server/routes/place.routes.js +++ b/server/routes/place.routes.js @@ -9,5 +9,7 @@ router.route('/api/search/imges/:search') router.route('/api/search/places/:search') .get(place.searchPlace) +router.route('/api/search/association/:search') + .get(place.searchAssociation) export default router \ No newline at end of file -- GitLab