์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- dmz๋คํธ์ํฌ
- ์ฝ๋ฉ
- ์นํผ๋ธ๋ฆฌ์ฑ
- ๋๊ฐ
- ๊ฐ๋ฐ
- ํ์ฒ์ ๋ฆฌํธ๋ฆฌํธ
- dmz๊ตฌ์ฑ
- ๋ฐฉํ๋ฒฝdmz
- ์นดํ๋๊ฐ
- ์ฑ
- ์ค๋ธ์
- ๋คํธ์ํฌdmz
- dmz๋
- css
- ์ค๋ผํด
- ์๋ฐ์คํฌ๋ฆฝํธ
- ๋ฐฐ์์ ๋ฐฐ์
- Python
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- html
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ํ๋ก๊ทธ๋๋ฐ
- database
- Java
- ์๋ฐ
- JavaScript
- ์ํ
- ์ ๋ฆฌํธ๋ฆฌํธ
- ๋ ์
- ํ์ด์ฌ
- Today
- Total
๋ชฉ๋กStudy (110)
JiYoung Dev ๐ฅ
ํ์ฌ ํํ์ด์ง์ ์๋ฒ๋ฅผ ์ด๊ดํด์ผ ํ๋ ์ผ์ด ์๊ฒผ๋ค. ์ด๋ ค์ด ์์ ์ด ์๋๋ผ ๋ช ์๊ฐ ์ก๊ณ tomcat ์๋ฒ๋ฅผ ํต์ผ๋ก ๋ณต์ฌํ๊ณ , Mysql์์ MariaDB๋ก DB ์ด๊ด ์์ ์ ์งํํ๋ค. ์์ ๋ค์ ์งํํ ํ ํด๋น URL๋ก ์ ์ํ์ ๋์๋ ์ ์์ ์ผ๋ก ๋์ํ๋๋ฐ, ์๊ฐ์ด ํ๋ฅธ ๋ค ์ ์ํ๋ ์๋์ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. 2024-11-21 17:36:19,302 ERROR [egovframework.com.cmm.EgovComOthersExcepHndlr] egovframework.let.cop.bbs.service.impl.EgovBBSManageServiceImpl.selectBoardArticles org.springframework.transaction.CannotCreateTransactionExce..
Docker๋ก ๋ฆฌ์กํธ ํ๋ก๊ทธ๋จ์ ์คํํ๋ค๊ฐ ์คํํ๋ ๊ณผ์ ์์ ๋ฒ๊ฑฐ๋ก์์ด ์์ด์ ๊ฐ๋ฐ ์๋ฒ์์ node๋ฅผ ์ค์นํ์ฌ ์ฌ์ฉํ๊ฒ ๋์๋ค. ํฐ๋ฏธ๋ ์ ์ ํ export๋ก ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ ๋ค ๋ ธ๋๋ฅผ ์คํํ์ ๋๋ ์คํ์ด ์ ์์ ์ผ๋ก ๋์๋๋ฐ, ๋ก๊ทธ์์ ํ ๋ค์ ํฐ๋ฏธ๋์ ์ ์ํ๋ ํ๊ฒฝ๋ณ์ ์ค์ ์ด ํ๋ ค ๋ ธ๋๊ฐ ์ ์์ ์ผ๋ก ์คํ๋์ง ์์๋ค. ์ด๋ฒ ๊ธฐํ๋ฅผ ํตํด์ ๋ฆฌ๋ ์ค ํ๊ฒฝ๋ณ์ ์ค์ ์ ๋ํด ์ข ๋ ์์ธํ ๊ณต๋ถํ๊ฒ ๋์๊ณ , ์๋ ๋ด์ฉ์ ์ ๋ฆฌํด ๋ณด์๋ค. ํ๊ฒฝ๋ณ์ํ๊ฒฝ๋ณ์(PATH)๋, ํ๋ก๊ทธ๋จ์ ์ฐพ๋ ๊ธฐ๋ณธ ๊ฒฝ๋ก๋ฅผ ๋งํ๋ค. ๋ง์ฝ ์๋์ฐ์ธ ๋ด ์ปดํจํฐ์์ ์๋ฐ ํ๋ก๊ทธ๋จ์ ์คํํ๋ ค๊ณ java -jar์ ๊ฐ์ ๋ช ๋ น์ด๋ฅผ ์๋์ฐ CMD ์ฐฝ์ ์ ๋ ฅํ๋ค. ํ์ง๋ง ํ๊ฒฝ ๋ณ์ ์ค์ ์์ด java ํ๋ก๊ทธ๋จ์ ์คํํ๋ ค๊ณ ํ๋ฉด ‘java’์(๋) ๋ด๋ถ..
JDBC(Java Database Connectivity)JDBC๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋ ๋ฐ์ดํฐ์ ์ ๊ทผ, ์กฐ์ํ ์ ์๊ฒ ํ๋ ์๋ฐ API์ด๋ค. ์๋ฐ ์์ฉ ํ๋ก๊ทธ๋จ์ด ๋ค์ํ DBMS์ ๋ํด ์ผ๊ด๋ API๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ, ๊ฒ์, ์์ , ๊ด๋ฆฌ ๋ฑ์ ํ ์ ์๊ฒ ํ๋ค. ๋ฐ๋ผ์ ์๋ฐ๋ก ๊ฐ๋ฐ์์๋ DBMS ์ข ๋ฅ์ ๊ด๊ณ์์ด JDBC API๋ง์ ์ด์ฉํ๋ฉด ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก DBMS๋ฅผ ์ ๊ณตํ๋ ํ์ฌ์์ JDBC ๋๋ผ์ด๋ฒ๋ฅผ ์ ๊ณตํ๋ฉฐ ์๋ฐ ์์ฉํ๋ก๊ทธ๋จ์์๋ JDBC ๋๋ผ์ด๋ฒ๋ฅผ JDBC ๋งค๋์ ๋ฅผ ํตํด ๋ก๋ํ์ฌ ์ฌ์ฉํ๋ค. ๋ฐ๋ผ์ ์ฌ์ฉํ๋ DBMS๊ฐ ๋ฐ๊ปด๋ ์ด์ ๋ฐ๋ฅธ JDBC ๋๋ผ์ด๋ฒ๋ง ๋ก๋ํ๋ฉด ๋๋ฏ๋ก ์๋ฐ ํ๋ก๊ทธ๋จ์๋ DBMS ๋ณ๊ฒฝ์ ๋ฐ๋ฅธ ํ๋ก๊ทธ๋จ ์์ ์ด ํ์ ์๋ค.JDBC ๋๋ผ์ด๋ธ ๋งค๋์ : ์๋ฐ API์์ ์ง..
์ด์์ค์ธ ์๋ฃจ์ ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํด ์์ธ์ ํ์ ํ๋ ค๋๋ฐ, ์๋ฌ๋ฅผ ์ ์ธํ debug๋ info ๋ก๊ทธ๊ฐ ํ๋๋ ์ฐํ์ง ์์ ์์ธ์ ํ์ ํ ์ ์๋ ์ผ์ด ๋ฐ์ํ์๋ค. ๊ทธ๋์ ์ด๋ฒ์ ๋ก๊ทธ ์ฐ๋ ์์ค๋ฅผ ์ถ๊ฐํด ํจ์น๋ฅผ ํ๊ฒ ๋์๋๋ฐ ์ด๋ป๊ฒ ๋ก๊ทธ๋ฅผ ์ฐ์ด์ผ ์ด์ํ ๋ ์ํ๋ฅผ ์ ๋ชจ๋ํฐ๋ง ํ ์ ์์์ง ๊ณ ๋ฏผํ๊ฒ ๋์๊ณ , ์ด๋ฒ ๊ธ์ ์์ฑํ๊ฒ ๋์๋ค.๐ ๋ก๊ทธ(Log)์ ๋ชฉ์ ๋ก๊ทธ๋ ์์คํ ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฐ์ํ๋ ๋ชจ๋ ์ด๋ฒคํธ์ ๊ธฐ๋ก์ผ๋ก, ๊ฐ๋ฐ์์ ์ด์ ํ์ด ์์คํ ์ ์ฑ๋ฅ์ ๋ถ์ํ๊ณ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ์ค์ํ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ค.์๋น์ค ๋์ ์ํ ํ์ ์ฅ์ ํ์ ๋ฐ ์๋ฆผ๋ก๊ทธ ๋ถ์์ ํตํ ์๋น์ค ์งํ์ ํ์ธ, ํธ๋์ญ์ , ์ฑ๋ฅ ํ์ ํ์ง๋ง ๋๊ท๋ชจ ์์คํ ์์๋ ๋งค์ผ ์์ญ GB์ ๋ฌํ๋ ๋ก๊ทธ ๋ฐ์ดํฐ๊ฐ ์์ฑ๋ ์ ์์ด ์ด๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌ..
์ด์ ์์ฑํ๋ Nginx์์ Reverse Proxy ์ค์ ํ Spring Server์์ Cors ์๋ฌ๊ฐ ๋ฐ์ํ์ฌ Spring Security Cors ์ค์ ์ ์ธ๋ถ๋ง ์ฃผ์๋ฅผ ์ถ๊ฐํด ํด๊ฒฐํ์๋ค๊ณ ํ์๋ค. ํด๋น ๊ธ์์๋ ์์ฑํ์ง ์์์ง๋ง Node.js Express ์๋ฒ์์๋ Cors ์๋ฌ๊ฐ ๋ฐ์ํ์๋๋ฐ Cors ์ค์ ๊ณผ ํจ๊ป app.listen("0.0.0.0")์ ์ถ๊ฐํจ์ผ๋ก์จ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์๋ค. ์์ ๊ณผ์ ์ ์งํํ๋ฉด์ Cors๋ฅผ ์ค์ ํ๋ ๊ฒ๊ณผ app.listen("0.0.0.0")์ ์ค์ ํ๋ ๊ฒ์ด ์ด๋ค ์ฐจ์ด๊ฐ ์๋์ง ์์๋ณด์๋ค. ๐ Cors ์ค์ ์ ์ญํ Cors(Cross-Origin Resource Sharing)๋ ์น ๋ธ๋ผ์ฐ์ ๋ฐ์ํ๋ ๋ณด์ ์ ์ฑ ์ผ๋ก ํด๋ผ์ด์ธํธ์ ์ถ์ฒ(Origin)์ ๋ฐ๋ผ ์..

๐ ๋ฌธ์ https://www.acmicpc.net/problem/17298๋ฌธ์ ์ค๋ช ํฌ๊ธฐ๊ฐ N์ธ ์์ด A = A1, A2, ..., AN์ด ์๋ค. ์์ด์ ๊ฐ ์์ Ai์ ๋ํด์ ์คํฐ์ NGE(i)๋ฅผ ๊ตฌํ๋ ค๊ณ ํ๋ค. Ai์ ์คํฐ์๋ ์ค๋ฅธ์ชฝ์ ์์ผ๋ฉด์ Ai๋ณด๋ค ํฐ ์ ์ค์์ ๊ฐ์ฅ ์ผ์ชฝ์ ์๋ ์๋ฅผ ์๋ฏธํ๋ค. ๊ทธ๋ฌํ ์๊ฐ ์๋ ๊ฒฝ์ฐ์ ์คํฐ์๋ -1์ด๋ค.์๋ฅผ ๋ค์ด, A = [3, 5, 2, 7]์ธ ๊ฒฝ์ฐ NGE(1) = 5, NGE(2) = 7, NGE(3) = 7, NGE(4) = -1์ด๋ค. A = [9, 5, 4, 8]์ธ ๊ฒฝ์ฐ์๋ NGE(1) = -1, NGE(2) = 8, NGE(3) = 8, NGE(4) = -1์ด๋ค.์ ๋ ฅ์ฒซ์งธ ์ค์ ์์ด A์ ํฌ๊ธฐ N (1 ≤ N ≤ 1,000,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค..

๐ ๋ฌธ์ ์ํฉ์ ์ํ ์ฐธ์ฌ๋ฅผ ์ํด ์ฌ๋ด ์๋ฒ(Private๋ง)์ ๊ตฌ์ถ๋์ด ์๋ ์๋ฃจ์ ์ ์ธ๋ถ๋ง์์๋ ์ ๊ทผํ ์ ์๋๋ก ๋คํธ์ํฌ ์ค์ ์ ๋ณ๊ฒฝํ๋ ์ผ์ด ์์๋ค. ๋ผ์ฐํ ์ ํ๋์ง ์๋ ํฌํธํฌ์๋ฉ์ ํ๋์ง๋ ํ์คํ์ง ์์ง๋ง(์๋ง๋ ํฌํธํฌ์๋ฉ?) ์ด์จ๋ ๊ฒฐ๋ก ์ ์ฌ๋ด๋ง IP๋ก ์ ์ํ ์ ์๋ ๊ฒ์ ์ธ๋ถ๋ง์์๋ ์ ์์ด ๊ฐ๋ฅํ๋๋ก ๋ณ๊ฒฝํ ๊ฒ์ด๋ค. ๊ทธ๋ฌ๋ ์ด๋ ๊ฒ ์ธ๋ถ๋ง์์ ์ ์ํ ์ ์๋๋ก ๋ณ๊ฒฝํ๋ฉด์ ๋ฆฌ์กํธ ์ฑ์ด ์ฐ๊ณ๋ API ์๋ฒ์ ์ฐ๋์ด ์๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์๋ค. ํ์ฌ ์ฐ๋ฆฌ ์๋ฃจ์ ์ ์ํคํ ์ฒ๋ ์ฝ๊ฐ ๋ ํนํ๊ฒ ๊ตฌ์ฑ๋์ด ์๋๋ฐ CSR์ธ ๋ฆฌ์กํธ๋ฅผ Node.js ์๋ฒ ์์ ์ฌ๋ฆฌ๊ณ , ๋ฆฌ์กํธ์์ Node.js, Spring Server ๋ฐ python Server์ ํต์ ํ๋ ๊ตฌ์กฐ์ด๋ค. ๋ฆฌ์กํธ ์ฑ์์ ๊ฐ ์๋ฒ๋ก ์ ์กํ๋ API..

๐ ๋ฌธ์ ๋ฌธ์ ์ค๋ช ์คํ (stack)์ ๊ธฐ๋ณธ์ ์ธ ์๋ฃ๊ตฌ์กฐ ์ค ํ๋๋ก, ์ปดํจํฐ ํ๋ก๊ทธ๋จ์ ์์ฑํ ๋ ์์ฃผ ์ด์ฉ๋๋ ๊ฐ๋ ์ด๋ค. ์คํ์ ์๋ฃ๋ฅผ ๋ฃ๋ (push) ์ ๊ตฌ์ ์๋ฃ๋ฅผ ๋ฝ๋ (pop) ์ ๊ตฌ๊ฐ ๊ฐ์ ์ ์ผ ๋์ค์ ๋ค์ด๊ฐ ์๋ฃ๊ฐ ์ ์ผ ๋จผ์ ๋์ค๋ (LIFO, Last in First out) ํน์ฑ์ ๊ฐ์ง๊ณ ์๋ค.1๋ถํฐ n๊น์ง์ ์๋ฅผ ์คํ์ ๋ฃ์๋ค๊ฐ ๋ฝ์ ๋์ด๋์์ผ๋ก์จ, ํ๋์ ์์ด์ ๋ง๋ค ์ ์๋ค. ์ด๋, ์คํ์ pushํ๋ ์์๋ ๋ฐ๋์ ์ค๋ฆ์ฐจ์์ ์งํค๋๋ก ํ๋ค๊ณ ํ์. ์์์ ์์ด์ด ์ฃผ์ด์ก์ ๋ ์คํ์ ์ด์ฉํด ๊ทธ ์์ด์ ๋ง๋ค ์ ์๋์ง ์๋์ง, ์๋ค๋ฉด ์ด๋ค ์์๋ก push์ pop ์ฐ์ฐ์ ์ํํด์ผ ํ๋์ง๋ฅผ ์์๋ผ ์ ์๋ค. ์ด๋ฅผ ๊ณ์ฐํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ผ.์ ๋ ฅ์ฒซ ์ค์ n (1 ≤ n ≤ 100,000)..

์ด์ํ๊ฒฝ์ ์ ์ฉ๋ ์๋ฃจ์ ์ค Rest API๋ฅผ ํตํด ๋ฑ๋ก๊ณผ ์กฐํ๋ฅผ ์งํํ๋ ๋ก์ง์์ ๋ฑ๋ก์ ์ ์์ ์ผ๋ก ์งํ๋์ง๋ง, ๋ฑ๋ก๋ ์ ๋ณด๋ก ์กฐํ ์ ์กฐํ๊ฐ ์๋๋ ํ์์ด ๋ฐ์ํ์๋ค. ํ์ธ ๊ฒฐ๊ณผ, ์ฐ๊ณ ์๋น์ค์์ ์ฐ๋ฆฌ ์๋ฃจ์ ์ RestAPI ์๋ฒ๋ก ์์ฒญ์ ๋ณด๋ผ ๋ URL์ ์์ฒญ ๋ฐ์ดํฐ๋ฅผ ๋ด์์ ๋ณด๋ด๊ฒ ๋๋๋ฐ ์ด ๋ user์ id๋ฅผ Base64 ์ธ์ฝ๋ฉํ์ฌ ๋ณด๋ด๋ ๊ฒฐ๊ณผ, Base64 ์ธ์ฝ๋ฉ์ ํฌํจ๋๋ ๋ฌธ์์ด ์ค + ๋ฌธ์์ด์ด URL์์ ์ฌ์ฉํ ๊ฒฝ์ฐ Space๋ก ์ธ์๋๊ธฐ ๋๋ฌธ์ ์ ์์ ์ธ ์กฐํ๊ฐ ์งํ๋์ง ์์๋ค. ํด๋น ๋ฌธ์ ์ ๊ด๋ จํ์ฌ ์ด๋ฒ์๋ Base64์ ๊ด๋ จ๋ ํฌ์คํ ์ ์งํํด ๋ณด์๋ค. ๐ Base64 Encoding Base64 ์ธ์ฝ๋ฉ์ด๋ ์ด์ง(binary) ๋ฐ์ดํฐ๋ฅผ 6bit์ฉ ์๋ผ์ 64๊ฐ์ ๋ฌธ์(์์คํค์ฝ๋)๋ก ๋งค..

์ค๋์ ๋ฆฌ์กํธ๋ฅผ ์ด์ฉํด ๋ก์ปฌ์ ์กด์ฌํ๋ ์ฒจ๋ถํ์ผ์ ์ ๋ก๋ํ์ฌ API๋ก ์ ์กํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํด ๋ณด์๋ค. ํ๊ทธ๋จผ์ , ๋ฆฌ์กํธ์์ ์ฒจ๋ถํ์ผ์ ์ ๋ก๋ ํ๊ธฐ ์ํด์๋ ํ๊ทธ๋ฅผ ์ฌ์ฉํ ์ ์๋ค. ํด๋น ํ๊ทธ๋ HTML ๊ธฐ๋ณธ ํ๊ทธ๋ก ๋ก์ปฌ ์ปดํจํฐ์ ์กด์ฌํ๋ ํ์ผ์ ๊ฐ์ ธ ์ฌ ์ ์๋๋ก ๋์์ฃผ๋ ํ๊ทธ์ด๋ค. ๋ง์ฝ ์๋ฌด ์ค์ ์์ด ํด๋น ํ๊ทธ๋ง ์ฌ์ฉํ๋ค๋ฉด ์๋์ ๊ฐ์ด ๋ณด์ฌ์ค๋ค. ํ์ผ ์ ํ์ด๋ผ๋ ๋ฒํผ๊ณผ ํ ์คํธ๊ฐ ๋จ๊ณ , 'ํ์ผ ์ ํ' ๋ฒํผ์ ํด๋ฆญํ๋ฉด ์ฐ๋ฆฌ๊ฐ ์ ์๊ณ ์๋ ํ์ผ์ ์ ๋ก๋ ํ๋ ์ฐฝ์ด ๋ฌ๋ค. ์ด๋ ๊ฒ ๊ฐ๋จํ๊ฒ input ํ๊ทธ์ file ์์ฑ๋ง์ผ๋ก๋ ํ์ผ ์ ๋ก๋๋ฅผ ํ ์ ์์ง๋ง ์กฐ๊ธ ๋ ์ฌ์ฉ์๊ฐ ํธํ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก drag & drop ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์ ์๋ค. ์ ์ฌ์ฉํ drag & drop ๊ธฐ๋ฅ ์ถ๊ฐ๋ค์ด๊ฐ๊ธฐ์..