๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
TIL

2025๋…„ 1์›”

by syLim___ 2025. 1. 2.
728x90

2025.01.02 (๋ชฉ)

๋จธ์‹ ๋Ÿฌ๋‹ ์ฐ๋จน ํ–ˆ๋˜๊ฒƒ ์ด์ •๋ฆฌ ํ•ด๋ณด์•˜๋‹ค.

 

2025.01.03 (๊ธˆ)

- ์ฒซ ๋ฉด์ ‘์Šคํ„ฐ๋””๋ฅผ ์ง„ํ–‰ํ–ˆ๋‹ค.

- ๋‹ค๋“ค ๋„ˆ๋ฌด ๋Œ€๋‹ต์„ ์ž˜ํ•˜์‹œ๊ณ , ๋‚˜๋Š” ๋Œ€๋‹ต์„ ๋„ˆ๋ฌด ๋ชปํ•œ ๊ฒƒ ๊ฐ™์•„์„œ ๋งํ•˜๋Š” ์—ฐ์Šต์„ ์ •๋ง ๋งŽ์ด ํ•ด์•ผ๊ฒ ๋‹ค๊ณ  ๋А๊ผˆ๋‹ค.

- ๋‚˜๋Š” ๋ฌธ์žฅ์„ ์™„์„ฑํ•˜๋Š” ๊ฒƒ๋ถ€ํ„ฐ ์—ฐ์Šตํ•ด์•ผํ• ๋“ฏ

 

2025.01.04 (ํ† )

- ๋ฐ€๋ฆฐ ์ง‘์•ˆ์ผ ํ•˜๊ณ , ์šด์ „์—ฐ์Šตํ–ˆ๋‹ค.

 

2025.01.05 (์ผ)

- ์šด์ „ ์—ฐ์Šต์„ ํ–ˆ๋‹ค. ์˜ค๋Š˜์€ ์˜†์— ์•„๋น  ํƒœ์šฐ๊ณ  ์ง€ํ•˜์ฃผ์ฐจ์žฅ์— ๋“ค์–ด๊ฐ€์„œ ์ฃผ์ฐจ๊นŒ์ง€ ์„ฑ๊ณต!

- ๊ธˆ์š”์ผ ๋ฉด์ ‘ ์Šคํ„ฐ๋”” ๋ณต๊ธฐ๋ฅผ ํ–ˆ๋‹ค.

 

2025.01.06 (์›”)

- jar์— ๋Œ€ํ•ด์„œ ๋‹ค์‹œ ๊ณต๋ถ€ํ•ด ๋ณด์•˜๋‹ค.

- jar๊ฐ€ ์™œ ํ•„์š”ํ•œ์ง€ ,

- HTTP ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•ด์„œ ๊ฐ„๋‹จํžˆ ๋ณต์Šตํ•ด๋ณด์•˜๋‹ค.

- ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ ๊ต์žฌ๋ฅผ ๊ฒ€ํ† ํ•ด๋ณด์•˜๋‹ค. ๊ทธ๊ฑธ๋กœ ๊ณต๋ถ€ํ•  ์ƒ๊ฐ์— ์‹ ๋‚จ

- chirpstack ์˜คํ”ˆ api๋ž‘ ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ ์—ฐ๋™ ์ž‘์—… ํ–ˆ๋‹ค. DeviceProfileTemplate์ด๋ž‘ DeviceProfile ๋„๋ฉ”์ธ์— ๋Œ€ํ•ด์„œ

    ํ…Œ์ŠคํŠธ ์•„์ง ๋ชปํ•ด๋ดค๋‹ค.

 

2025.01.07 (ํ™”)

- ์›น์„œ๋ฒ„, CGI, WAS, ์จ๋ธ”๋ฆฟ์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ–ˆ๋‹ค.

๐Ÿ“„ ์›น์„œ๋ฒ„ VS ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„

๐Ÿ“„ CGI ํ”„๋กœ๊ทธ๋žจ

 

- ์Šคํ”„๋ง ์‹œํ—˜ ์ฑ„์ ์„ ํ•˜๋ฉด์„œ ์ฟผ๋ฆฌ ํ•ด์„ํ•œ๋‹ค๊ณ  ๋จธ๋ฆฌ๊ฐ€ ์•„ํŒ ๋”ฐ.

- ๊ทผํƒ€ ํ”„๋กœ์ ํŠธ์—์„œ ์—ด์‹ฌํžˆ ์˜คํ”ˆ์†Œ์Šค ์—ฐ๋™ api๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค.

    ์˜ค๋ธŒ์ ํŠธ ํ•˜๋‚˜์— ํ•„๋“œ๊ฐ€ 56๊ฐœ์”ฉ ์žˆ์–ด์„œ ์ด๊ฑธ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•ด์•ผํ• ์ง€ ๋ง‰๋ง‰ํ•œ ์ƒํ™ฉ์ด๋‹ค.

    ์ผ์ •์ด ๋งŽ์ด ๋ฐ€๋ ค์„œ ์ด์ œ ์ •๋ง ์—ด์‹ฌํžˆ ๋น ๋ฅด๊ฒŒ ์ง„ํ–‰ํ•ด์•ผํ•œ๋‹ค.

 

2025.01.08 (์ˆ˜)

- ์˜ค๋Š˜ ๊ทผ๋ฌด์‹œ๊ฐ„์—๋Š” ํ•˜๋ฃจ์ข…์ผ ์Šคํ”„๋ง ์ฑ„์ ์„ ํ–ˆ๋‹ค.

    ๋‚จ์˜ ์ฝ”๋“œ๋ฅผ ๋ณด๋‹ค ๋ณด๋‹ˆ ์ด๋Ÿฐ ๋ถ€๋ถ„์€ ๋‚ด ํ”„๋กœ์ ํŠธ์—์„œ๋„ ์ ์šฉํ•˜๋ฉด ์ข‹๊ฒ ๋‹ค! ์‹ถ์€ ๋ถ€๋ถ„์ด ์žˆ์—ˆ๋‹ค.

    ์˜ˆ๋ฅผ ๋“ค๋ฉด @ResponseStatus ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์ฝ”๋“œ๊ฐ€ ๋” ๊น”๋”ํ•ด์ง„๋‹ค๊ฑฐ๋‚˜..

 

- ๊ทผํƒ€ ํ”„๋กœ์ ํŠธ ๋„์ค‘ RestTemplate์„ ์‚ฌ์šฉํ•ด ์˜คํ”ˆ์†Œ์Šค API์— ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ์‘๋‹ต์„ ๋ฐ›์•„์˜ค๋Š” ๋ถ€๋ถ„์—์„œ,

    406 NOT ACCEPTABLE ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.

    ํ™•์ธํ•ด๋ณด๋‹ˆ ์š”์ฒญ์˜ Accept ํ—ค๋”์™€ ์‘๋‹ต์˜ Content-Type์€ ์ผ์น˜ํ–ˆ๋‹ค.

    ๊ทธ๋ ‡๋‹ค๋ฉด dto ๊ตฌํ˜„์ด ์ž˜๋ชป๋˜์—ˆ์„ ๋ฌธ์ œ์ผ ํ™•๋ฅ ์ด ๋†’์•˜๋‹ค.

 

    ์—๋Ÿฌ ์›์ธ์€ dto ํด๋ž˜์Šค์— Getter๊ฐ€ ์—†์–ด์„œ์˜€๋‹ค.

   @AllArgsConstructor, @Setter๋งŒ ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— @Setter๋ฅผ ์‚ญ์ œํ•˜๊ณ  @Getter๋ฅผ ์ ์–ด์ฃผ์—ˆ๋‹ค.

    ์งน์Šจ์ด ์—ญ์ง๋ ฌํ™”๋ฅผ ํ•˜๊ธฐ ์œ„ํ•œ ํด๋ž˜์Šค ์กฐ๊ฑด์— ๋Œ€ํ•ด์„œ ์กฐ๋งŒ๊ฐ„ ํฌ์ŠคํŒ… ํ•ด๋ด์•ผ๊ฒ ๋‹ค.

 

- ๊ทผํƒ€ ํ”„๋กœ์ ํŠธ์— ModelMapper๋ฅผ ๋„์ž…ํ•˜์˜€๋‹ค.

    ํ”„๋ก ํŠธ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ DeviceProfileTemplate dto๋ฅผ ๋ฐ›์•„์„œ, DeviceProfile ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ๋ฐ”๋””์— ๋‹ด์•„์„œ ์˜คํ”ˆ์†Œ์Šค API์— POST ์š”์ฒญ์„ ํ•˜๋Š” ์ž‘์—…์„ ํ•˜๋‹ค๋ณด๋‹ˆ, dto ํ•„๋“œ ์ˆ˜๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์•˜๋‹ค.

    DeviceProfileTemplate ํ•„๋“œ๋Š” 30๊ฐœ๊ฐ€ ๋„˜๊ณ , DeviceProfile ํ•„๋“œ๋Š” 60๊ฐœ์ฏค ๋˜์—ˆ๋‹ค. (๊ณตํ†ต ํ•„๋“œ 30๊ฐœ)

    ํ…œํ”Œ๋ฆฟ ๊ฐ์ฒด๋กœ๋ถ€ํ„ฐ DeviceProfile์„ ์ƒ์„ฑํ•˜๋ ค๋ฉด ํ…œํ”Œ๋ฆฟ ๊ฐ์ฒด์˜ ๋ชจ๋“  ํ•„๋“œ๊ฐ’์„ ๋ณต์‚ฌํ•ด์ฃผ์–ด์•ผ ํ–ˆ๋‹ค.

    ์ˆ˜์ž‘์—…์œผ๋กœ ํ•˜๋ ค๋‹ˆ ์ฝ”๋“œ๊ฐ€ ๋„ˆ๋ฌด ๊ณผํ•˜๊ฒŒ ๊ธธ์–ด์ ธ์„œ ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•๋“ค์„ ์ƒ๊ฐํ•ด๋ณด๋‹ค๊ฐ€,

    (BeanUtils, ModelMapper, ์ƒ์„ฑ์ž๊ตฌํ˜„ ๋“ฑ) ๋ชจ๋ธ๋งตํผ๋ฅผ ์ฑ„ํƒํ–ˆ๋‹ค.

 

- ๋ฐค์— ์ง‘์— ์™€์„œ๋Š” ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค์™€ ๋žŒ๋‹ค ๊ฐœ๋…์„ ๋ณต์Šตํ–ˆ๋‹ค. ๋‚ด์ผ์€ ๋ณต์Šตํ•œ ๋‚ด์šฉ์„ ํ† ๋Œ€๋กœ ์ œ๋Œ€๋กœ ํฌ์ŠคํŒ… ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

 

2025.01.09 (๋ชฉ)

- ์˜ค๋Š˜๋„ ์ฑ„์ ์ง€์˜ฅ. ์ฑ„์ ์„ ํ•˜๋ฉด์„œ ๊ณต๋ถ€๋„ ๋งŽ์ด ๋˜์—ˆ๋‹ค. ์˜ˆ์™ธ ์ฒ˜๋ฆฌ์˜ ์ค‘์š”์„ฑ์„ ๋А๊ผˆ๋‹ค.

 

- ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค์™€ ๋žŒ๋‹ค์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์ŠคํŠธ๋ฆผ์— ๋Œ€ํ•ด์„œ๋„ ํ•จ๊ป˜ ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค.

  ์‚ฌ์‹ค ๋žŒ๋‹ค์™€ ์ŠคํŠธ๋ฆผ์„ ์™œ ์จ์•ผํ•˜๋Š”์ง€ ์ •ํ™•ํ•œ ์ด์œ ๋ฅผ ๋ชฐ๋ž๋Š”๋ฐ, ์ด๋ฒˆ์— ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์กฐ๊ธˆ์€ ๊นจ์šฐ์นœ ๊ฒƒ ๊ฐ™๋‹ค.

๐Ÿ“‹ [Java] Functional Interface (ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค)

๐Ÿ“‹ [Java] ๋žŒ๋‹ค์‹, ๋ฉ”์„œ๋“œ์ฐธ์กฐ

๐Ÿ“‹ [Java] ์ŠคํŠธ๋ฆผ

 

- ์ž๋ฐ” ์„ฑ๋Šฅ ๊ฐœ์„  ์ฑ…์„ ์ฝ์œผ๋ฉด์„œ, Stringํด๋ž˜์Šค์™€ StringBuilder ํด๋ž˜์Šค์˜ ์„ฑ๋Šฅ ์ฐจ์ด๊ฐ€ ์ƒ๊ฐ๋ณด๋‹ค ๋งŽ์ด ๋‚˜์„œ ์ข€ ๋†€๋žฌ๋‹ค. ๋นจ๋ฆฌ ๋’ท๋ถ€๋ถ„๋„ ์ฝ๊ณ  ์‹ถ์—ˆ์ง€๋งŒ ๋‹ค๋ฅธ ํ•  ์ผ์ด ๋งŽ์•„์„œ ๋ชป ์ฝ์—ˆ๋”ฐใ… 

 

2025.01.10 (๊ธˆ)

- ์˜ค๋Š˜๋„ ์ฑ„์  ์ง€์˜ฅ์ด์—ˆ๋”ฐ. ํŠนํžˆ ์ฟผ๋ฆฌ ํ•ด์„ํ•˜๋Š” ๊ฒŒ ๊ฐ€์žฅ ๋จธ๋ฆฌ๊ฐ€ ๊นจ์งˆ ๊ฒƒ ๊ฐ™์•˜๋‹ค.

  ๋‚จ์˜ ์ฝ”๋“œ๋ฅผ ์ฝ์œผ๋ฉด์„œ ๋ฐฐ์šฐ๋Š” ์ ์ด ์ •๋ง ๋งŽ์€ ๊ฒƒ ๊ฐ™๋‹ค. ๋“œ๋””์–ด ์ด๋ฒˆ ์‹œํ—˜ ์ฑ„์  ๋

 

- ๋ฐ€๋ฆฐ ๋ฉด์ ‘ ์Šคํ„ฐ๋”” ๊ณต๋ถ€๋ฅผ ํ•˜๊ณ , ๋ชจ์˜ ๋ฉด์ ‘์„ ์ง„ํ–‰ํ–ˆ๋‹ค.

  ์ด๋ฒˆ์ฃผ์— ๋„ˆ๋ฌด ๋ฐ”๋นด์–ด์„œ ๊ณต๋ถ€๋ฅผ ์กฐ๊ธˆ ๋œ ํ–ˆ๋Š”๋ฐ, ๊ทธ๋ž˜๋„ ๋‹คํ–‰ํžˆ ์ค€๋น„ํ•œ ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ๋Š” ์ž˜ ๋Œ€๋‹ตํ•œ ๊ฒƒ ๊ฐ™๋‹ค.

  ํ‰์†Œ์— ๋ฉด์ ‘ ์ค€๋น„๋ฅผ ๋งŽ์ด ํ•ด๋‘ฌ์•ผ๊ฒ ๋‹ค๊ณ  ๋А๊ผˆ๊ณ , ์—ฐ์Šตํ• ์ˆ˜๋ก ๋Š˜๊ฒ ๊ตฌ๋‚˜ ํ•˜๋Š” ํ™•์‹ ์ด ์ƒ๊ฒผ๋‹ค!

 

 

2025.01.11 - 12 (์ฃผ๋ง)

- ๋ฐ€๋ฆฐ ๊ทผํƒ€ ํ”„๋กœ์ ํŠธ ์ž‘์—…์„ ๋งˆ๋ฌด๋ฆฌํ–ˆ๋‹ค. ์ตœ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ๊น”๋”ํ•˜๊ฒŒ ์ž‘์„ฑํ•œ๋‹ค๊ณ  ๋…ธ๋ ฅํ–ˆ๋Š”๋ฐ ๊ทธ๊ฒŒ ์ž˜ ์•ˆ ๋˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

 

2025.01.13 (์›”)

- ์˜ค๋Š˜์€ ํ•™์ƒ๋“ค ํ”„๋กœ์ ํŠธ ๋ฏธํŒ…์— ์ฐธ์—ฌํ–ˆ๋‹ค.(ํ‰๊ฐ€ํ‘œ ์ž‘์„ฑ ๋„์™€๋‹ฌ๋ผ๊ณ  ํ•˜์…”์„œ)

  ๊ฑฐ์˜ ์ธํ„ฐ๋ทฐ ์ˆ˜์ค€์ด์—ˆ๋Š”๋ฐ, ์˜†์— ์•‰์•„ ์žˆ๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋„ ์ •๋ง ๋งŽ์€ ๋„์›€์ด ๋˜์—ˆ๋‹ค.

  ๋‚ด ๊ณต๋ถ€ ๋ฐฉํ–ฅ์„ฑ๋„ ์žกํžˆ๋Š” ๊ฒƒ ๊ฐ™์•˜๋‹ค. ๋นจ๋ฆฌ ์ฝ”์–ด ๋ณต์Šต ๋๋‚ด๊ณ , JPA ์ข€ ๋”ฅํ•˜๊ฒŒ ๊ณต๋ถ€ํ•ด๋ณด๊ณ  ์‹ถ์–ด์กŒ๋‹ค

 

- ์Šคํ”„๋ง ์ฑ„์  ๋“œ๋””์–ด ๋! ใ… ใ… ใ… 

 

- CGI, ์„œ๋ธ”๋ฆฟ, ํ†ฐ์บฃ์˜ ๋Šช์—์„œ ์•„์ง ๋ชป๋น ์ ธ๋‚˜์˜ค๊ณ  ์žˆ๋‹ค.

  ์ด์ œ์„œ์•ผ ๋จธ๋ฆฟ์†์—์„œ ์ข€ ์ •๋ฆฌ๊ฐ€ ๋˜๋Š” ๊ฒƒ ๊ฐ™์€๋ฐ, ์ •๋ฆฌ๋ฅผ ๋‹ค ํ•˜๊ณ  ๋‚˜๋ฉด ์ฑ…์„ ์‚ฌ๋˜์ง€ ๋นŒ๋ฆฌ๋˜์ง€ ํ•ด์„œ ๊ฒ€์ฆํ•ด๋ด์•ผ๊ฒ ๋‹ค.

  ์ด ๊ถ๊ธˆ์ฆ์„ ํ•ด๊ฒฐํ•ด์•ผ ๋‹ค์Œ์œผ๋กœ ๋„˜์–ด๊ฐˆ ์ˆ˜ ์žˆ์œผ๋‹ˆ๊น

 

2025.01.14 (ํ™”)

- ์˜ค๋Š˜ ์˜ค์ „์—๋„ ๋‹ค๋ฅธ ํŒ€ ํ”„๋กœ์ ํŠธ ๋ฏธํŒ…์— ์ฐธ์—ฌํ–ˆ๋‹ค.

  ์˜ค๋Š˜์€ ๊ธฐ์ˆ ์ ์ธ ๊ฒƒ ์™ธ์—๋„, ๋ฉด์ ‘์„ ๋ณผ ๋•Œ ์–ด๋–ค ํƒœ๋„๋ฅผ ์ทจํ•ด์•ผ ์ข‹์„์ง€ ๊นŠ๊ฒŒ ์ƒ๊ฐํ•ด๋ณด๊ฒŒ ๋˜์—ˆ๋‹ค.

  (ํƒœ๋„๊ฐ€ ๋ณ„๋กœ์ธ ํ•™์ƒ๋“ค์ด ๋งŽ์•˜๊ธฐ ๋•Œ๋ฌธ. ๋‚œ ์ €๋Ÿฌ์ง€ ๋ง์•„์•ผ๊ฒ ๋‹ค)

 

2025.01.15 (์ˆ˜)

- RequestDispatcher ์ด์šฉํ•˜์—ฌ forwardํ•œ HttpRequest๋Š” ์‘๋‹ต์„ ๋ณด๋‚ด์ฃผ๊ธฐ ์ง์ „๊นŒ์ง€๋งŒ ์œ ์ง€๋จ

  ์„ธ์…˜์€ ์„ธ์…˜์ด ์‚ฌ๋ผ์ง€๊ธฐ ์ „๊นŒ์ง€ (์ฆ‰ ๋กœ๊ทธ์•„์›ƒ ํ•˜๊ธฐ ์ „๊นŒ์ง€) ์œ ์ง€๋จ

- ์™œ ์„ธ์…˜์„ ์•ˆ ์“ฐ๊ณ  ํฌ์›Œ๋”ฉ์„ ํ•˜๋ƒ๋Š” ์งˆ๋ฌธ์ด ์žˆ์–ด์„œ ,

  ํ•ด๋‹น ์š”์ฒญ์—๋งŒ ํ•„์š”ํ•˜๊ณ , ์‘๋‹ต์ดํ›„์—๋Š” ์†Œ๋ฉธ๋˜์–ด๋„ ๋˜๋Š” ์ •๋ณด๋ฅผ ๊ตณ์ด ์„ธ์…˜์— ์ €์žฅํ•œ๋‹ค๋ฉด

  ์„œ๋ฒ„์ธก ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„๊ฐ€ ์‹ฌํ•˜๊ณ  ๋ณด์•ˆ์ƒ์œผ๋กœ๋„ ์•ˆ ์ข‹์ง€ ์•Š์„๊นŒ์š” ๋ผ๊ณ  ๋Œ€๋‹ตํ•ด๋“œ๋ ธ๋‹ค.

 

2025.01.16 (๋ชฉ)

- ์˜ค๋Š˜์€ ์งˆ๋ฌธ์ด ์ข€ ๋งŽ์ด ๋“ค์–ด์™”๋Š”๋ฐ ๊ทธ์ค‘์—์„œ ๋‚˜๋„ ๋ชฐ๋ผ์„œ ์ง์ ‘ ํ•ด๋ณด๊ณ  ์•Œ๋ ค์ค˜์•ผ ํ•˜๋Š” ๊ฒƒ๋“ค๋„ ๊ฝค ์žˆ์—ˆ์–ด์„œ,

  ํ‰์†Œ ๋‚จ๋Š” ์‹œ๊ฐ„์— ๋†€์ง€ ๋ง๊ณ  ๋ฏธ๋ฆฌ ๊ณต๋ถ€๋ฅผ ๋” ์—ด์‹ฌํžˆ ํ•ด๋‘ฌ์•ผ๊ฒ ๋‹ค๊ณ  ๋А๊ผˆ๋‹ค.

    - context-param ํƒœ๊ทธ ๋Œ€์‹ , ServletContainerInitializer ํŒŒ์ผ ์ƒ์„ฑ & ServletContainerInitializer ๊ตฌํ˜„ ํด๋ž˜์Šค ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฐ”๊พธ๊ธฐ

    - ์—๋Ÿฌ ๋ฐœ์ƒํ•˜๋Š” ์ˆœ๊ฐ„ RequestDispatcher์— ์—๋Ÿฌ ์ •๋ณด๊ฐ€ ๋‹ด๊น€. catch๋ฌธ์—์„œ ์—๋Ÿฌ ์žก์œผ๋ฉด ์—๋Ÿฌ ์ •๋ณด ๋‚ ์•„๊ฐ.

 

2025.01.17 - 18 (๊ธˆํ† )

- ํœด๊ฐ€์“ฐ๊ณ  ์„œ์šธ๊ฐ€์„œ ๋ฉด์ ‘์„ ์œ„ํ•œ ๊ณต๋ถ€๋ฅผ ํ–ˆ๋‹ค. ์ปฌ๋ ‰์…˜ ๊ณ„์ธต ๊ตฌ์กฐ์— ๋Œ€ํ•ด์„œ ๋‚˜๋ฆ„ ํ™•์‹คํžˆ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.

- ๋ฉ˜ํ† ๋‹˜๊ป˜์„œ Blocking I/O์™€ Non-blocking I/O์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ•ด๋ณด๋ผ๊ณ  ํ•˜์…จ๋‹ค.

  ๊ผญ ๊ณต๋ถ€ํ•ด์„œ ๊ธฐ๋ก์„ ๋‚จ๊ฒจ๋‘ฌ์•ผ๊ฒ ๋‹ค.

- ์ž‰์„œ๋น„ํ•œํ…Œ ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด4 ์„ ๋ฌผ๋กœ ์ฃผ๋ฉด์„œ ๊ฐ™์ด OS๊ตฌ์›Œ์„œ ๋ถ€ํŒ… ํ•ด๋ดค๋‹ค. ์žฌ๋ฐŒ์—ˆ๋‹ค

 

2025.01.19 (์ผ)

- JSP ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ณต๋ถ€ํ–ˆ๋‹ค.

๐Ÿ“„ JSP ๋ชจ๋ธ 1, 2์™€ MVC ํŒจํ„ด

- JSP ๊ด€๋ จ ๋‚ด์šฉ๋“ค (์ปจํ…์ŠคํŠธ๋ผ๋˜๊ฐ€ ๋™์ž‘์›๋ฆฌ)์„ ์ž˜ ์ •๋ฆฌํ•ด๋‘๊ณ  ์‹ถ์€๋ฐ ํ•  ์ผ์ด ๋„ˆ๋ฌด ๋งŽ์•„์„œ ๋ชปํ•˜๊ณ  ์žˆ๋‹คใ… 

- ๋ฐ”๋‹๋ผ js๋กœ ๊ทผํƒ€ ํ”„๋กœ์ ํŠธ ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค๊ณ  ์žˆ๋Š”๋ฐ ์‰ฝ์ง€ ์•Š๋‹ค.. ๋ฆฌ์•กํŠธ๋‚˜ ๋ทฐ๋ฅผ ๋ฐฐ์›Œ๋ด์•ผํ•˜๋‚˜

 

2025.01.20 (์›”)

- ์˜ค๋Š˜์€ ์‚ฝ์งˆ์„ ๋งˆ๋‹ˆ ํ–ˆ๋‹ค.

  RequestDispatcher ํฌ์›Œ๋“œ๋Š” ์š”์ฒญ๋ฉ”์„œ๋“œ๊นŒ์ง€ ์œ ์ง€ํ•จ

  ConcurrentHashMap์€ ์ €์žฅํ•  ๊ฐ์ฒด์˜ ํ•„๋“œ๊ฐ’ ์ค‘ ๋‹จ ํ•˜๋‚˜๋ผ๋„ null์ด ์žˆ์œผ๋ฉด ์ต์…‰์…˜ ๋˜์ง (ใ… ใ… )

  ์จ๋ธ”๋ฆฟ ๋ฒ„์ „ ๋งž์ถฐ์ฃผ๋Š” ๊ฒƒ ์ค‘์š”ํ•จ

- JPA๊ฐ€ ๋“ฑ์žฅํ•˜๊ธฐ ์ด์ „์— ์ž๋ฐ”์ง„์˜์—์„œ ๊ตญ๋ฃฐ๋กœ ์‚ฌ์šฉํ–ˆ์—ˆ๋‹ค๊ณ  ํ•˜๋Š” JDBC์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ•ด๋ณด์•˜๋‹ค.

    JDBC๊ฐ€ ์™œ ๋“ฑ์žฅํ–ˆ๊ณ , ์™œ ๋‹จ๋…์œผ๋กœ ์“ฐ์ง€ ์•Š๊ณ  SQL Mapper, ORM๊ฐ™์€ ๊ธฐ์ˆ ๋“ค์„ ํ•จ๊ป˜ ์ผ๋Š”์ง€ ๊ณต๋ถ€ํ•˜๋ฉด์„œ

    ์ž๋ฐ” ์ƒํƒœ๊ณ„์˜ ์œ„๋Œ€ํ•จ์„ ๋˜๋‹ค์‹œ ๊นจ๋‹ฌ์•˜๋‹ค ใ…‹ใ…‹

- ๋กœ์ปฌํ™˜๊ฒฝ์—์„œ ์„œ๋น„์Šค๋“ค ์—ฐ๋™์ž‘์—…์„ ํ•ด๋ณด๋ฉด์„œ ์ž˜๋ชป๋œ ๋ถ€๋ถ„ ์ˆ˜์ •์„ ํ•˜๊ณ  ์žˆ๋”ฐ.

 

2025.01.21 (ํ™”)

- ํŠธ๋žœ์žญ์…˜์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ–ˆ๋‹ค.

- ๊ทผํƒ€ ํ”„๋กœ์ ํŠธ ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค. ๋™์ž‘์€ ํ•˜๋Š”๋ฐ.. ๋‹ค์Œ์ฃผ์—๋Š” ๊ถŒํ•œ ์ฒดํฌ๋ผ๋˜์ง€ ์ด๋Ÿฐ ๊ฒƒ๋“ค์— ๋Œ€ํ•ด ๊นŠ๊ฒŒ ๊ณ ๋ฏผ์„ ํ•ด๋ด์•ผ๊ฒ ๋‹ค๊ณ  ๋А๊ผˆ๋‹ค.

 

2025.01.22 (์ˆ˜)

- ์–ด๋…ธํ…Œ์ด์…˜์„ ์™œ ์“ฐ๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  Reflection์„ ์ด์šฉํ•ด์„œ ์–ด๋…ธํ…Œ์ด์…˜์ด ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•œ๋‹ค๋Š”๊ฑด์ง€ ํ•™์ƒ๋“ค์—๊ฒŒ ์—ด์‹ฌํžˆ ์„ค๋ช…์„ ํ•ด๋“œ๋ ธ๋”ฐ.

  ๊ทผ๋ฐ ๋‚ด๊ฐ€ ๋„ˆ๋ฌด ์–ด๋ ต๊ฒŒ ์„ค๋ช…ํ•œ ๊ฒƒ ๊ฐ™๋‹ค. (๊ทธ๋ƒฅ ๋‚ด ์ƒ๊ฐ์ด๋‹ค)

  Classํด๋ž˜์Šค๊ฐ€ ๋ญ”์ง€,  ์–ด๋А ์‹œ์ ์— ์ƒ์„ฑ๋˜๋Š”์ง€ ์ด๋Ÿฐ ๋‚ด์šฉ๊นŒ์ง€ ์ž์„ธํžˆ ์„ค๋ช…ํ•ด๋“œ๋ฆฌ๋ ค๋‹ค๊ฐ€ ์˜คํžˆ๋ ค ๋” ํ—ท๊ฐˆ๋ฆฌ๊ฒŒ ๋œ ๊ฒƒ ๊ฐ™๋‹ค

  ๋‹ค์Œ๋ถ€ํ„ฐ๋Š” ๋‘๊ด„์‹!

 

2025.01.23-24 (๋ชฉ๊ธˆ)

- ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ ์ „์ฒด์ ์ธ ๊ตฌ์กฐ๋ฅผ ์–ด๋ ดํ’‹์ด๋งŒ ์•Œ๊ณ  ๊ทธ๋ƒฅ ์ผ์—ˆ๋Š”๋ฐ ์˜ค๋Š˜ ์กฐ์€ ๊ธฐํšŒ๋กœ ์ชผ๋” ๋” ์ดํ•ดํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

  DelegatingFilterProxy๋กœ ๊ฐ์‹ธ์ ธ ์žˆ๋Š” FilterChainProxy ๋•๋ถ„์— ์Šคํ”„๋ง๋นˆ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ์„œ๋ธ”๋ฆฟ ํ•„ํ„ฐ ์‚ฌ์ด์— ์Šคํ”„๋ง๋นˆ์„ ์‚ฌ์šฉํ•˜๋Š” ์‹œํ๋ฆฌํ‹ฐ ํ•„ํ„ฐ ์ฒด์ธ์„ ๋ผ์›Œ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ

  ๊ทธ๋ฆฌ๊ณ  ์„ธ๋ถ€์ ์ธ ๊ถŒํ•œ(์˜ˆ๋ฅผ๋“ค๋ฉด ์ง์›๋ณ„ ๊ถŒํ•œ์ด ๋‹ค๋ฅธ ๊ฒฝ์šฐ. ์ง์›_56, ์ง์›_57, ์ง์›_58 ์ด๋Ÿฐ ๊ถŒํ•œ๋“ค)์€ GrantedAutority๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค๋Š”, ์„œ๋น„์Šค๋‹จ์—์„œ ๋”ฐ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ๋” ์ข‹๋‹ค๋Š” ๊ฒƒ

 

2025.01.25-26 (์ฃผ๋ง)

- ๋ณธ๊ฐ€์— ๋Œ์•„์™”๋‹ค.. ์ข‹์€๋ฐ ์‹ซ๋‹ค..

- ์ธ์„œ๋น„๋ž‘ ์งง์€ nginx ๊ฐ•์˜๋ฅผ ๋ดค๋‹ค.

 

2025.01.27 (์›”)

- nginx ๊ฐ•์˜๋ฅผ ๋งˆ๋ฌด๋ฆฌํ–ˆ๋‹ค.

  ๋ฉ€ํ‹ฐ๋„๋ฉ”์ธ, https ์„ค์ •, ip๋‹น ์š”์ฒญ์ˆ˜ ์ œํ•œ, ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ ๋“ฑ ์‹ค์Šต์„ ํ•ด๋ณด๋ฉด์„œ

  ์„ค์ •ํŒŒ์ผ ๋ช‡๊ฐœ ์ชผ๋” ๋ฐ”๊ฟ”์ฃผ๋Š”๊ฑธ๋กœ ์ด ๋งŽ์€ ๊ธฐ๋Šฅ๋“ค์„ ์‰ฝ๊ฒŒ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋„ค! ๊ทธ๋ž˜์„œ nginx๊ฐ€ ์ธ๊ธฐ๊ฐ€ ๋งŽ๊ตฌ๋‚˜! ๋ฅผ ๋А๊ผˆ๋‹ค.

  ํŠนํžˆ ๋ฉ€ํ‹ฐ๋„๋ฉ”์ธ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ์ฒ˜์Œ ๋ณด๋Š” ๊ฑฐ์—ฌ์„œ ์‹ ๊ธฐํ–ˆ๋‹ค.

- jdbc ๊ณต๋ถ€๋ฅผ ํ•˜๋ฉด์„œ dbํŠธ๋žœ์žญ์…˜์— ๋Œ€ํ•ด์„œ ๊ฐœ๋…์„ ๋‹ค์‹œ ๋‹ค์ ธ๋ณด์•˜๋‹ค.

- ์ง€๋‚œ์ฃผ ๊ณต๋ถ€ํ–ˆ๋˜ ๋‚ด์šฉ๋“ค์„ ๊ฐ„๋‹จํžˆ ์ •๋ฆฌํ–ˆ๋‹ค.

๐Ÿ“„ JDBC์™€ SQL Mapper, ORM ๊ฐ„๋‹จํžˆ ์ •๋ฆฌ

๐Ÿ“‘ [Jdbc] ์ปค๋„ฅ์…˜ ํ’€๋ง๊ณผ DataSource ์ธํ„ฐํŽ˜์ด์Šค

 

2025.01.28 (ํ™”)

- Checked Exception๋ณด๋‹ค๋Š” Runtime Exception์„ ์‚ฌ์šฉํ•˜๋˜, ์˜ˆ์™ธ์— ๋Œ€ํ•œ ๋ช…์„ธ๋ฅผ ์ž˜ ํ•ด๋‘์ž.

- ์˜ˆ์™ธ๋ฅผ catchํ•ด์„œ ์ƒˆ๋กœ์šด RuntimeException์„ ๋งŒ๋“ค์–ด ๋˜์งˆ๋•Œ์—๋Š”, ๋ฐ˜๋“œ์‹œ ์ƒ์„ฑ์ž์— ๊ธฐ์กด ์˜ˆ์™ธ ๊ฐ์ฒด๋ฅผ ๋„ฃ์–ด์„œ ๋˜์ ธ์ฃผ์ž. (์•ˆ ๊ทธ๋Ÿฌ๋ฉด ๋””๋ฒ„๊น… ์ง€์˜ฅ)

 

2025.01.29 (์ˆ˜)

- JDBC ๊ณต๋ถ€๋ฅผ ๊ฑฐ์˜ ๋งˆ๋ฌด๋ฆฌํ•ด๊ฐ€๋Š” ๋‹จ๊ณ„์ด๋‹ค.

- ์ปจํŠธ๋กค๋Ÿฌ๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ฒฝ์šฐ api๋‚˜ ๊ธฐ์ˆ ์ด ๋ฐ”๋€œ์— ๋”ฐ๋ผ์„œ ๋ณ€๊ฒฝ์ด ์žฆ์„ ์ˆ˜ ์žˆ๋‹ค

  ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ ๋ณ€๊ฒฝ์˜ ์˜ํ–ฅ์ด ์„œ๋น„์Šค๋‹จ๊นŒ์ง€ ๊ฐ€๋ฉด ์•ˆ ๋œ๋‹ค.

  ์„œ๋น„์Šค ์œ„์— ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋‘๋Š” ์ด์œ  ์ค‘ ํ•˜๋‚˜๊ฐ€ ์„œ๋น„์Šค ๋ฉ”์„œ๋“œ๋ฅผ ํŠน์ • ๊ธฐ์ˆ ์— ์ข…์†์ ์ด์ง€ ์•Š๊ฒŒ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค!

 

- JVM์€ ์ŠคํŽ™์ผ ๋ฟ์ด๊ณ , ์ •ํ™•ํ•œ ๊ตฌํ˜„์— ๋Œ€ํ•œ ์ •์˜๋Š” ์—†๊ธฐ์— ๋ฒค๋”์‚ฌ๋“ค๋งˆ๋‹ค ์ œ๊ฐ๊ฐ์œผ๋กœ ๊ตฌํ˜„ํ•ด๋‘”๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ ๋Š” ์žˆ์—ˆ์ง€๋งŒ

  ํž™์˜์—ญ์˜ ๊ตฌ์กฐ๋งˆ์ € ๋ฒค๋”์‚ฌ๋งˆ๋‹ค ์ œ๊ฐ๊ฐ์ด๋ผ๋Š” ๊ฒƒ์„ ์˜ค๋Š˜ ๊ณต๋ถ€ํ•˜๋‹ค๊ฐ€ ์ฒ˜์Œ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.

  ๊ทธ๋ž˜์„œ ๋ธ”๋กœ๊ทธ๋งˆ๋‹ค, ์ฑ…๋งˆ๋‹ค, ๊ฐ•์˜๋งˆ๋‹ค ์„ค๋ช…์ด ์กฐ๊ธˆ์”ฉ ๋‹ฌ๋ž๋˜ ๊ฑฐ์˜€๋‹ค.

  ๊ฐ€์žฅ ํ”ํ•˜๊ฒŒ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ๋Š” ํž™์˜์—ญ์„ young generation(eden, survivor), old generation์œผ๋กœ ๋‚˜๋ˆ„์–ด ๊ด€๋ฆฌํ•˜๊ณ  ์ด์— ๋”ฐ๋ผ GC๋ฅผ ํ•˜๋Š” ๊ตฌ์กฐ์˜€๋Š”๋ฐ ์ด๊ฒƒ์ด HotspotJVM์˜ ๊ตฌ์กฐ๋ผ๋Š” ๊ฒƒ๋„ ์•Œ์•˜๋‹ค.

 

2025.01.30 (๋ชฉ)

- ๋ฉฐ์น ๋™์•ˆ ๋‚˜๋ฅผ ํž˜๋“ค๊ฒŒ ํ–ˆ๋˜ ํŒŒ๋ผ๋ฉ”ํŠธ๋ฆญ ์„œ์น˜ ๋ฌธ์ œ๋ฅผ ๋“œ๋””์–ด ํ•ด๊ฒฐํ–ˆ๋‹ค.

  ๋ธ”๋กœ๊ทธ ํ’€์ด๋“ค์„ ์—ฌ๋Ÿฌ ๊ฐœ๋ฅผ ์ฐพ์•„๋ด๋„ ๋‚ด ๋จธ๋ฆฌ๋กœ ๋‚ฉ๋“์ด ๊ฐ€๋Š” ํ’€์ด๊ฐ€ ์—†์–ด์„œ..

  ๋ณธ์งˆ์ ์ธ ๊ฒƒ๋ถ€ํ„ฐ ๊ณต๋ถ€ํ•ด์„œ ์ฐจ๊ทผ์ฐจ๊ทผ ์ƒ๊ฐํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋‹ˆ ๋“œ๋””์–ด ์ •๋‹ต ํŒ์ •์„ ๋ฐ›์•˜๋‹ค.

  ๋„์›€์ด ๋˜์—ˆ๋˜ ์œ ํŠœ๋ธŒ ์˜์ƒ์ด๋‹ค. ๋งํฌ

  ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ์‹œ๊ฐ„์„ ๋„ˆ๋ฌด ๋งŽ์ด ์“ฐ๊ธด ํ–ˆ์ง€๋งŒ ๋‚˜๋ฆ„ ์˜๋ฏธ ์žˆ๋Š” ์‚ฝ์งˆ์ด์—ˆ๋‹ค.

 

- ์ˆœ์ˆ˜ jdbc ์ผ๋ถ€ ์ •๋ฆฌํ–ˆ๋‹ค. ๋‹ค ์•Œ๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ๋ง‰์ƒ ์ฝ”๋“œ๋ฅผ ์งœ๋ณด๋‹ˆ ๋‚ด๊ฐ€ ๋ช…ํ™•ํ•˜๊ฒŒ ๋ชจ๋ฅด๊ณ  ์žˆ๋˜ ๊ฒƒ์ด ๋งŽ์•˜๋‹ค. (๊ธฐ๋ณธ์ ์ธ ๊ฒƒ์กฐ์ฐจ๋„)

๐Ÿ“„ ํŠธ๋žœ์žญ์…˜

 

2025.01.31 (๊ธˆ)

- ๋งˆ์ง€๋ง‰ ๋ฉด์ ‘์Šคํ„ฐ๋””์˜€๋‹ค. ๊ทธ๋™์•ˆ ์ •๋ง ๋ฌด์„œ์› ๊ณ  ์ •๋ง ๋งŽ์ด ๋„์›€๋˜์—ˆ๋‹ค. ๊ฐ™์ด ํ–ˆ๋˜ ๋ถ„๋“ค ๋‹ค๋“ค ์ž˜๊ฐ€์…จ์œผ๋ฉด ์ข‹๊ฒ ๋”ฐ

๐Ÿ“‘ JVM ํž™ ์˜์—ญ๊ณผ GC

- ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ์กฐ๊ธˆ ํ’€์—ˆ๋‹ค. ์ฝ”ํ…Œ ๋ฏธ๋ฆฌ ์ค€๋น„ํ• ๊ฑธ

- ํ™•์‹คํžˆ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ด์•ผ ๊ฐœ๋…์ด ์žกํžˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

728x90

'TIL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

2025๋…„ 5์›”  (0) 2025.05.02
2025.04  (0) 2025.04.01
2025๋…„ 3์›”  (0) 2025.03.05
2025๋…„ 2์›”  (0) 2025.02.03
2024๋…„ 11์›”  (0) 2024.11.07