Spring Framework/Spring & Spring Boot
SSE (Server-Sent Events)๋?์๋ฒ์์ ํด๋ผ์ด์ธํธ๋ก ๋ฐ์ดํฐ๋ฅผ ๋น๋๊ธฐ์ ์ผ๋ก ์ ์กํ๋ ๊ธฐ์ ์ด๋ค. ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์๊ฒ ์ง์์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ๋ ์ฃผ๋ก ์ฌ์ฉ๋๋ค. ๋ํ ์ค์๊ฐ ์
๋ฐ์ดํธ๊ฐ ํ์ํ ๊ฒฝ์ฐ(์ฃผ์ ์์ธ, ์ค์๊ฐ ์ฑํ
, ์๋ฆผ ๋ฑ)์ ์ฌ์ฉ๋๋ฉฐ HTTP ๊ธฐ๋ฐ์ผ๋ก ์น ๋ธ๋ผ์ฐ์ ์ ์น ์๋ฒ ๊ฐ์ ๋จ๋ฐฉํฅ ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํ๋ฏ๋ก ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ์์ฒญ์ ๋ณด๋ด์ง ์๊ณ ๋ ์๋ฒ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ์ ์๊ณ , ํด๋ผ์ด์ธํธ๋ ์น ๋ธ๋ผ์ฐ์ ์ EventSource API๋ฅผ ์ฌ์ฉํด ์๋ฒ๋ก๋ถํฐ ์ด๋ฒคํธ๋ฅผ ์์ ํ๊ณ ์ฒ๋ฆฌํ๋ค. ํ๋ก์ ํธ์์ ์จ๋ฐAI์๊ฒ ์ง๋ฌธ์ ์์ฒญํ๋ฉด ์๋ต์ ์ค์๊ฐ์ผ๋ก ๋ฐ๊ธฐ ์ํด ์ฌ์ฉํ๊ณ ์ ํ๋ค.์ค์ ๋ก ํ๋ก์ ํธ์์ ์ด๋ป๊ฒ ๊ตฌํํ๋์ง ์์๋ณด์ ! WebClientService ์ฝ๋ ๊ตฌํ - ๋น๋๊ธฐ๋ก ..
Spring Framework/Spring & Spring Boot
xml ํ์์ ์์ธ ์ค์๊ฐ ๋์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ ํ์ฑํ๊ณ DB์ ์ ์ฅํ๋ ๋ฐ๊น์ง 442์ด(7๋ถ 22์ด) ์์๋๋ค.ํ ์ง์ญ์ ๋ฐ์ดํฐ๋ฅผ ํ์ฑํ๋ ๋ฐ 3~10์ด ๊ฐ๋ ์์๋๊ณ , ์ด 115๊ณณ์ ๊ฐ์ ธ์์ผํ๋ฏ๋ก ์ฝ 7-8๋ถ ์์๋๋ ๊ฒ์ด์๋ค. ์๋ ๊ฐ์ ธ์์ผํ ๋ฐ์ดํฐ๊ฐ ๋ง์ ์ ์ด์ ์ฃผ์์ฐฝ์ xml์ด ์กด์ฌํ๋ url์ ์์ฒญํ์ ๋ 3~5์ด ์ ๋ ์ง์ฐ๋จ์ด ๋ฐ์ํ๊ธด ํ๋ค. ๊ฝค ์ค๋ ์๊ฐ์ด ๊ฑธ๋ ค ์ฑ๋ฅ์ ๊ฐ์ ์ํค๊ธฐ ์ํด ์ฌ๋ฌ ๋ฐฉ์๋ค์ ์๋ํด๋ดค๋ค... CompletableFuture ๋?Java 8์์ ์ถ๊ฐ๋ ํด๋์ค๋ก ๋น๋๊ธฐ ์ฐ์ฐ์ ์ฒ๋ฆฌํ๊ณ ์๋ฃ๋ ๊ฒฐ๊ณผ๋ ์์ธ๋ฅผ ์ฒ๋ฆฌํ๋ค. ๊ธฐ์กด์ ์๋ Java5์ Future ์ธํฐํ์ด์ค์ ํ๊ณ์ ์ ๊ฐ์ ์ํจ ๊ฒ์ด๋ค. ๋๋ณด๊ธฐ๐น Future๋ ?๐ ๋น๋๊ธฐ ์์
์ ๊ฒฐ๊ณผ๋ฅผ ๋ํ๋ด๋ ๋ฐ ์ฌ์ฉ๋๋ฉฐ ..
Spring Framework/๐ ์๋ฌ ๊ธฐ๋ก
์ด๋ค ์ํฉ์ธ์ง...์ธ๋ถ API๋ฅผ ํธ์ถํ๊ณ ์๋ต ๊ฐ์ ๋ฐ์ ๋ ๋ฐ์ํ ๋ฌธ์ ์ด๋ค.Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.springframework.core.codec.DecodingException: JSON decoding error: Unexpected character (''' (code 39)): was expecting double-quote to start field name] with root cause ํด์ํด๋ณด๋ฉด ์๋ต ๊ฒฐ๊ณผ๊ฐ single quotes์ด๊ธฐ ๋๋ฌธ์ ๊ฐ์ฒด๋ก ํ์ฑํ์ง ๋ชปํ๋ค๋ ๊ฒ ๊ฐ๋ค. ์ฐธ๊ณ ๋ก ๋ด๊ฐ ์์ฑ..
Spring Framework/๐ ์๋ฌ ๊ธฐ๋ก
DB์ ์๋ ๋ฐ์ดํฐ๋ค์ ๋ชจ์กฐ๋ฆฌ ์ญ์ ํ๊ณ ๋ค์ save ํด์ผํ๋ค.์ฒ์์๋ deleteAll()๋ก ์ญ์ ํ ํ saveAll()ํ๋ ๊ฒ์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ๋ค.ํ์ง๋ง ์คํ์์ผ๋ณด๋ ์์ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. delete๊ฐ ๋์ง ์๊ณ save๋ฅผ ํ๋ ค๊ณ ํ๋ ์ค๋ณต๋ ํค๊ฐ ์๋ค๊ณ ๋์ค๋ ๋ฏํ๋ค. deleteAll()์ฃ๋ค select๋ง ํ๊ณ delete๋ ํ์ง ์์๋ค.๊ฒฐ๊ตญ delete๋ฅผ ํ์ง ์๊ณ saveAll()์ ๋ง๋ insertํ๋ ค๊ณ ํ๋ค. ๊ทธ๋ฌ๋ค ๋ณด๋ ์ค๋ณต๋ ํค๊ฐ ์๋ค๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒ์ด๋ค. ๐น deleteAll() deleteAll() ๋ฉ์๋๋ฅผ ๋ค์ด๊ฐ์ ํ์ธํด๋ณด๋ findAll()๋ก ๋ชจ๋ ์ํฐํฐ๋ฅผ ์ฐพ๊ณ ํ๋์ฉ ์ญ์ ํ๋ค. ๊ฐ ์ํฐํฐ๋ฅผ ๊ฐ๋ณ์ ์ผ๋ก ์ญ์ ํ๊ณ , ํธ๋์ญ์
์ด commit๋ ๋๋ง๋ค ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ..
Spring Framework/JPA
[Failed to add the foreign key constraint. Missing index for constraint 'FKe6nwysthx2dnq1ikoe3u9gkxp' in the referenced table 'area'] ์ด ERROR๊ฐ ์ฐธ ๊ฑฐ์ฌ๋ ธ๋ค. ERROR์์๋ ๋ฐ์ดํฐ๊ฐ ์๋ง๊ฒ ๋ค์ด๊ฐ๊ธฐ ๋๋ฌธ์ด๋ค. ๋์ถฉ ์ด๋ค ์๋ฌ์ธ์ง๋ ํ์
ํ๋ค.area_code๊ฐ unique ์กฐ๊ฑด์ด ๊ฑธ๋ ค์์ง ์๊ธฐ ๋๋ฌธ์ FK ์ ์ฝ์กฐ๊ฑด์ ์์ฑํ ์ ์๋ค๋ ๊ฒ์ด๋ค. ์ด๋ค ์ํฉ์ธ์ง...Weather ์ํฐํฐ์ Area ์ํฐํฐ๊ฐ ์ผ๋์ผ ๋งคํ๋์ด์๊ณ ,referencedColumnName ์ต์
์ ์ค์ AREA_CODE๋ก Area ํ๋๋ฅผ ์ฐธ์กฐํ๋ค. @Entity@Table(name = "WEATHER")public class ..
์๊ณ ๋ฆฌ์ฆ/BOJ
โจ ๊ทธ๋ฆฌ๋ & ์ ๋ ฌ https://www.acmicpc.net/problem/2457 2457๋ฒ: ๊ณต์ฃผ๋์ ์ ์ ์ฒซ์งธ ์ค์๋ ๊ฝ๋ค์ ์ด ๊ฐ์ N (1 ≤ N ≤ 100,000)์ด ์ฃผ์ด์ง๋ค. ๋ค์ N๊ฐ์ ์ค์๋ ๊ฐ ๊ฝ์ด ํผ๋ ๋ ์ง์ ์ง๋ ๋ ์ง๊ฐ ์ฃผ์ด์ง๋ค. ํ๋์ ๋ ์ง๋ ์๊ณผ ์ผ์ ๋ํ๋ด๋ ๋ ์ซ์๋ก ํํ๋๋ค. ์๋ฅผ ๋ค์ด์, www.acmicpc.net ๐ ๊ณ ๋ คํด์ผํ ์ ๋ ์ง๋ฅผ ๋น๊ตํ๊ธฐ ์ํด ์
๋ ฅ์ผ๋ก ์ฃผ์ด์ง ์ ๋ณด๋ฅผ ๋์๋น๊ต ๊ฐ๋ฅํ๊ฒ๋ ์ ์๋ก ๋ฐ๊พธ๊ธฐ 3/1 ~ 11/30 ๊น์ง๋ง ํ์ธํ๋ฉด ๋๋ค. ๊ฝ์ด ์ง๋ ๋ ์๋ ๊ฝ์ ๋ณผ ์ ์๋ค. ์
๋ ฅ์ผ๋ก ์ฃผ์ด์ง ๋ ์ง๋ฅผ ๊ฝ์ด ํ ๋ ์ง๊ฐ ์ด๋ฅธ ์, ๋ง์ฝ ํ ๋ ์ง๊ฐ ๊ฐ๋ค๋ฉด ์ง ๋ ์ง๊ฐ ์ด๋ฅธ ์์ผ๋ก ์ ๋ ฌ์์ผ์ผ ํ๋ค. ๐น๏ธ ํ์ด ๊ณผ์ ๋ชป ํ์ด์ ํ์ด๋ฅผ ๋ณด๊ณ ๋ค์ ํ์๋ค. Olympia..
DevOps/โ๏ธ CI&CD
์ด์ ๊ธ์์ GitHub Actions๋ฅผ CI์ ์ฉ๋๋ก ์ฌ์ฉํ๊ณ , ์ฝ๋์ ์๋ ๋ฐฐํฌ๋ฅผ ์ํ AWS CodeDeploy๋ฅผ ๊ตฌํํด๋ณด๊ฒ ๋ค. GitHub Actions๋ฅผ ์ฌ์ฉํด์ CI๋ฅผ ๊ตฌ์ถํ๊ณ , AWS CodeDeploy๋ก CD๋ฅผ ๊ตฌ์ถํด ์คํ๋ง ํ๋ก์ ํธ๋ฅผ ์๋ ๋ฐฐํฌํ ๊ฒ์ด๋ค. ๊ฐ๋จ ์์ฝ GitHub์ pushํ๋ฉด GitHub Actions๊ฐ ์๋์ผ๋ก ์คํ ๐ gradlew build ๋ช
๋ น์ด๋ก ๋น๋ํ์ฌ ์คํํ ์ ์๋ jar ํ์ผ ์์ฑ ๋ฐฐํฌ์ ํ์ํ jar ํ์ผ๊ณผ shell script ํ์ผ์ ์์ถํด์ zip ํ์ผ์ AWS S3๋ก ์
๋ก๋ EC2์ ์ค์น๋์ด ์๋ CodeDeploy Agent๊ฐ S3์ ์
๋ก๋๋ zip ํ์ผ์ ๊ฐ์ ธ์์ ๋ฐฐํฌ CodeDeploy Agent๋ S3์์ zip ํ์ผ์ ๋ด๋ ค๋ฐ๊ณ , appsp..
DevOps/โ๏ธ CI&CD
Jenkins์ GitHub Actions์ ์ฐจ์ด์ ์ ์์๋ณด๊ธฐ ์ํด ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ๋ชจ๋ ์ฌ์ฉํ์ฌ ๋ฐฐํฌ ์๋ํ๋ฅผ ์งํํ๋ค. (Jenkins์ ๊ด๋ จ๋ ๊ธ๋ ์์ฑํ๊ณ ์์ผ๋ ์๋ ์ถ๊ฐํ ๋ด์ฉ์ด ๋ง๋ค๋ณด๋ ์์์ ์ฅ์์ ๋ฌปํ์ง ์ค๋๋ค.. ) GitHub Actions์ Jenkins ๋ณด๋ค ๊ฐ๋จํ๋ค. ์ฌ์ฉ๋ฒ์ ๊ธฐ๋กํ๊ณ ๋์ ์ฐจ์ด์ ์ ๊ฐ๋จํ๊ฒ ๊ธฐ๋กํ๊ณ ์ ํ๋ค. โ๏ธ CI/CD์ GitHub Actions CI/CD ๊ฐ๋
์ Jenkins์ ๊ด๋ จ๋ ๊ธ์ ์์ฑํ๋ฉด์ ์ธ๊ธํ๊ธด ํ์๋ค. CI/CD(์ง์์ ํตํฉ / ์ง์์ ๋ฐฐํฌ)๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ์ํฌํ๋ก์ฐ๋ฅผ ์๋ํํ๊ธฐ ์ํด์์ด๋ค. ๊ถ๊ทน์ ์ผ๋ก๋ ์ฌ์ฉ์์๊ฒ ๋น ๋ฅด๊ฒ ์ต์ ํ๋ก์ ํธ๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด์์ด๊ธฐ๋ ํ๋ค. ์ง์์ ํตํฉ - CI (Continuous Integra..