๐Ÿ’ป ๊ฐœ๋ฐœ

๋ณดํ†ต ๋ฆฌ์•กํŠธ์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ useEffect ์•ˆ์—์„œ ๊ฐ€์ ธ์˜ค์ง€๋งŒ Next.js ์—์„œ๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.1. getStaticProps- Static Generation์œผ๋กœ ๋นŒ๋“œํ•  ๋•Œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜จ๋‹ค. (๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด์คŒ)- getStaticProps ํ•จ์ˆ˜๋ฅผ async๋กœ export ํ•˜๋ฉด, getStaticProps์—์„œ ๋ฆฌํ„ด๋˜๋Š” props๋ฅผ ๊ฐ€์ง€๊ณ  ํŽ˜์ด์ง€๋ฅผ pre-render ํ•œ๋‹ค.- ๋นŒ๋“œํ•  ๋•Œ ํŽ˜์ด์ง€๋ฅผ ๋ Œ๋”๋ง ํ•œ๋‹ค. getStaticProps๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•  ๋•Œ- ํŽ˜์ด์ง€๋ฅผ ๋ Œ๋”๋ง ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ๋ณด๋‹ค ๋จผ์ € ๋นŒ๋“œ ์‹œ๊ฐ„์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ- ๋ฐ์ดํ„ฐ๋ฅผ Headless CMS์—์„œ ๊ฐ€์ ธ์˜ฌ ๋•Œ- ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต๊ฐœ์ ์œผ๋กœ ์บ์‹œ ํ•  ์ˆ˜ ์žˆ์„ ๋•Œ (์‚ฌ์šฉ์ž๋ณ„ X)- ํŽ˜์ด์ง€๋Š” ๋ฏธ๋ฆฌ ๋ Œ๋”๋ง ..
1. ์„ค์ •ํ•˜๊ธฐbuild.gradleimplementation 'org.springframework.boot:spring-boot-starter-actuator'implementation 'io.micrometer:micrometer-registry-prometheus' application.ymlmanagement: endpoint: health: show-components: always # show-details: always endpoints: web: exposure: include: "*" info: java: enabled: true os: enabled: true env: enabled: tr..
users:100:profile: ์‚ฌ์šฉ์ž๋“ค ์ค‘์—์„œ PK๊ฐ€ 100์ธ ์‚ฌ์šฉ์ž ํ”„๋กœํ•„products:123:details: ์ƒํ’ˆ๋“ค ์ค‘์—์„œ PK๊ฐ€ 123์ธ ์ƒํ’ˆ์˜ ์„ธ๋ถ€์‚ฌํ•ญ
ํ˜„์žฌ ์ง„ํ–‰ ์ค‘์ธ ํ”„๋กœ์ ํŠธ๊ฐ€ GitHub ์„œ๋น„์Šค์— ๋งค์šฐ ๋งŽ์ด ์˜์กดํ•œ๋‹ค.GitHub OAuth ๋กœ๊ทธ์ธ์„ ์ง„ํ–‰ํ•˜๊ณ  ๋ฐœ๊ธ‰๋˜๋Š” GitHub ์„œ๋น„์Šค์˜ Access Token๊ณผ Refresh Token ์ด ํ•„์ˆ˜์ ์œผ๋กœ ํ•„์š”ํ–ˆ๋‹ค.๊ทผ๋ฐ gho_ ํ˜•์‹์˜ Access Token ๋งŒ ๋‚ด๋ ค์ฃผ๊ณ  Refresh Token ์€ ๋‚ด๋ ค์ฃผ์ง€ ์•Š์•˜๋‹ค..์ด๋ ‡๊ฒŒ ๋˜๋ฉด Access Token ์ด ๋งŒ๋ฃŒ๋  ๋•Œ๋งˆ๋‹ค redirect ํ•ด์„œ ์ƒˆ๋กœ์šด Access Token์„ ๊ฐฑ์‹ ํ•ด์ค˜์•ผ ํ•˜๋Š”๋ฐ.. ๋„ˆ๋ฌด ๋ถˆํŽธํ•˜๋‹ค.๊ฑฐ์˜ ์ƒˆ๋กœ ๋กœ๊ทธ์ธ์„ ๋‹ค์‹œ ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋‹ค. gho_ ํ˜•์‹์œผ๋กœ๋งŒ ๋‚ด๋ ค์คฌ๋˜ ์ด์œ ๊ฐ€ OAuth Apps๋กœ ๋งŒ๋“ค์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค..GitHub Apps๋กœ ๋งŒ๋“ค๊ณ  Refresh Token์„ ๋‚ด๋ ค์ค„ ๊ฑฐ๋ƒ? ์— ์ฒดํฌํ•ด ์ฃผ๋ฉด ghu_ ํ˜•์‹์œผ๋กœ Access To..
AWS S3์— ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ฉด์„œ, ์นœ๊ตฌ์™€ S3๋ฅผ ํ•จ๊ป˜ ์“ฐ๊ธฐ ์œ„ํ•ด IAM ๊ณ„์ •์„ ์ƒ์„ฑํ•ด S3 ์ ‘๊ทผ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ–ˆ๋‹ค. ํ•„์š”ํ•œ ์ถ”๊ฐ€ ๊ถŒํ•œ์ด ์žˆ๋‹ค๋ฉด IAM ์ •์ฑ…์— ์„ค์ •ํ•ด ์ฃผ๋ฉด ๋~1. AWS์—์„œ IAM์„ ๊ฒ€์ƒ‰ํ•œ๋‹ค. 2. ์ขŒ์ธก์— "์‚ฌ์šฉ์ž" ๋ฉ”๋‰ด ํด๋ฆญ ํ›„ "์‚ฌ์šฉ์ž ์ƒ์„ฑ" ์ฃผํ™ฉ์ƒ‰ ๋ฒ„ํŠผ ํด๋ฆญ 3. ์‚ฌ์ง„์ฒ˜๋Ÿผ ์ฒดํฌํ•œ ํ›„ ๊ณ„์ • ์ƒ์„ฑํ•˜๊ธฐ 4. ์ฝ˜์†” ๋กœ๊ทธ์ธ URL๋กœ ์ ‘์†ํ•˜๊ณ  ๋กœ๊ทธ์ธํ•˜๊ธฐ
dev ํ™˜๊ฒฝ์ด ์•„๋‹ˆ๋ฉด h2 console์„ ์‚ฌ์šฉํ•  ์ผ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— dev ํ™˜๊ฒฝ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ๋” ๊ตฌ์„ฑํ•œ๋‹ค. spring: h2: console: enabled: true@Bean@ConditionalOnProperty(name = "spring.h2.console.enabled", havingValue = "true")public WebSecurityCustomizer configureH2ConsoleEnable() { return web -> web.ignoring() .requestMatchers(PathRequest.toH2Console());}
์„œ๋น„์Šค๋ฅผ ์šด์˜ํ•˜๋‹ค ๋ณด๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜๋ฐ–์— ์—†๋‹ค.์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ง์ ‘ EC2์— ์ ‘์†ํ•ด์„œ ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•˜๊ณ .. ๋งค์šฐ ๋ฒˆ๊ฑฐ๋กญ๋‹ค.์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด์†Œํ•˜๊ณ ์ž ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด Slack์— ์•Œ๋ฆผ์ด ์ „์†ก๋˜๊ฒŒ๋” ๊ตฌํ˜„ํ•ด ๋ดค๋‹ค.1. Slack Webhooks ์ถ”๊ฐ€ํ•˜๊ธฐ์•Œ๋ฆผ์ด ์ „์†ก๋  ์ฑ„๋„ ์šฐํด๋ฆญ -> ์ฑ„๋„ ์„ธ๋ถ€์ •๋ณด ๋ณด๊ธฐ -> ํ†ตํ•ฉ -> ์•ฑ ์ถ”๊ฐ€ -> "Incoming Webhooks" ์ถ”๊ฐ€ 2. ๊ตฌ์„ฑ ์„ค์ • ํ•ด์ฃผ๊ธฐ 3. ์˜์กด์„ฑ ์ถ”๊ฐ€ํ•˜๊ธฐimplementation 'net.gpedro.integrations.slack:slack-webhook:1.4.0' 4. Slack API ์‚ฌ์šฉ ์„ค์ •ํ•˜๊ธฐapplication.ymlslack: webhook: url: URL ์ ์–ด์ฃผ๊ธฐ SlackLogAppenderConfig.java@Con..
@EnableBatchProcessing -> DefaultBatchConfiguration- ๋ฐฐ์น˜ ์ž‘์—… ๊ตฌ์„ฑ ๋ฐ ์‹คํ–‰์— ํ•„์š”ํ•œ ์œ ํ‹ธ๋ฆฌํ‹ฐ ๋นˆ์„ ์ž๋™์œผ๋กœ ์„ค์ •- Spring Batch 5.0- ๋‘˜ ์ค‘ ํ•˜๋‚˜๋งŒ ์‚ฌ์šฉ- ์„ ์–ธ์  vs ํ”„๋กœ๊ทธ๋ž˜๋ฐ- @EnableBatchProcessing ์‚ฌ์šฉ์€ ๊ถŒ์žฅํ•˜์ง€ ์•Š์Œ Batch ์•„ํ‚คํ…์ฒ˜ Chunk-oriented & AbstractPagingItemReader- ํŽ˜์ด์ง• ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋ณธ abstract ํด๋ž˜์Šค- AbstractPagingItemReader๋ฅผ ์ƒ์†ํ•˜๋Š” ํด๋ž˜์Šค   > JdbcPagingItemReader   > JpaPagingItemReader ClassifierComposite-ItemWriter- ๋ถ„๊ธฐ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ItemWriter์—๊ฒŒ ์ „๋‹ฌ- th..
openmpy
'๐Ÿ’ป ๊ฐœ๋ฐœ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก