- OpenAPI
- spring์ผ๋ก https ์ ์ฉ
- DATABASE
- SQL
- aligoapi
- C++
- SSL
- ๊ตฌ๊ธ ์์ ๋ก๊ทธ์ธ
- docker
- MAKE US
- node js
- Data Structure
- spring ๊ตฌ๊ธ ์์ ๋ก๊ทธ์ธ
- RP 2๊ธฐ
- @CreatedDate
- Spring
- ํจ์คํธ์บ ํผ์คX์ผ๋์
- MethodArgumentNotValidException
- ๋ฆฌ๋ ์ค ๋ช ๋ น์ด
- GIT
- Java
- ์์คํ ์ํํธ์จ์ด
- java error
- merge sort
- spring ์์ ๋ก๊ทธ์ธ
- Rp2๊ธฐ
- datagrip
- Quick Sort
- mysql
- Unity
๋ชฉ๋ก์ ์ฒด ๊ธ (129)
YS's develop story
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bp3aa4/btqYN2r0zIm/EcwLztYJxUS5QbnP9SpTl1/img.jpg)
๋ง๊ณ ํ๋ ์ดํธ ํด๋ก ์ฑ ํ๋ก์ ํธ ๋ผ์ด์ง ํ๋ก๊ทธ๋๋จธ 2๊ธฐ ๊ต์ก๊ณผ์ ํ 2์ฃผ๊ฐ ์งํํ๊ฒ ๋ ๋ชจ์ ์ธ์ฃผ, ๋ง๊ณ ํ๋ ์ดํธ ํด๋ก ์ฑ ํ๋ก์ ํธ์ ๋๋ค. AWS EC2์์ Node๋ฅผ ํตํด ์๋ฒ๋ฅผ ๊ตฌ๋ํ๊ณ ์์ผ๋ฉฐ AWS RDS๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ฌ์ฉํ์์ต๋๋ค. ๊ฐ๋ฐ๊ธฐ๊ฐ 2021-02-03 ~ 2021-02-17 ๊ฐ๋ฐํ๊ฒฝ ์์ฐ ์์ ๋ก๊ทธ์ธ ์๋น ๊ฒ์ ์๋น ์์ธ์กฐํ ์์ ์กฐํ EAT๋ ์๋น ๋ฑ๋ก TOP ๋ฆฌ์คํธ ๋ด ์ ๋ณด
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bann7G/btqYQvUB0PZ/fvbdRRwBtzWWh1A2eSETT0/img.png)
Nginx ์๋ธ ๋๋ฉ์ธ , Nginx reverse proxy ์ ์ฉํ๊ธฐ ์์ ์ AWS EC2์ Nginx๋ฅผ ์ค์นํ๊ณ ๊ฐ๋น์ ๋๋ฉ์ธ์ ์ ์ฉํ์ฌ ์ด๋ฅผ ์ฐ์ต์ฉ ๊ฐ๋ฐ ์๋ฒ๋ก ์ฌ์ฉํ์์ต๋๋ค. (Rp2๊ธฐ 2์ฃผ์ฐจ ๊ณผ์ - part 2) AWS EC2๋ฅผ ์ด์ฉํ ubuntu ์๋ฒ ๊ตฌ์ถ, WinSCP๋ฅผ ์ด์ฉํ์ฌ AWS ์ธ์คํด์ค์ nginx,ph ๋ ๋ฒ์งธ ๊ณผ์ 1. AWS EC2๋ฅผ ์ด์ฉํ ubuntu ์๋ฒ ๊ตฌ์ถ. 2. WinSCP๋ฅผ ์ด์ฉํ์ฌ AWS ์ธ์คํด์ค์ nginx, php, mysql ์ค์น. 3. datagrip์ ์ด์ฉํ์ฌ mysql ์ธ๋ถ ์ ์ํด๋ณด๊ธฐ. 1. AWS ์๋ฒ ๊ตฌ์ถ ์ฐ์ ์๋ AWS ํํ์ด์ง์.. yusang.tistory.com ์ค์ ์๋น์ค๋ฅผ ํ ๋ ์๋ฒ๋ Product์๋ฒ์ Test์๋ฒ๋ก ๋๋์ด์ ์งํ์ ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/chVzS0/btqXHgsJqUb/bH7KCgIlvKyVBM9Wy2ZIwK/img.png)
FCM์ ์ด์ฉํ์ฌ node js ํธ์ ์๋ ๊ตฌํํ๊ธฐ ์ฌ์ดํธ firebase์์ ํ๋ก์ ํธ๋ฅผ ์์ฑํด ์ค์๋ค. console.firebase.google.com/?hl=kofirebase.google.com/?hl=ko Firebase Firebase๋ ๊ณ ํ์ง ์ฑ์ ๋น ๋ฅด๊ฒ ๊ฐ๋ฐํ๊ณ ๋น์ฆ๋์ค๋ฅผ ์ฑ์ฅ์ํค๋ ๋ฐ ๋์์ด ๋๋ Google์ ๋ชจ๋ฐ์ผ ํ๋ซํผ์ ๋๋ค. firebase.google.com ์ฌ์ฉํ๊ณ ์ ํ๋ ์ฑ์ firebase๋ฅผ ์ฌ์ดํธ์์ ํ๋ผ๋ ๋๋ก ์ถ๊ฐํด ์ค์๋ค. ํด๋ผ์ด์ธํธ ์ชฝ์์ ์๋์ ๊ฐ์ ์ฝ๋๋ฅผ ํตํด ๋๋ฐ์ด์ค ํ ํฐ์ ๋ฐ์ต๋๋ค. FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task -> if (!task...
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Rge19/btqVV3BM0vd/9Vqg9JLYPwsVszsgup3Lq0/img.png)
MySQL ) LIMIT์ ํ์ฉํ์ฌ ํ์ด์ง ์ฟผ๋ฆฌ ํ์ฉํ๊ธฐ ์๋์ ๊ฐ์ด Restaurant๋ผ๋ ํ ์ด๋ธ์ด ์์ต๋๋ค. ๋ํ ์๋์ ๊ฐ์ด Review๋ผ๋ ํ ์ด๋ธ์ด ์์ต๋๋ค. ๋ง์ง๋ง์ผ๋ก ์๋์ ๊ฐ์ Area๋ผ๋ ํ ์ด๋ธ๋ ์์ต๋๋ค. ์๋์ ๊ฐ์ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ๊ฒ ๋๋ฉด ์๋น ์ด๋ฆ๊ณผ reviewCount, distance๋ฅผ ๋ณด์ฌ์ฃผ๊ฒ ๋ฉ๋๋ค. select restaurantName,ifnull(reviewCount, 0) reviewCount, round(6371 * acos(cos(radians(areaLatitude)) * cos(radians(restaurantLatitude)) * cos(radians(restaurantLongitude) - radians(areaLongitude)) + sin(radians(ar..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ITb8i/btqVZSmtOEi/gIi8qkFt0ZtglKez32h5W1/img.png)
MySQL ) ๋ณ์์ ๊ฐ์ ํ ๋นํ์ฌ ๊ฐ๋ง๋ค ๋ค๋ฅด๊ฒ ์ ๋ ฌํ๋ ์ฟผ๋ฆฌ ์ง๊ธฐ. ์๋์ ๊ฐ์ด Restaurant๋ผ๋ ํ ์ด๋ธ์ด ์์ต๋๋ค. ๋ํ ์๋์ ๊ฐ์ด Review๋ผ๋ ํ ์ด๋ธ์ด ์์ต๋๋ค. ๋ง์ง๋ง์ผ๋ก ์๋์ ๊ฐ์ Area๋ผ๋ ํ ์ด๋ธ๋ ์์ต๋๋ค. ์๋์ ๊ฐ์ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ๊ฒ ๋๋ฉด ์๋น ์ด๋ฆ๊ณผ reviewCount, distance๋ฅผ ๋ณด์ฌ์ฃผ๊ฒ ๋ฉ๋๋ค. select restaurantName,ifnull(reviewCount, 0) reviewCount, round(6371 * acos(cos(radians(areaLatitude)) * cos(radians(restaurantLatitude)) * cos(radians(restaurantLongitude) - radians(areaLongitude)) + sin(ra..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dYUN9x/btqVV2QmaZ5/gdlHcsCypslXfRTA2RvAFK/img.png)
MySQL ) left outer join ํ์ฉ, ifnull ํ์ฉ ์๋์ ๊ฐ์ด Restaurant๋ผ๋ ํ ์ด๋ธ์ด ์์ต๋๋ค. ๋ํ ์๋์ ๊ฐ์ด Review๋ผ๋ ํ ์ด๋ธ์ด ์์ต๋๋ค. ์๋์ ๊ฐ์ ์ฟผ๋ฆฌ๋ฅผ ์คํํ๋ฉด ๊ฐ ์๋น์ ๋ฆฌ๋ทฐ์๊ฐ ๋ช ๊ฐ ์ธ์ง ์ถ๋ ฅํ ์ ์์ต๋๋ค. select restaurantName,reviewCount from Restaurant inner join (select restaurantId, count(*) as reviewCount from Review group by restaurantId) ReviewCount on Restaurant.restaurantId = ReviewCount.restaurantId ๋ฆฌ๋ทฐ์ ๊ฐ 0๊ฐ์ธ ์๋น๋ ๊ฐ์ด ์ถ๋ ฅํ๊ฒ ํ๋ ค๋ฉด null ๊ฐ๋ ํ์ ํ๋ left ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bhxfVU/btqVTGEQ1FT/dfB6Y3HD27I1AYMi83QgOk/img.png)
MySQL ) ๊ธฐ์กด ์นผ๋ผ์์ ๊ฐ์ +1 ํด์ฃผ๊ธฐ ์ฟผ๋ฆฌ๊ฐ ์คํ๋ ๋๋ง๋ค ํน์ ์นผ๋ผ์ ๊ฐ์ +1 ์ฆ๊ฐ์ํค๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น์? ์กฐํ์์ ๊ฐ์ ์์๋ ์ด๋ฐ ์์๋ฅผ ํ์ฉํด์ผ ํ ๊ฒ ๊ฐ์ต๋๋ค. Cafe๋ผ๋ ํ ์ด๋ธ์ cafeStar๋ผ๋ ์นผ๋ผ์ ์ฃผ๋ชฉํด ์ฃผ์ธ์, ์๋์ ๊ฐ์ ์ฟผ๋ฆฌ๋ฅผ 2๋ฒ ์คํํ๋ฉด... update Cafe set cafeStar =Cafe.cafeStar + 1 where cafeId = 1; ํด๋น ๊ฐ์์ +2๊ฐ ์ถ๊ฐ๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ์ด๋ฅผ ์กฐํ ์ ๊ฐ์ ์นผ๋ผ์ ํ์ฉํ๋ฉด ํธํ ๊ฒ ๊ฐ์ต๋๋ค :)