[TIL] 2025-02-18(๐Ÿšง์ˆ˜์ •)

Yuriยท2025๋…„ 2์›” 18์ผ

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
50/59
post-thumbnail

๐Ÿ“• Today I Learned - ์˜ค๋Š˜ ๋‚ด๊ฐ€ ๊ณต๋ถ€ํ•œ ๊ฒƒ์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๊ณผ์ œ ํ”ผ๋“œ๋ฐฑ

๐Ÿ”ซ ๊ณผ์ œ ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…

์„ธ์…˜์— ๋“ค์–ด์žˆ๋Š” ์œ ์ € ์‹๋ณ„์ž id๋ฅผ ์ „์—ญ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ThreadLocal์„ ํ™œ์šฉํ•˜์—ฌ id ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค.

๐Ÿ’ฌ ํ”ผ๋“œ๋ฐฑ

  • thread๋ฅผ ์ง์ ‘ ์‚ฌ์šฉ, ๊ตณ์ด ์ด๊ฑธ ์œ„ํ•ด clearํ•˜๋Š” ์ฝ”๋“œ๊นŒ์ง€ ํ•„์š”
    โ†’ ์‰ฌ์šด ๋ฐฉ๋ฒ•์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ์žฅ๊ธฐ์ ์œผ๋กœ ํŒ€ ํ˜‘์—…์ด๋‚˜ ์œ ์ง€๋ณด์ˆ˜, ์ฝ”๋“œ์˜ ์ปจํ…์ŠคํŠธ ํŒŒ์•… ๋“ฑ์— ๋„์›€์ด ๋œ๋‹ค.

๐Ÿ™‡ ์ด ๋ถ€๋ถ„์€ ๊ณผ์ œ๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด์„œ ์Šค์Šค๋กœ ๊ณผํ•˜๊ฒŒ(?) ๊ตฌํ˜„ํ–ˆ์Œ์„ ๋А๊ปด์„œ ๊ณผ์ œ ํ”ผ๋“œ๋ฐฑ ์ดํ›„ ๊ฐœ์„  & ์ ์šฉํ•˜๋ ค๊ณ  ํ•œ๋‹ค.

๋‚˜์˜ ์ฝ”๋“œ

	@PostMapping
    public ResponseEntity<ScheduleResponseDto> create(@RequestBody ScheduleRequestDto dto) {
        return ResponseEntity.ok(scheduleService.create(dto.getTitle(), dto.getContents()));
    }

์ปจํŠธ๋กค๋Ÿฌ ์ฝ”๋“œ๋งŒ ๋ณด๋ฉด ์ด API๊ฐ€ ์ธ์ฆ์ด ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์ธ์ง€ ์•Œ ์ˆ˜ ์—†๋‹ค.
โ†’ Controller ์—์„œ๋ถ€ํ„ฐ ์ธ์ฆ์ด ํ•„์š”ํ•œ ์ฝ”๋“œ์ธ์ง€ ์•Œ ์ˆ˜ ์žˆ๊ฒŒ ๋ช…์‹œ (์œ ์ง€๋ณด์ˆ˜ ์ธก๋ฉด)

Spring ์˜ Session

Spring์—์„œ๋Š” Session์„ ์‰ฝ๊ฒŒ ๋‹ค๋ฃจ๋„๋ก @SessionAttribute๋ผ๋Š” ์–ด๋…ธํ…Œ์ด์…˜์ด ์ œ๊ณต๋œ๋‹ค.

  • HttpServletRequest

  • @SessionAttribute

    • request.getSession(true); ์™€๋Š” ๋‹ค๋ฅด๊ฒŒ Session์„ ์ƒˆ๋กœ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ์€ ์—†๋‹ค.
    • ์ด๋ฏธ ๋กœ๊ทธ์ธ์ด ์™„๋ฃŒ๋œ ์‚ฌ์šฉ์ž๋ฅผ ์ฐพ๋Š” ๊ฒฝ์šฐ ์ฆ‰, Session์ด ์žˆ๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•œ๋‹ค.

๐Ÿš€ ์‹ฌํ™”

  • [Redis] Spring Session์„ ํ™œ์šฉํ•œ ์„ธ์…˜ ๊ณต์œ  ๋ฐ ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ
  • [JWT] JWT๋ฅผ ํ™œ์šฉํ•œ Stateless ๋ฐฉ์‹ ์„ธ์…˜ ๊ด€๋ฆฌ
profile
์•ˆ๋…•ํ•˜์„ธ์š” :)

0๊ฐœ์˜ ๋Œ“๊ธ€