Web(30)
-
[DevOps] NGINX๋?
๐ NGINX ๐ฝ NGINX๋? ๐ฆ ๊ฐ์ NGINX๋ ๋ง์ ๊ธฐ๋ฅ์ ์ํํ ์ ์๋ Software๋ก Revers Proxy, Load balancer, Cache ๋ฑ์ ์ฒ๋ฆฌํ ์ ์๋ Software์์. ๋ํ NGINX๋ ๋ฐ๋ชฌ์ผ๋ก ๋์ํ๋๋ฐ, ๋ฐ๋ชฌ์ด๋ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํ๋๋ Service์ ๋ํ ์ฉ์ด์์. ๋ชจ๋ ์๋น์ค์์ ์คํ๋๋ Service์ OS ์์ ์ค์ ์๋์ผ๋ก ์์ํ๋๋ก ๋ฐ๋ชฌ์ ๊ตฌ์ฑํ ์ ์์ด์. NGINX๋ ๋๊ฐ์ Process๋ก ๊ตฌ๋์ด ๋์. ์ฆ, Master Process์ Worker Process๋ก ์๋ ๊ตฌ๋์ด ๋์. NGINX ์ฒ๋ฆฌ ๊ณผ์ ์ ์ข ๋ ์ดํด๋ณด๋ฉด ์ต์ด Client๊ฐ ์์ฒญ(Request)๋ฅผ ๋ณด๋ด๊ฒ ๋๋ฉด, NGINX Master Process๊ฐ ์ด ์์ฒญ์ ๋ฐ๊ณ , ์ด๋ค ์์ ์ ..
2022.10.07 -
[DevOps] Ubuntu 22.04 LTS Docker Container Tomcat Web Application Server ์ค์น
๐ Tomcat ์ค์นํ๊ธฐ ๐ฝ ๊ฐ์ ๐ฆ ์๊ฐ ํ์ฌ Tomcat์ 10 Version๊น์ง ๋์จ ์ํ์์. ํ์ง๋ง, ์ฃผ๋ํ๋์ Tomcat 9 Version์ ์ด์ฉํ ๊ฒ์ธ๋ฐ, 10 Version ๋ถํฐ Java EE Package ์๋น ๋ด์ฉ์ด Jakarta EE๋ก ๋ณ๊ฒฝ๋๋ฉด์ ์ค์ ๋ฑ์ ๋ํ ์ ๋ณด๊ฐ ๋ง์ด ๋ถ์กฑํ ์ํ์ด๊ธฐ ๋๋ฌธ์ด์์. ๋ํ ์ฃผ๋ํ๋์ Docker์ Ubuntu 22.04 LTS Container๋ฅผ ์ฌ๋ ค Tomcat์ ์ค์นํด ๋ณด๋ ค ํฉ๋๋ค. ๐ฝ JAVA ์ค์น ๐ฆ JAVA SE ์ค์น Tomcat์ ์ค์นํ๊ธฐ ์ํด์๋ JAVA SE 8 ์ด์์ด ์ค์น ๋์ด ์์ด์ผ ํด์. ๋จผ์ OpenJDK 11์ ์ค์นํด ๋ณด๋๋ก ํ ๊ฒ์. apt-get install -y openjdk-11-jdk ์์ ๋ช ๋ น์ด๋ก ์ค์น๋ฅผ ํด ์ฃผ์ธ์..
2022.09.05 -
[Flask] ๊ธฐ์ด ๋ฐ ์น ์๋ฒ ๊ฐ๋ฐ ๊ฐ๋ ์ดํด
๐ ์๋ ํ์ธ์? ์ด๋ฒ ๊ณต๋ถ๋ ํ์ฌ ์ ๋ฌด๋ฅผ ์ํด ๊ณต๋ถ๋ฅผ ํด๋ณด๊ณ ์ ํ๋ ๋ถ๋ถ ์ ๋๋ค. ์ด๋ฒ์ ์ฃผ๋ํ๋์ ํ์ฌ์์ ์ฌ์ฉ์ค์ธ ๊ด๋ฆฌ์ Page๊ฐ ๊ธฐ์กด์๋ Python Flask ๊ธฐ๋ฐ์ Back End ๋ฐ Jinja๋ก ๊ตฌํ๋ Front End๋ฅผ Nuxt.js์ Spring Boot์ผ๋ก Renewal ํ๋ Project๋ฅผ ๋งก๊ฒ ๋์์ด์! ๊ทธ๋์ Python Flask๋ฅผ ์ดํดํ๊ธฐ ์ํด ๊ณต๋ถ๋ฅผ ํ ํ์์ฑ์ ๋๋ผ๊ณ , ๊ณต๋ถ๋ฅผ ํ์์ต๋๋ค. ์ฃผ๋ํ๋์ JAVA Spring Boot๋ก ๊ณต๋ถ๋ฅผ ํด ์๊ธฐ ๋๋ฌธ์ ๊ธ๋ค์ด ๋ชจ๋ Java Spring Boot๋ก ๋น๋์ด ํํํ๋ ๊ณณ์ด ๋ง์ต๋๋ค. ์ด ์ ์ฐธ๊ณ ๋ถํ ๋๋ฆฌ๊ฒ ์ต๋๋ค. ๐ Flask ์์ํ๊ธฐ ๐ก ์ฐธ๊ณ ์ฌํญ ํจ์ ์์ def๊ฐ ๋ถ์ ๊ฒ์ ํธ์ถ์ ์๋ฏธํ๋ ๊ฒ์ด ์๋๋ผ ์ ์๋ง ํ๋ค๋ ๊ฒ์..
2022.06.08 -
[FrontEnd] HMR(Hot Module Replacement)
๐ HMR(Hot Module Replacement) `HMR`์ ๋ธ๋ผ์ฐ์ ๋ฅผ ์๋ก ๊ณ ์น์ง ์์๋ `Web Pack`์ผ๋ก Buildํ ๊ฒฐ๊ณผ๋ฌผ์ด Web Application์ ์ค์๊ฐ์ผ๋ก ๋ฐ์๋ ์ ์๊ฒ ๋์์ฃผ๋ ์ค์ ์ ๋๋ค. ๋ธ๋ผ์ฐ์ ์๋ก ๊ณ ์นจ์ ์ํ `Live Reload` ๋์ ์ด์ฉ ๊ฐ๋ฅํ๊ณ , `Web Pack Dev Server`์ ํจ๊ป ์ด์ฉํ ์๋ ์๋ ๊ฒ์ด์์. ๐ฝ HMR ์ค์ React.js, ์ต๊ทค๋ฌ, Vue.js์ ๊ฐ์ด ๋๋ถ๋ถ์ Framework์์ ์ด๋ฏธ `HMR`์ ์ด์ฉํ ์ ์๋ Loader๋ค์ ์ง์ํ๊ณ ์์ผ๋, ๋ง์ฝ ๊ฐ๋ณ์ ์ผ๋ก ์ค์ ํ๊ณ ์ถ๋ค๋ฉด ์๋์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ค์ ํ ์ ์์ต๋๋ค. module.exports = { devServer: { hot: true } } Dev Server์ O..
2022.05.22 -
[์ ๋ณด๋ณด์] JWT(JSON Web Token) ์ด๋?
๐ JWT(JSON Web Token) ๐ฝ ๊ฐ์ ์ด์ฉ์๊ฐ Login์ ํ ๋, ํด๋น ํ์์ ๊ณ ์ ํ Token์ ๋ง๋ค์ด์ผ ํ๋๋ฐ, ๊ทธ๋ `JWT`๋ฅผ ์ด์ฉํ๋ ๊ฒ์ด์์. ์ธ์ฆ์๋ ๋ํ์ 3์ธ๋ฐฉ์ด ์๋๋ฐ, `Cookie, Session, Token` ๋ฐฉ์์ด ์๋ ๊ฒ์ด์์. JWT๋ ๋น์ฌ์๊ฐ์ ์ ๋ณด๋ฅผ `JSON` ๊ฐ์ฒด๋ก ์์ ํ๊ฒ ์ ์กํ๊ธฐ ์ํ ๊ฐ๋ณ๊ณ , ๋ ๋ฆฝ์ ์ธ ๋ฐฉ์์ ์ ์ํ๋ ๊ฐ๋ฐฉํ ํ์ค(RFC 7519)์ธ ๊ฒ์ด์์. ์ด ์ ๋ณด๋ `Digital Sign` ๊ฐ๋ ์ด ๋ค์ด๊ฐ ์์ด ํด๋น ๊ฐ์ ํ์ธํ๊ณ , ์๋๋ฐฉ์ด ๋ณด๋๋ค๋ ๊ฒ์ ์ ๋ขฐํ ์ ์๋ ๊ฒ์ด์์. ์ข ๋ ๊ฐ๋จํ ์ด์ผ๊ธฐํ๋ฉด ์ ๋ณด๋ฅผ ์์ ํ๊ฒ ์ ๋ฌํ๊ธฐ ์ํด ํ์์ ๊ถํ ๊ฐ์ ๊ฒ์ ํ์ธํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ์น๊ตฌ์ธ ๊ฒ์ด์์. JWT ๊ณต์ ํํ์ด์ง ๐ฆ ๊ตฌ์กฐ JWT๋ ์์ ๊ฐ์ด ..
2022.04.11 -
[Spring] ResponseEntity
๐ ResponseEntity ๐ฝ ๊ฐ์ `Spring Framework`์์ ์ ๊ณตํ๋ Class ์ค `HttpEntity`๋ผ๋ Class๊ฐ ์กด์ฌํ๋ ๊ฒ์ด์์. ์ด ์น๊ตฌ๋ `HTTP Request ๋๋ Response`์ ํด๋น ํ๋ `HttpHeader`์ `HttpBody`๋ฅผ ํฌํจํ๋ Class์ธ ๊ฒ์ด์์. public class HttpEntity { private final HttpHeaders headers; @Nullable private final T body; } public class RequestEntity extends HttpEntity public class ResponseEntity extends HttpEntity `HttpEntity` Class๋ฅผ ์์ ๋ฐ์ ๊ตฌํํ Class..
2022.03.28