- MethodArgumentNotValidException
- Rp2๊ธฐ
- spring ์์ ๋ก๊ทธ์ธ
- ์์คํ ์ํํธ์จ์ด
- node js
- Spring
- SSL
- Java
- spring์ผ๋ก https ์ ์ฉ
- merge sort
- ๋ฆฌ๋ ์ค ๋ช ๋ น์ด
- Unity
- OpenAPI
- MAKE US
- DATABASE
- Data Structure
- SQL
- @CreatedDate
- GIT
- datagrip
- RP 2๊ธฐ
- Quick Sort
- java error
- ํจ์คํธ์บ ํผ์คX์ผ๋์
- docker
- mysql
- spring ๊ตฌ๊ธ ์์ ๋ก๊ทธ์ธ
- ๊ตฌ๊ธ ์์ ๋ก๊ทธ์ธ
- aligoapi
- C++
๋ชฉ๋ก์ ์ฒด ๊ธ (129)
YS's develop story
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/eA2ptm/btq2gya2625/3KmM8XrnyGyAjIa9jqZIPk/img.png)
Complexity function ๋ฐ ๋น ์ค , ๋น ์ค๋ฉ๊ฐ, ๋น ์ธํ ํ๊ธฐ๋ฒ ์๊ณ ๋ฆฌ์ฆ ๋ถ์์ ํ์ํ ๋ ๊ฐ์ Parameter the input size the basic operation Input Size 1. array์ size๊ฐ Input size๊ฐ ๋ ์ ์์ต๋๋ค. 2. single number์์ฒด๊ฐ input size๊ฐ ๋ ์ ์์ต๋๋ค. 3. ๊ทธ๋ํ๊ฐ ์ ๋ ฅ์ผ๋ก ๋ค์ด์จ๋ค๋ฉด, vertex์ ๊ฐ์, edge์ ๊ฐ์๊ฐ input size๊ฐ ๋ ์ ์์ต๋๋ค. Basic Operation ์๊ณ ๋ฆฌ์ฆ ์ ์ฒด์ ์ํ ์๊ฐ์ ๋ฏธ๋ฏธํ๊ฒ ์ํฅ์ ๋ผ์น๋ ๊ฒ์ ์ ์ธํ๊ณ ์ ์ฒด์ ์ํ ์๊ฐ์ ์ง๋ฐฐํ๊ฒ ๋๋ ๊ทธ๋ฃน์ Basic Operation์ด๋ผ๊ณ ํฉ๋๋ค. Example) Binary Search์์๋ ์ฐพ๊ณ ์ ํ๋ ๊ฐ๊ณผ ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/refPq/btq2he4Vrsf/KnZSW11KIOvilkL07XBEsk/img.png)
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ NoSQL ๋ฐ DDL, DML์ ์ ์ ์๋ง์ ์ํํธ์จ์ด ์ ํ์ด ๊ทธ๋ฐ ๊ฒ์ฒ๋ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ ์ฌ๋ฌ ์ข ๋ฅ๊ฐ ์์ต๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฐ์ดํฐ๋ฅผ ๋ณด์กดํ๋ ํ์์ ๋ฐ๋ผ ์ฌ๋ฌ ๊ฐ์ง๋ก ๊ตฌ๋ถ๋๋ฉฐ ๊ฐ๊ฐ์ ํน์ง์ด ์์ต๋๋ค. ๊ทธ์ค์์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํด ์์๋ด ์๋ค. ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ชจ๋ธ ์์ ๊ฐ์ด 2์ฐจ์ ํ ํ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก, ํ์ฌ ๊ฐ์ฅ ์ฃผ๋ฅ๋ก ์ฌ์ฉ๋๊ณ ์์ต๋๋ค. ํ ์ด๋ธ์ ์ด๊ณผ ํ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ ํ ์ด๋ธ์ column๋ค์ ํน์ฑ(Attribute)์ ๋ํ๋ ๋๋ค. ๊ฐ Row(Tuple)๋ค์ ์์์์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค. ์ ์ฌ์ง์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ชจ๋ธ์ ์์์ ๋๋ค. No SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ต๊ทผ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด์ธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ฃผ๋ชฉ์ ๋ฐ์์จ ๊ฒ์ด NoSQL..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/4pV9O/btq2hrI1NRS/2kjt9XApkgkOBr5YuBqZlk/img.png)
ํธ๋์ญ์ ์ ์๋ฏธ ๋ฐ Node MySQL Transactions ์ ์ฉํด๋ณด๊ธฐ 3ํ๋ ์ ๊ณต ํ์๊ณผ๋ชฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค.. ๋งค์ฐ ์ค์ํ ๊ฐ๋ ์ธ Transactions์ ๋ํด ์์๋ด ์๋ค transaction์ ์ฌ๋ฌ ๊ฐ์ ์ฐ์๋ ์ฟผ๋ฆฌ๋ก ๊ตฌ์ฑ๋์ด ์๋๋ฐ ํ๋์ ์์ ์ฒ๋ผ ์๋ํด์ผ ํฉ๋๋ค. SQL standard๋ SQL ๋ฌธ์ด ์คํ๋ ๋ ํธ๋์ญ์ ์ด ์์์ ์ผ๋ก ์์๋๋๋ก ์ง์ ํด์ค๋๋ค. ํธ๋์ญ์ ์ ์๋์ ์์ ์ค ํ๋์ ์ํ๋ก ๋๋์ผ ํฉ๋๋ค. Commit work ํธ๋์ญ์ ์ด ์์๋ถํฐ ๋๋ ๋ ๋๊น์ง ์ํ๋์๋ ๋ชจ๋ ์ฟผ๋ฆฌ๋ฌธ๋ค์ ์์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๊ตฌ์ ์ผ๋ก ์ ๋ฐ์ดํธํ๋ ๊ฒ Rollback work ํธ๋์ญ์ ์ด ์์๋ถํฐ ๋๋ ๋๊น์ง ์ํ๋์๋ ์์ ๋ค์ ๋ชจ๋ ์ทจ์ํ๋ ๊ฒ ํธ๋์ญ์ ์ ์์์ฑ ์์ ํ ์คํ๋๊ฑฐ๋ (Commit) ๋ฐ์ํ์ง ์..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/nnsoL/btq0ZKWwefa/emphI2WIYZPV1otQAzSyeK/img.png)
C# rest API ํธ์ถํ๊ธฐ (RestSharp ์ด์ฉ) C# ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ RestSharp์ ์ด์ฉํด์ C#์์ rest API๋ฅผ ํธ์ถํด ๋ด ์๋ค. ํ๋ก์ ํธ๋ฅผ ํด๋ฆญํ ํ NuGet ํจํค์ง ๊ด๋ฆฌ๋ก ๋ค์ด๊ฐ ์ค๋๋ค. RestSharp๋ฅผ ์ค์นํด ์ค๋๋ค. Jsonํ์์ผ๋ก ํ์ผ์ ๋ฐ์์ ์ฌ์ฉํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๊ด๋ จ ํจํค์ง๋ ์ค์นํด ์ค๋๋ค. Json.NET - Newtonsoft × PM> Install-Package Newtonsoft.Json or Install via VS Package Management window. ZIP file containing Json.NET assemblies and source code: Json.NET www.newtonsoft.com Postman์์ ์ฌ์ฉํ๊ณ ์ ํ๋ API๋ฅผ C..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cJzNRg/btqZMofW4ci/ncMisObh4iCa4hSGAYfy40/img.png)
Node js์์ ๋ฉ์ผ ์ ์กํ๊ธฐ (Nodemailer ์ด์ฉ) ๋ ธ๋ ๋ฉ์ผ๋ฌ๋ Node.js์์ ๋ฉ์ผ ์ ์ก์ ๊ฐ๋ฅํ๊ฒ ํด์ฃผ๋ ๋ชจ๋์ด๋ฉฐ, ๊ฐ์ฅ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๊ณ ์์ต๋๋ค! ์ฐ์ ๋ฉ์ผ์ ๋ณด๋ผ gmail์ ํ๋ ์์ฑํด ์ค์๋ค. ๋ฉ์ผ์ ์์ฑํ๊ณ , ์๋์ ๋งํฌ๋ก ์ ์์ ํ์ฌ ๋ณด์ ์์ค์ด ๋ฎ์ ์ฑ์ ์ก์ธ์ค๋ฅผ ํ์ฉํด ์ค์๋ค. ๋ก๊ทธ์ธ - Google ๊ณ์ ํ๋์ ๊ณ์ ์ผ๋ก ๋ชจ๋ Google ์๋น์ค๋ฅผ Google ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธ accounts.google.com npm์ ์ด์ฉํด nodemailer ๋ชจ๋์ ๋ค์ด๋ก๋ ํด ์ค์๋ค. npm install nodemailer ์ฝ๋์ ์๋์ ๊ฐ์ด ๋ค์ด๋ก๋ํ ๋ชจ๋์ ์ฌ์ฉํ๋ค๋ ๊ตฌ๋ฌธ์ ์ถ๊ฐํด ์ค๋๋ค. const nodemailer = require('nodemailer'); ์ ๋ ์ ์ ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cQx278/btqZIzoKVlm/fkslbvMifQY5MaoI6VBFjK/img.png)
MySQL ์ค๋ณต๋ ๊ฒฐ๊ณผ๋ฅผ ์ ๊ฑฐํ๋ distinct ์๋์ ๊ฐ์ด Community๋ผ๋ ํ ์ด๋ธ์ ๋ด๊ฐ ์์ฑํ ๊ธ๋ค์ ์ฑ ์ด๋ฆ๊ณผ ์ฑ ์ธ๋ฑ์ค๋ฅผ ์ถ๋ ฅํ๋๋ก ์ฟผ๋ฆฌ๋ฅผ ์งฐ์ต๋๋ค. ํ์ง๋ง ๋ฌธ์ ์ ์ด ์์ต๋๋ค. 14๋ฒ ์ธ๋ฑ์ค์ ํด๋นํ๋ '๋ถ์ ์ถ์์ฐจ์ '์ ๊ด๋ จ๋ ๊ธ์ ๋ ๊ฐ ์์ฑํ๊ธฐ ๋๋ฌธ์ ์ค๋ณต๋ ์ถ๋ ฅ ๊ฒฐ๊ณผ๊ฐ ๋์ค๊ฒ ๋ฉ๋๋ค. select Community.bookIdx,bookName from Book left outer join Community on Community.bookIdx = Book.bookIdx where userIdx = ? and Community.status = 1 and Book.status =1; distinct๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ฌํ ์ค๋ณต๋ ๊ฒฐ๊ณผ๋ฅผ ์ ๊ฑฐํ๊ณ ์ถ๋ ฅํ ์ ์์ต๋๋ค. select distinc..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/oEA3R/btqYDlfldaD/K5DOT0DYaU2ZI0rVRdK4Y1/img.jpg)
์๋ฒ ๊ฐ๋ฐ์ฃผ์์ฌํญ ํ๋ก์ ํธ ์๋ฒ ๊ฐ๋ฐ ์ ์ค์ํ ์ฃผ์ ์ฌํญ๋ค์ ๋ฉํ ๋ถ๋ค๊ป์ ์ ์ ๋ฆฌํด ์ฌ๋ ค ์ฃผ์ จ๋๋ฐ.. ์๋ฒ ๊ฐ๋ฐ ์ ๋๊ณ ๋๊ณ ์ฐธ๊ณ ํ๊ธฐ ์ํด ์ ๋ฆฌํด์ ๊ธ์ ์์ฑํ๊ฒ ๋์์ต๋๋ค. 1. API Index ์ ์ฒด์ ์ธ API ๋ฆฌ์คํธ๋ฅผ ๊ด๋ฆฌํ๋ ๊ณณ์ด์์. ํด๋ผ์ด์ธํธ ๊ฐ๋ฐ์๋ ์ด ํ์ด์ง๋ง ๋ณด๊ณ ์ด๋ค API๊ฐ ์๊ณ ์ด๋ป๊ฒ ์ ๊ทผํ๋ฉด ๋๋์ง ์ ์ ์์ด์ผ ํฉ๋๋ค. ์๋ ์ฌํญ์ ํนํ ์ ๊ฒฝ ์จ์ ์์ ์ ์งํํด ์ค์๋ค.!! API ๋ฌธ์ ์ต์ ํ์ ๊ผญ ์ ๊ฒฝ ์จ์ฃผ์ธ์! ํ ์คํธ ์๋ฒ์ ์ค์๋ฒ์ URL์ ์ ์ด์ฃผ์ธ์. ๊ฐ๊ฐ์ ํญ๋ชฉ์ ๋ํด ๊ฐ ์ํธ๋ก ์ด๋ํ ์ ์๋ ๋งํฌ๋ฅผ ๊ฑธ์ด์ฃผ์ธ์. (Ctrl+K ๋๋ Cmd+K) API ๊ฐ๋ฐ ๋ฐ ํ ์คํธ๋ฅผ ๋ง๋ฌด๋ฆฌํ๊ณ git์ ํธ์ํ๊ธฐ ์ ์ ๊ผญ API ๋ช ์ธ์๋ฅผ ์ต์ ํํด์ฃผ์ธ์. ํด๋ผ์ด์ธํธ ๊ฐ๋ฐ์๊ฐ ์ฌ๋ ์ฑ๋..