๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ
200
์ฟผ๋ฆฌ ์คํ ๊ณํ :: Memoize ์ Materialize
1
2025.08.07
โ
1. Memoize๋ฑ์ฅ ๋ฒ์ : PostgreSQL 14 ์ด์์ญํ :Nested Loop Join์์ ์ค๋ณต๋ ํ๋ผ๋ฏธํฐ ์ค์บ ๊ฒฐ๊ณผ๋ฅผ ์บ์ฑํ์ฌ ์ฑ๋ฅ์ ๋์ด๋ ๊ธฐ๋ฅ์
๋๋ค.์๋ฅผ ๋ค์ด, ๋ ํ
์ด๋ธ์ Nested Loop๋ก ์กฐ์ธํ ๋, ๋ด๋ถ ํ
์ด๋ธ์์ ๊ฐ์ ์กฐ๊ฑด์ผ๋ก ๋ฐ๋ณต ์กฐํ๊ฐ ๋ฐ์ํ๋ฉด, Memoize๊ฐ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํด ์ฌ์ฌ์ฉํฉ๋๋ค.์ฆ, **“๊ฐ์ ์กฐ๊ฑด์ผ๋ก ๋ค์ ๊ฒ์ํ ํ์๊ฐ ์๋๋ก ์บ์”**ํ๋ ์ญํ .ํน์ง:์บ์ ํค: ์ธ๋ถ ๋ฃจํ์์ ์ ๋ฌ๋๋ ํ๋ผ๋ฏธํฐ ๊ฐ์บ์ ๋ชจ๋: ๋
ผ๋ฆฌ์ ์บ์ (ํ์ ์ ์ค๋๋ ๊ฐ์ ์ ๊ฑฐ)๊ธฐ๋ณธ์ ์ผ๋ก enable_memoize๋ ON ์ํEXPLAIN์์ Memoize ๋
ธ๋๋ก ํ์๋จ์ฅ์ :LATERAL JOIN, ์ค๋ณต ํค๊ฐ ๋ง์ ์กฐ์ธ์์ ์์ญ~์์ฒ ๋ฐฐ ์ฑ๋ฅ ํฅ์ ๊ฐ๋ฅํนํ JOIN LATERA..
์คํฌ๋ฉ:: ์ ์ด์ฟผ๋ฆฌ๋ฅผ ์์ง๋ ์ฌ์ฉํ๋์? ์์ฆ์ ์ jQuery๋ฅผ ์์ฐ๋๊ฐ์?
3
2025.08.02
https://www.samsungsds.com/kr/insights/jquery.html ์ ์ด์ฟผ๋ฆฌ(jQuery)๋ฅผ ์์ง๋ ์ฌ์ฉํ๋์? - ์ ์ด์ฟผ๋ฆฌ์ ํ์ฌ์ ๋ฏธ๋ | ์ธ์ฌ์ดํธ๋ฆฌํฌํธ | ์ผ์ฑSDS์ ์ด์ฟผ๋ฆฌ๋ ์น์ฌ์ดํธ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ฝ๊ฒ ํ์ฉํ ์ ์๋๋ก ๋์์ฃผ๋ ์คํ์์ค ๊ธฐ๋ฐ์ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์
๋๋ค. “write less, do more ์ ๊ฒ ์์ฑํ๊ณ , ๋ง์ ๊ฒ์ ํ์ ”๋ผ๋ ๋ชจํ ๋ก 2006www.samsungsds.comhttps://magnificent7.tistory.com/entry/why-not-use-jquery-reflow-repaint ์์ฆ์ ์ jQuery ๋ฅผ ์์ฐ๋๊ฐ ?jQuery ๋ฅผ ๋์ด์ ์ฌ์ฉํ์ง ์๋ ์ด์ ๋ฅผ ์๊ธฐ ์ํด์ , ๊ทธ ๋น์ jQuery๋ฅผ ์ ๋ง์ด ๋์
ํ๊ณ ์ฌ์ฉํ๋์ง๋ฅผ ..
backend :: Velocity ๋ฌธ๋ฒ์ ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ๋ฐ์์ํฌ ์ ์๋ค.
2025.05.09
๊ฐ์ํ๋ก์ ํธ์์ ๋ญ๊ฐ... ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ก์๋จน๋๋ค...DB ์ ์ํ๊ฒ ๋ฐํ์ด ์๋๋?ํ๋ฉด์ ์ฐพ์๋ณด๊ฒ ๋จ.๊ฒฐ๋ก ์ velocity ๋ฌธ๋ฒ์ ์ฌ์ฉํ๋๊ฒ ๋ฌธ์ ๊ฐ ๋ ์๋ ์๋ค.. ์ด๊ฒ์ ๊ฒ ์ฐพ์๋ณด๋velocity๋ ์์ ์ mybatis ์์ ๋ฌธ๋ฒ์ ๋ง์ด ์ง์ํ์ง ์์ ๋ ์ฐ๋ ๊ฑฐ๋ผ๊ณ ํ๋ค.์์ฆ์ Mybatis ์ ๋ฌธ๋ฒ์ ์ ๋งํผ ์ง์ํ๋๋ฐ๋ค ์ฑ๋ฅ๋ ์ข์์ Mybatis ๋ฅผ ๋ ์ ํธํ๋ค๊ณ ํจ. ๋ด์ฉ ์ค๋ช
lang="velocity" ๋ฌธ๋ฒ์ ๊ฒฝ์ฐ,Mybatis๊ฐ SQL์ ์คํํ๊ธฐ ์ ์ Velocity ์์ง์ ํตํด ํ
ํ๋ฆฟ์ ํ์ฑํ๊ณ ๋์ ์ผ๋ก SQL์ ๊ตฌ์ฑํ๋ค. ๊ฐ SQL ์์ $_parameter.xxx ํํ๋ก ํ๋ผ๋ฏธํฐ๋ฅผ Velocity ๋ฌธ๋ฒ์ผ๋ก ๋์ฒด >์ด๋, Velocity ํ์ฑ ์ AST ํธ๋ฆฌ (ASTReference, A..
React :: ๋น๋ ํ์ผ ๋ถ์ ํด (๋ฒ๋ค ์ฌ์ด์ฆ ์ต์ ํ)
2025.04.14
๋ฆฌ์กํธ๋ฅผ ๋ฐฐํฌํ๋ ค๋ฉด npm run build ๋ฅผ ํด์ผํ๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ก ๋์จ build ๋ js ํ์ผ์ด ์์ฑ๋๊ฒ ๋๋ค.๊ทผ๋ฐ... ์ด ๋ฒ๋ค์ด๋ผ๊ณ ํ๋ js ํ์ผ์ ํฌ๊ธฐ๊ฐ ํฌ๋ฉด,SEO ์ ๋จ์ ์ด๋ผ๊ณ ํ ์ ์๋ '์ฒซ ๋ก๋ฉ ์๋'๊ฐ ๋ถ๊ฐ๋๋ฏ๋ก, ๋ฒ๋ค ์ฌ์ด์ฆ ๊ด๋ฆฌ๊ฐ ์ค์ํด์ง๊ฒ ๋จ. ์ข
์ข
์ด ๋ฒ๋ค ์ฌ์ด์ฆ๋ฅผ ๊ฒํ ํด์ฃผ์ด์ผ ํ๋๋ฐ, ์ด๊ฒ ์ผ๋ง๋ ํฐ์ง ๋ ์ด๋๋ฅผ ํ์ธํด์ผํ๋์ง๋ฅผ ์ด๋ป๊ฒ ์ ์ ์์๊น? ...ํํ ์๋ ค์ ธ ์๋ ๋น๋ ํ์ผ ๋ถ์ ํด์ธ webpack-bundle-analyzer ๊ฐ ์๋ค. ์ง๊ด์ ์ธ ์๊ฐ ์์๋ฅผ ์ ๊ณตํด์ฃผ์ง๋ง.. ์ด๊ฑฐ๋ ๋ eject ๋ฅผ ํด์ผํ๋ ์ํ์ด ์๊ณ ,ํ ๋ฒ eject ๋ฅผ ํด๋ฒ๋ฆฌ๋ฉด ๋๋๋ฆฌ๊ธฐ๊ฐ ์ด๋ ค์์ง๋ค. ์ฌ๊ธฐ์ ์ ๊น. Ejecteject ์ ์ฅ์ - CRA(Create-React-App) ์์ ..
์คํฌ๋ฉ :: 2025๋
๋ฆฌ์กํธ ๊ธฐ์ ์คํ ๊ฐ์ด๋
2025.03.29
https://yozm.wishket.com/magazine/detail/3029/?utm_source=stibee&utm_medium=email&utm_campaign=newsletter_yozm&utm_content=contents 1. Next.js2. Shadcn UI3. React Query ๊ฐ๋ณ๊ฒ ๊ณต๋ถํด๋ณด๊ธฐ
์ฉ์ด :: ์ ํ๋ฆฌ์ผ์ด์
์ฑ๋ฅ ๋ชจ๋ํฐ๋ง(APM)
2025.02.03
APM(Application Performance Management/Monitoring)์ ํ๋ฆฌ์ผ์ด์
์ ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง๊ณผ ์ฅ์ ์์ธก์ ํตํด ์ต์ ์ ์ ํ๋ฆฌ์ผ์ด์
์ํ๋ฅผ ๋ณด์ฅํ๊ณ ์ ์งํ๋ ์ผ๋ จ์ ๊ด๋ฆฌ ์ฒด๊ณ.์ฆ,์ ํ๋ฆฌ์ผ์ด์
์ ์ฑ๋ฅ์ ๋ชจ๋ํฐ๋งํ๊ณ ๊ฒฝ์ฐ์ ๋ฐ๋ผ ๋ฐ์ํ ์ ์๋ ์ฅ์ ๋ฅผ ์ ์ํ ๊ฐ์งํ๊ณ ๋์ฒํ์ฌ ๋ด๋นํ๊ณ ์๋ ์ ๋ณด์์คํ
์ ์ฑ๋ฅ์ ์ต์ ์ ์ํ๋ก ์ ์งํ๋ ๊ฒ์ด APM์ ํต์ฌ ์ญํ . ๋ฏธ๋ค์จ์ด(WebLogic, Tomcat ๋ฑ..)์์ ์ผ์ด๋๋ ํธ๋์ญ์
์ ์ฌ์ฉ ์๊ฐ์ ๋ถ์ํ์ฌ ๊ฐ ๋จ๊ณ ๋ณ๋ก ์ฑ๋ฅ์ ๋ฏธ์น๋ ์ํฅ์ ์์ธ์ ํ์
. A(Application)Web Application์ ์๋ฏธ.์ฌ์ฉ์์ ์น ์๋น์ค ๊ฐ์ ์ํธ ์์ฉ์ ํ๋ฉฐ ์ฑ๋ฅ์ ๊ด๋ฆฌํด์ฃผ๋ ์๋น์ค. P(Perforamance)์ ํ๋ฆฌ์ผ์ด์
์ฑ๋ฅ์น ์๋น์ค..
Springboot :: HikariCP Option ๊ณผ ์ฑ๋ฅ ์ต์ ํ. (Hikari ํ๋)
1
2025.01.20
Springboot :: HikariCP ๋?์ปค๋ฅ์
ํ(Connection Pooling)์ ์ ๊ณตํ๋ JDBC Datasource์ ๊ตฌํ์ฒด. ์ฌ์ ์ง์JDBC(Java Database Connectivity)์๋ฐ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ํ ์ ์๋๋ก ํด์ฃผ๋ ์๋ฐ API.JDBC๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์๋ฃ๋ฅผ ์ฟผ๋ฆฌbornatnoon.tistory.com ์ฐ์ ๋ค์ด๊ฐ๊ธฐ ์ ์ ์์ HikariCP ๊ฐ ๋ญ์ง ๊ฐ๋
์ ๋ชจ๋ฅด๊ฒ ๋ค๋ฉด.์์ ๊ธ์ ์ฐธ์กฐํ๋๋ก ํ์. HikariCP ์ต์
GitHub - brettwooldridge/HikariCP: ๅ
HikariCPใปA solid, high-performance, JDBC connection pool at last.ๅ
HikariCPใปA solid, high-performanc..
Springboot :: HikariCP ๋?
2025.01.20
์ปค๋ฅ์
ํ(Connection Pooling)์ ์ ๊ณตํ๋ JDBC Datasource์ ๊ตฌํ์ฒด. ์ฌ์ ์ง์JDBC(Java Database Connectivity)์๋ฐ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ํ ์ ์๋๋ก ํด์ฃผ๋ ์๋ฐ API.JDBC๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์๋ฃ๋ฅผ ์ฟผ๋ฆฌํ๊ฑฐ๋ ์
๋ฐ์ดํธํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ค. DB Connection Pool์ผ๋ฐ์ ์ธ ๋ฐ์ดํฐ ์ฐ๋ ๊ณผ์ ์ ์น ์ ํ๋ฆฌ์ผ์ด์
์ด ํ์ํ ๋๋ง๋ค DB์ ์ฐ๊ฒฐํ์ฌ ์์
ํ๋ ๋ฐฉ์→ ํ์ํ ๋๋ง๋ค ์ฐ๋ํ์ฌ ์์
ํ ๊ฒฝ์ฐ DB ์ฐ๊ฒฐ์ ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ฆฌ๋ issue ๋ฐ์→ ์น ์ดํ๋ฆฌ์ผ์ด์
์ด ์คํ๋จ๊ณผ ๋์์ ์ฐ๋ํ DB์์ ์ฐ๊ฒฐ์ ๋ฏธ๋ฆฌ ์ค์ ํด๋๋ฉด ๋ฌธ์ ํด๊ฒฐ ๊ฐ๋ฅ!๊ทธ๋ฆฌ๊ณ ํ์ํ ๋๋ง๋ค ๋ฏธ๋ฆฌ ์ฐ๊ฒฐํด ๋ ์ํ๋ฅผ ์ด์ฉํด ๋น ๋ฅด๊ฒ DB์ ์ฐ๋ํ์ฌ ์์
์ ํ๋ฉด ๋๋ค.. ์ด๋ฐ ์์ผ๋ก๋ฏธ๋ฆฌ ..
intelliJ(Community) :: Springboot active profile ์ค์ ํ๊ธฐ (ํ๊ฒฝ ๋ณ์ ๊ธฐ๋ณธ ์ค์ )
2025.01.20
๋ณดํต ํ๊ฒฝ ๋ณ์๋ฅผ ์ฌ์ฉํ ๋application.yml, application-dev.yml, application-local.yml์ผ๋ก ํ์ผ์ ๋ถ๊ธฐํ์ฌ ์์ฑํ๊ณ 1. application.yml ์์ ๋์์ํฌ ๋ ๋ฐ๊ฟ์ค๋ค.spring: profiles: active: local ์๋ฅผ ๋ค๋ฉด ์ด๋ฐ ์์ผ๋ก.. 2. active profile ์ ์ง์ ํด๋๋ค.. ์ฌ๊ธฐ์ ์ฐ๋ฆฌ๋ intellij Community ๋ฒ์ ์ ์ฌ์ฉํ์ฌ active profile ์ ์ง์ ํ๋ ๋ฐฉ๋ฒ์ ์์๋ณผ ๊ฒ์ด๋ค.(application.yml ์ด ๋ณด๊ธฐ์๋ ์ง๊ด์ ์ด๋ ๊ฐ๋ฐ์ ์งํํ๋ฉด์ ์ฑ๊ฒจ์ผํ ๊ฒ๋ค์ด ์๊ธฐ๊ธฐ ๋๋ฌธ์..active profile ๋ก local ์ ๊ณ ์ ๊ฐ์ผ๋ก ๋๋ฉด ํธํ ๋ฏ ํ๋ค. (์ฝ๋๋ dev ๋ก ๋๊ณ ) )๋ฐฉ๋ฒ 1...
250117 TIL
2025.01.17
https://yozm.wishket.com/magazine/detail/2919/?utm_source=stibee&utm_medium=email&utm_campaign=newsletter_yozm&utm_content=contents ๋ด๊ฐ ‘์ฐจํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ’๋ฅผ ๋ง๋ค๋ฉฐ ๋ฐฐ์ด ๊ฒ๋ค | ์์ฆIT“์ฃ์กํ์ง๋ง, ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ง์ํ์ง ์๋ ๊ธฐ๋ฅ์ด๋ผ...” ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ผ๋ฉด ๋๊ตฌ๋ ํ ๋ฒ์ฏค ์ด๋ฐ ๋ง์ ํด๋ณธ ์ ์ด ์์ ๊ฒ๋๋ค. ํนํ ๋ฐ์ดํฐ ์๊ฐํ๊ฐ ์ค์ํ ํ๋ก์ ํธ๋ฅผ ์งํํ ๋๋ฉด ๋yozm.wishket.com ์๋
์ ์ฌ์ค ์ปดํฌ๋ํธ๋ฅผ ๋ถํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ๋ฐํ์๋๋ฐ... ๊ทธ๋ ๋๋ ์๊ฐ๋ค์ด๋ ๋น์ทํ ๊ฒ๋ค์ด ๊ธฐ์ฌ๋์ด ์์ด์ ๊ฐ์ง๊ณ ์๋ค.๋๋ ๋น๋ก ํ์ฌ์ ์ํด์ ๊ฐ๋ฐํ ๊ฒ์ด๋ผ ์ฝ๋๋ฅผ ๊ณต๊ฐํ์ง๋ ๋ชปํ์ง๋ง์ด ์ฌ๋์ ๋ฐฉ๋ฒ๋ก ..
Javascript :: ๋์ ์ผ๋ก ๋ณ์ ์์ฑ
2024.11.26
// ๊ฐ์ฒด ์์ฑlet dynamicVars = {};// ๋์ ์ผ๋ก ๋ณ์๋ช
์์ฑfor (let i = 0; i ์ด๋ ๊ฒ ๋ฌด์ง์ฑ ๋ณ์๋ ์ ์ธํ ์ ์๊ณ ,${i} ๋์ ๊ธฐ์กด์ ์ ์ธํด๋์๋ ๋ณ์๋ค์ ์ฌ์ฉํ ์๋ ์๋ค. ๋์ ๊ฒฝ์ฐ์๋ ๋ฐฐ์ด ์์ ๊ฐ์ ํด๋นํ๋ ๋ฐ์ดํฐ์ ๊ฒ์ฆํ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํด๋ฌ์ผ ํด์ ๋์ ๋ณ์๋ฅผ ๊ตฌํํ๊ฒ ๋์์. ์๋ฅผ ๋ค๋ฉด ๊ทธ๋ฆฌ๋์์ ๋ฐฐ์ด[] ์์ ์๋ ๊ฐ๊ณผ ์ด๋ฆ์ด ๊ฐ์ ์ปฌ๋ผ์ ๋ฐ์ดํฐ๋ฅผ ํ์ธํ๋ ์ผ์ด๋ค.๊ทธ๋๋ ์๋์ ๊ฐ์ด ๋ณํํด์ ์ฌ์ฉํ ์๋ ์๋ค. const checkColumns = ['Nation', 'Dept', 'Name', 'Age'] _.forEach(dataList, (row, index) => { let dynamicVars = {}; // ๋์ ์ผ๋ก ๋ณ์๋ช
์์ฑ for (let i ..
๋คํธ์ํฌ :: TCP SACK(Selective Acknowledgements) ์ด๋?
1
2024.11.20
TCP ์ก์ ์ต์
์ค ํ๋.* TCP SACK ์ ๋ํ RFC๊ฐ ๋์จ ๊ฒ์ด RFC 2018๋ก 1996๋
๋์ด๊ณ , RFC 2883์ด 2000๋
๋์ ๋์์ผ๋.. ์ง๊ธ ์ ๋งํ ์์คํ
์๋ ์ด ์ต์
์ด ์ ์ฉ๋์ด ์์ ๊ฒ์ด๊ณ , ์ฌ์ฉํ๊ณ ์์ด์ผ ํ๋๊ฒ ์ณ๋ค. ๊ทผ๋ฐ ํ์ธํด๋ณด๋ฉด ์ด SACK ์ต์
์ด enable ๋์ด ์๋ ๊ฒฝ์ฐ๋ ๋ง์. ํ์ธ์ด ํ์ํ ๋ฏ. TCP/IP ์์ SACK ์ต์
์ ์ฃผ์ง ์์ ๊ฒฝ์ฐ TCP/IP ์ ๋ํ ๊ฐ๋
์ด ๋ชจํธํ๋ค๋ฉด ์์ ์ด TCP/IP ๊ธ์ ์ฝ๊ณ ์ค๋๋ก ํ์. ์ฌ๊ธฐ์ ๋ค์๋ ์์์ ์ด์ด์ง๊ฒ ์์๋ฅผ ๋ค๋๋ก ํ ๊ฑฐ๋๊น.. ๋คํธ์ํฌ :: TCP/IP ๋?์ธํฐ๋ท์์ ์ปดํจํฐ๋ค์ด ์๋ก ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ฐ์ ์ฐ์ด๋ ํต์ ๊ท์ฝ์ธ ์ธํฐ๋ท ํ๋กํ ์ฝ ์ ๋ชจ์(set) ์ค ํ๋์ด์ ํ์ฌ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๊ณ ์๋ ์ธํฐ..