![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/Un2qW/btqygTvDtG4/AtBFKHPlOYM12IpwL7pHFK/img.png)
Lv2 - 4์ฃผ์ฐจ ๋ฏธ์ : ๋น๋๊ธฐ ํต์ &API / ๋๊ธ ์ถ๊ฐ ๊ธฐ๋ฅ ๊ตฌํ https://github.com/woowacourse/jwp-blog ํ์ต๋ชฉํ ๋น๋๊ธฐ ๋ฐฉ์์ผ๋ก ํต์ ํ๋ ๊ฒฝํ์ ํ๊ณ ํ๋ก์ธ์ค๋ฅผ ์ดํดํ๋ค. API ๋ฌธ์ ์๋ํ๋ฅผ ๊ฒฝํํ๋ค. ๋ฏธ์ ๋๊ธ ๊ธฐ๋ฅ์ ๋น๋๊ธฐ ๋ฐฉ์์ผ๋ก ๊ตฌํํ๊ธฐ ๊ธฐ์กด์ ๊ตฌํํ๋ ๊ธฐ๋ฅ ์ค ํ์ํ ๋ถ๋ถ์ ๋น๋๊ธฐ๋ก ๊ตฌํํด๋ณด๊ธฐ ๋๊ธ์์ฑ ํฌํจํด์ ๋ฐ๋์ 3๊ตฐ๋ฐ ์ด์์ ์ ์ฉํด๋ณด๊ธฐ Script๋ฅผ ํ์ฉํ์ฌ ์๋ ๋ฐฐํฌํ๊ธฐ RollingFileAppender๋ฅผ ์ด์ฉํ์ฌ ๋ฐฐํฌํ ์๋ฒ์ ๋ก๊ทธ๋ฅผ ์ ์ฅํ๊ธฐ (adv) Spring REST Docs๋ฅผ ์ด์ฉํ์ฌ ๋ฌธ์ ์๋ํ ํ๊ธฐ (adv) ํ์ผ์ฒจ๋ถ ๊ธฐ๋ฅ ๊ตฌํํ๊ธฐ (adv) ์ธ๋ถ API ํธ์ถํ๊ธฐ ์ฒดํฌ๋ฆฌ์คํธ ์์ฒญ์ ๋ํ Acceptance Test๋ฅผ ๊ตฌํํ๋๊ฐ H..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cqwFo2/btqykNUvvXS/7OTkXVSLK57PkgEnMWrAr1/img.png)
Lv2 - 3์ฃผ์ฐจ ๋ฏธ์ : ๋น๋&๋ฐฐํฌ ๊ตฌ์ฑ / ๋๊ธ ๊ด๋ จ ๊ธฐ๋ฅ ๊ตฌํ https://github.com/woowacourse/jwp-blog ํ์ต๋ชฉํ JPA๋ฅผ ์ด์ฉํ์ฌ ๊ธฐ์ด์ ์ธ ์ฐ๊ด๊ด๊ณ ๋งคํ์ ์ดํดํ๋ค. ์๊ฒฉ ์๋ฒ์ ๋ฐฐํฌํ๋ ๊ฒฝํ์ ํ๋ค. ๋ฐฐํฌ์ ๋ํ ๊ธฐ๋ณธ์ ์ธ ํ๋ก์ธ์ค๋ฅผ ์ดํดํ๋ค. ๋ฏธ์ ๊ฒ์๊ธ ์์ฑ ์ ์์ฑ์ ์ ๋ณด ๋ถ์ฌํ๊ธฐ ์์ฑ์๋ง ๊ฒ์๊ธ ์์ /์ญ์ ๊ฐ๋ฅํ๊ฒ ํ๊ธฐ ๋๊ธ ๊ด๋ จ ๊ธฐ๋ฅ ๊ตฌํํ๊ธฐ ์๊ฒฉ ์๋ฒ์ ์ง์ ๋ฐฐํฌํ๊ธฐ Script๋ฅผ ํ์ฉํ์ฌ ์๋ ๋ฐฐํฌํ๊ธฐ ์ฒดํฌ๋ฆฌ์คํธ ๋ชจ๋ ์์ฒญ์ ๋ํ Acceptance Test๋ฅผ ๊ตฌํํ๋๊ฐ HTML ์ค๋ณต ์ ๊ฑฐํ์๋๊ฐ ํ ์คํธ์ ์ค๋ณต์ ์ ๊ฑฐํ์๋๊ฐ URL ์ปจ๋ฒค์ ์ ์งํค๋ฉฐ ๊ตฌํํ๋๊ฐ ๊ฒ์๊ธ๊ณผ ํ์ ๊ฐ ๊ฐ์ฒด ์ฐ๊ด๊ด๊ณ๊ฐ ์ ๋งบ์ด์ก๋๊ฐ? ๋๊ธ๊ณผ ๊ฒ์๊ธ, ๋๊ธ๊ณผ ํ์ ๊ฐ ๊ฐ์ฒด ์ฐ๊ด๊ด๊ณ๊ฐ ..
2019.09.10 ~ ๋ธ๋ก๊ทธ ์ด์ http://blog.naver.com/ss1511 ์ฝ๋ ์์ฑ์ด๋ ๋งํฌ๋ค์ด์ด ๋ถํธํด์ ๊ฒฐ๊ตญ ๋ค์ด๋ฒ์์ ํฐ์คํ ๋ฆฌ๋ก ๊ฐ์ํ๊ฒ ๋์๋ค. ํฐ์คํ ๋ฆฌ๋ ์์ง ๋งํฌ๋ค์ด์ด ์๋ฒฝํ ํธํ๋์ง ์์ง๋ง.. ์ด๋ฏธ ํฌ์คํ ํ ๊ธ์ ์ด์ฉ์์์ง๋ง, ์์ผ๋ก ์ต๋ํ ๊ธ์ ๋งํฌ๋ค์ด ๋ฌธ๋ฒ์ผ๋ก ์์ฑํด๋ณด๊ธฐ๋ก. ํฐ์คํ ๋ฆฌ ๋ธ๋ก๊ทธ ๊ด๋ จ Todo github/๋ธ๋ก๊ทธ ์คํจ ์ฝ๋ ์ฝ๋ ํธํ์ฑ ์ถ๊ฐ ํฐ์คํ ๋ฆฌ Plugin์ Syntax Highlighter ์ค์ ์๋ฃ ์ปค์คํ Syntax Highlighter ์ถ๊ฐ ๋๋ colorscripter.com ์ด์ฉ Disqus ์ถ๊ฐ ๋ค์ด๋ฒ, ๊ตฌ๊ธ ๊ฒ์ ์ฐ๊ฒฐ Google AdSense ...
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/TtBT1/btqyfOHGfUQ/WSTOwp7ydc8agZdsEjOcU0/img.png)
์์ ๊ธ์์ ์ด์ด์ง๋ ์์ ์ด๋ค. ์ฐ๋ฆฌ๋ ์๋ฒ์ ๋ก์ปฌ (ํ๋ก์ ํธ ํด๋ ์ธ๋ถ)์ ์ด๋ฏธ์ง๋ ๋์์๊ฐ์ ํ์ผ์ ์ ์ฅํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค. ๊ฐ๋ฐ์ ์งํํ๋ฉฐ CRUD์ ์ ๋ก๋๊น์ง ์ฑ๊ณตํ๋ค. R- ํด๋ผ์ด์ธํธ์์ ํ์ผ์ ์ฝ๋๊ฒ๋ ์ฑ๊ณตํ ์ค์์๋ค... 1. path(string)๋ก ํด๋ผ์ด์ธํธ์์ ์๋ฒ์ ๋ก์ปฌ ํ์ผ์ ์ ๊ทผํ๋ค (-> ๋ถ๊ฐ๋ฅ) ์ฐ๋ฆฌ๋ DB์์ filePath, fileName์ ์ ์ฅํ๊ณ ์์๊ณ , ์ด๋ฅผ ํตํด ์๋ฒ๋ ํ์ผ path๋ฅผ String์ผ๋ก ํด๋ผ์ด์ธํธ๋ก ๋ณด๋ด๋๋ก ํ์๋ค. ํด๋ผ์ด์ธํธ๋ ๋ค์๊ณผ ๊ฐ์ด ๋ก๋ฉ๋๋ค. ๋ฌธ์ ๋ ์ด๋ฐ ๊ฒฝ์ฐ, ํ์ผ์ด ์ ์์ ์ผ๋ก ๋ก๋๋์ง์๊ณ , ์บก์ณํ์ง ๋ชปํ์ง๋ง ๊ฐ๋ฐ์๋๊ตฌ ์ฝ์์์ permisson denied์๋, ์ด๋ฐ ์๋ฌ๋ฉ์์ง๋ฅผ ํ์ธํ ์์๋ค. ์์๋ณด๋, ์์ IE์์ ๋๊ธฐ๋ ํ๋ค๊ณ ํ๋ ์ต๊ทผ์ ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/MDuAJ/btqyfreSSQ7/JdwXk5fOhay3julbfz6CF1/img.png)
์ด๋๋ง ์ฐํ ์ฝ ๋ ๋ฒจ2 ๋ฏธ๋ํ๋ก์ ํธ๋ฅผ ์์ํ๊ฒ ๋์๋ค. ์ฐ๋ฆฌํ์ ์ธ์คํ๊ทธ๋จ์ ํด๋ก ํ๊ธฐ๋กํ๊ณ , ๊ฐ์ฅ ๋จผ์ ๋ด๊ฐ ๋งก์ ์ผ์ ๊ฒ์๊ธ ๊ด๋ จ ๊ธฐ๋ฅ์ด๋ค. ์ด๋ ์ฌ์ง๊ณผ ๋์์์ ์ ๋ก๋ํด์ผํ๋ค. ์ผ๋ฐ ํ ์คํธ ๋ฐ์ดํฐ๋ ๊ทธ๋ฅ DB์ ๋ฃ์ผ๋ฉด ๋ฌ๋๋ฐ, ์ด๋ฏธ์ง์ ์์์ ์ด๋ป๊ฒ ํด์ผํ ๊น? ๋จผ์ ์ด๋ฏธ์ง๋ฅผ ๊ณ ๋ คํด์ ๊ฐ๋ฅํ ๋ฐฉ๋ฒ๋ค์ ์๊ฐํด๋ดค๋ค. 1. S3 ์ด์ฉ ์ค์ ํ์ฅ์์ ์ด๋ฐ ๋ฐฉ์์ผ๋ก ์ ์ ์ ํ๋๋ ๋ถ์๊ธฐ์ธ๊ฒ ๊ฐ๊ณ , ๊ฐ์ข ๊ฑฑ์ ๊ฑฐ๋ฆฌ๋ฅผ ๋์ด์ฃผ๊ณ ํธํ๊ฒ ๋๋๊ฒ๊ฐ๋ค. ์ฐ๋ฆฌํ์ S3 ์๊ธ๋ฌธ์ (๋์ค์๋ณด๋ ๊ฐ๋ฅํ๋๋ผ)์ ์ง๊ธ๋จ๊ณ์์ ๋ค์์ ๋์ฌ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ๋ค์ ๋จผ์ ๊ฒฝํํด๋ณด๊ณ ์, ์ด ๋ฐฉ๋ฒ์ ๋ณด๋ฅํ๋ค. ์ด๊ฑด ๋์ค์ ๊ฒฐ๊ตญ ์ฐ๊ฒ๋ ๊ฒ๊ฐ์์. ๊ด๋ จ๋ ํค์๋๋ "Springboot & S3"๋ก ๊ฒ์ํ๋ฉด ๋ง์ด ๋์์, ๋์ค์ s3๋ฅผ ์ธ์ผ์ด ์๊ธฐ๋ฉด ์ฐธ๊ณ ํ๋ฉด..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bGM6Ar/btqyfNIOtg2/KwY6iYvJOD9enbjPvVIkpk/img.png)
Django https://www.djangoproject.com/ https://developer.mozilla.org/ko/docs/Learn/Server-side/Django/Introduction ์ฅ๊ณ ๋ ์ด ๊ตฌ์กฐ๋ฅผ MVT(Model View Template)์ด๋ผ ๋ถ๋ฅด๋ฉฐ, ์ด๋ MVC(Model View Controller) ์ํคํ ์ฒ์ ์ ์ฌํ๋ค. ์ค์น, ํ๊ฒฝ์ค์ ubuntu) python ์ค์น (๋ณดํต ๊ธฐ๋ณธ์ค์น ๋์ด์์. v3 ๊ถ์ฅ) pyenv, virtualenv ์ค์น (์๋๋งํฌ์ curl์ ํตํด pyenv๋ฅผ ์ค์นํ๊ฒฝ์ฐ virtualenv๋ ์๋์ผ๋ก ํจ๊ป ์ค์น๋๋ค) https://wikidocs.net/10936 โ https://cjh5414.github.io/ubuntu-pyenv-virtual..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/ZR3CQ/btqyfsLEWwj/PlU64535XBGkiXxSVY90Ek/img.png)
์น์ผ๋ก๋ถํฐ ์ํ๋ ํ์์ ํ์ผ๋ง ๋ฐ๊ณ ์ถ์ ๋, ๋น์ฐํ ์๋ฒ์์ ํํฐ๋ง์ ํด์ผ ํ๋ค. ์ฌ์ค ํ๋ก ํธ์์๋ (์๋ฌด๋ฆฌ ์์ฌ์ด ์์ด๋) ์ต์ํ ๋ค์๊ณผ ๊ฐ์ด Accept ํ์ ์ ํ์ ๊ฑธ์ด๋์๊ฒ์ด๋ค. ์๋์ ๊ฐ์ด accept๋ฅผ ์ค์ ํ๋ฉด ์ฒจ๋ถํ์ผ ์ ํํ๋ฉด์์ ์ฌ์ง๊ณผ ์์ ํ์ผ๋ง ๋ณด์ธ๋ค. ์ฌ์ค ์ด๊ฑด ์ฐ์ธกํ๋จ์ "๋ชจ๋ ํ์ผ"๋ก ์ ํํ๋ฉด ๋ค๋ฅธ ํ์์ ํ์ผ๋ ๋ณด์ฌ ์ ํ ๊ฐ๋ฅํ๊ฒ ๋๋ค. ๋ฐ๋ผ์ ์ ํ๋ ๋ค๋ฅธ ํ์์ ํ์ผ์ ์๋ฒ๋ก submitํ๊ธฐ ์ ์ ํ๋ฒ๋ ์ํ๋ ํ์์ ํ์ผ์ธ์ง ํ์ธํ๋ JS ๋ฐฉ๋ฒ์ด ๋ถ๋ช ํ ์์ ๊ฒ์ด๊ณ , ๋๋ ์ ์ด์ input ํ๊ทธ๋์ ์ข๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์์ง์์๊น์ถ๋ค. ํ๋ก ํธ์์ 1์ฐจ์ ์ผ๋ก ํ์ธํ๋ ๊ฒ์ด ๋ฌผ๋ก ์ข๊ณ ๋ค๋ค ๊ทธ๋ ๊ฒ ํ๊ณ ์๊ฒ ์ง๋ง, ์ด๋ฒ์ ์๋ฒ์์ FilenameUtils (Apach..
Singleton ํจํด๊ณผ (๋ชจ๋ ๋ฉ์๋๊ฐ static์ผ๋ก ์ด๋ค์ง) Static Class์ ์ฐจ์ด ์ฐจ์ด์ SingletonStatic Class์๋ฆฌ์ฌ์ฉ์ ์์ฒญ์ ํ๋์ ์ธ์คํด์ค๋ฅผ์์ฑํด ์ฌ์ฌ์ฉ์ธ์คํด์ค๋ฅผ ๋ง๋ค์์๊ณ ,๋น์ฐํ ์์ฑ์๋ ๊ฐ์ง์๋๋ค์ธํฐํ์ด์ค ๊ตฌํ (๊ฐ์ฅ ํฐ ์ฐจ์ด์ )๊ฐ๋ฅ๋ถ๊ฐ๋ฅfollow OOPOX, ์ ์ฐจ์ ๋์์ธ์ผ๋ก 'ํจ์'์ ๊ฐ๊น๋คoverride๊ฐ๋ฅ๋ถ๊ฐ๋ฅloadํ์ํ ๋ Lazy load ๊ฐ๋ฅstatic binding in compile-timeperformance์๋์ ์ผ๋ก slowfast, by static bindingtesteasierhard to mock and test์ ์ฅ ์์น (์ค์x)HeapStack => Singleton์ด ์ข๋ ๋์ ๋ถ์๊ธฐ์ด๊ณ , 'OOP์ ๋คํ์ฑ์ ์ด์ '์ด ..
- Total
- Today
- Yesterday
- ์ฐ์ํ ํ ํฌ์ฝ์ค
- JPA
- git
- Java
- Android
- bfs
- C
- ํ๋ก๊ทธ๋๋จธ์ค
- Stack
- Algorithm
- dfs
- sort
- Vo
- graph
- ๋ฆฌ๋ฒ์ฑ
- javascript
- FRAGMENT
- queue
- ๊ฐ๋ฐ์
- reversing
- ์นํดํน
- mysql
- socket
- OneToMany
- brute-force
- Android Studio
- Data Structure
- webhacking.kr
- ํ๊ณ
- ํด์ธ์ฌํ
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |