๋ฒ ์–ด_
TechBear
๋ฒ ์–ด_
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (336)
    • Spring (33)
      • ๊ฐœ๋… (13)
      • Security (5)
      • ์‹ค์Šต (1)
      • ํ† ๋น„ ์Šคํ”„๋ง (11)
    • JPA (6)
    • ํ”„๋กœ์ ํŠธ ๊ธฐ๋ก (24)
    • DB (13)
    • JAVA (18)
    • ์•Œ๊ณ ๋ฆฌ์ฆ˜ (50)
      • ์œ ํ˜•์ •๋ฆฌ (8)
      • Baekjoon (21)
      • LeetCode (18)
    • ๋””์ž์ธํŒจํ„ด (0)
    • ๊ฐœ๋ฐœ์„œ์  (79)
      • Effective Java (78)
      • ๊ฐ์ฒด์ง€ํ–ฅ์˜ ์‚ฌ์‹ค๊ณผ ์˜คํ•ด (1)
    • ๋…ํ›„๊ฐ (4)
    • ๋ณด์•ˆ (2)
    • ์šด์˜์ฒด์ œ(OS) (53)
      • ๊ณต๋ฃก์ฑ… (53)
    • ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ (28)
      • ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ ํ•˜ํ–ฅ์‹ ์ ‘๊ทผ (23)
    • ์ž๋ฃŒ๊ตฌ์กฐ (1)
    • DevOps (2)
    • ์•ฑ ๊ฐœ๋ฐœ (20)
      • ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค (20)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    ๊ณต์ง€์‚ฌํ•ญ

    ์ธ๊ธฐ ๊ธ€

    ํƒœ๊ทธ

    • ์ž๋ฐ”
    • ์Šคํ”„๋ง์‹œํ๋ฆฌํ‹ฐ
    • ํ† ๋น„์Šคํ”„๋ง
    • ์šด์˜์ฒด์ œ
    • ์ดํŽ™ํ‹ฐ๋ธŒ์ž๋ฐ”
    • ์•Œ๊ณ ๋ฆฌ์ฆ˜
    • ์ž๋ฐ”8
    • BFS
    • ๋ฐฑ์ค€
    • ์Šคํ”„๋ง
    • ์ฝ”๋“œ์—…
    • ์Šค๋ ˆ๋“œ
    • dfs
    • leetcode
    • C++
    • jpa
    • java
    • Spring
    • ํ•จ์ˆ˜ํ˜•์ธํ„ฐํŽ˜์ด์Šค
    • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

    ์ตœ๊ทผ ๋Œ“๊ธ€

    ์ตœ๊ทผ ๊ธ€

    ํ‹ฐ์Šคํ† ๋ฆฌ

    hELLO ยท Designed By ์ •์ƒ์šฐ.
    ๋ฒ ์–ด_

    TechBear

    OSIV์™€ ํ•„ํ„ฐ
    Spring/๊ฐœ๋…

    OSIV์™€ ํ•„ํ„ฐ

    2023. 7. 25. 04:10

    ๐Ÿ” OSIV๋ž€? (Open Session In View)

    ์Šคํ”„๋ง์˜ ํŠธ๋žœ์žญ์…˜ ๋ฒ”์œ„๋Š” Service, Repository ๋ ˆ์ด์–ด์—์„œ๋งŒ ์œ ์ง€๋œ๋‹ค. ๋ณดํ†ต JPA์˜ ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ๋Š” ํŠธ๋žœ์žญ์…˜์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ๋”ฐ๋ผ๊ฐ€๋Š”๋ฐ, OSIV๋ฅผ ์ด์šฉํ•˜๋ฉด ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ๋ทฐ(์ปจํŠธ๋กค๋Ÿฌ)๋ ˆ์ด์–ด๊นŒ์ง€ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ์˜์† ์ƒํƒœ๋ฅผ ์ปจํŠธ๋กค๋Ÿฌ์—์„œ๊นŒ์ง€ ์œ ์ง€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ปจํŠธ๋กค๋Ÿฌ ๋ ˆ์ด์–ด์—์„œ ์ง€์—ฐ๋กœ๋”ฉ์ด ๊ฐ€๋Šฅํ•ด์ง„๋‹ค.

     

    ๐Ÿ” ์Šคํ”„๋ง OSIV์˜ ๋™์ž‘ ์›๋ฆฌ

    ์Šคํ”„๋ง์ด ์ œ๊ณตํ•˜๋Š” OSIV์—๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ์œผ๋ฉฐ ์ฐจ์ด๋Š” ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ๊ฐ€ ์–ธ์ œ ์ƒ๊ธฐ๋Š”์ง€์— ์žˆ๋‹ค.

    1. Servlet Filter๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•
    2. Interceptor๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

    ์Šคํ”„๋ง OSIV

    ๊ธฐ๋ณธ์ ์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ๊ณผ์ •์€ ๋™์ผํ•˜๋‹ค.

    1. ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด ์„ค์ •์— ๋”ฐ๋ผ Filter ๋˜๋Š” Interceptor์—์„œ ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
    2. Service, Repository ๋ ˆ์ด์–ด๋กœ ๋“ค์–ด๊ฐ€๋ฉด ํŠธ๋žœ์žญ์…˜์ด ์‹œ์ž‘๋˜๊ณ  ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด ์™„๋ฃŒ๋˜๋ฉด ํŠธ๋žœ์žญ์…˜์ด ์ข…๋ฃŒ๋œ๋‹ค. (flush ํ˜ธ์ถœ)
    3. ํŠธ๋žœ์žญ์…˜์€ ์ข…๋ฃŒ๋˜์—ˆ์ง€๋งŒ, DB ์ปค๋„ฅ์…˜์€ ๋‹ซํ˜€์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ปจํŠธ๋กค๋Ÿฌ ๋ ˆ์ด์–ด์—์„œ ์ง€์—ฐ ๋กœ๋”ฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
    4. ์š”์ฒญ์˜ ์ฒ˜๋ฆฌ๊ฐ€ ๋๋‚˜๋ฉด close ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ด ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ๋ฅผ ์ข…๋ฃŒํ•œ๋‹ค.

     

    ๐Ÿ” OSIV์˜ ํ™œ์šฉ

    1. View์—์„œ Entity ๊ฐ์ฒด๋ฅผ ์ง€์—ฐ ๋กœ๋”ฉํ•˜๊ฑฐ๋‚˜ ์ œ์–ดํ•˜๋Š” ๊ฒฝ์šฐ
    2. ๊ฐ™์€ ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ ๋‚ด์—์„œ ์—ฌ๋Ÿฌ ํŠธ๋žœ์žญ์…˜์„ ๊ณต์œ ํ•˜๋Š” ๊ฒฝ์šฐ

    OSIV๋Š” ์š”์ฒญ์ด ๋“ค์–ด์˜จ ์‹œ์ ๋ถ€ํ„ฐ ์‘๋‹ต์ด ๋๋‚  ๋•Œ ๊นŒ์ง€ ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์™€ DB ์ปค๋„ฅ์…˜์„ ์œ ์ง€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋งŽ์€ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
    ๋”ฐ๋ผ์„œ ์‹ค์‹œ๊ฐ„ ํŠธ๋ž˜ํ”ฝ์ด ์ค‘์š”ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ์ปค๋„ฅ์…˜์ด ๋ถ€์กฑํ•ด์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ๋งŒ์•ฝ OSIV๋ฅผ ๋ˆ ์ƒํƒœ๋กœ ์—”ํ‹ฐํ‹ฐ๋ฅผ ์ œ์–ดํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค๋ฉด Command์™€ Query๋ฅผ ๋ถ„๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

     

    ๐Ÿ” ์ปค๋งจ๋“œ์™€ ์ฟผ๋ฆฌ ๋ถ„๋ฆฌ

    ๋ณต์žกํ•œ ํ™”๋ฉด์˜ ์ถœ๋ ฅ์„ ์œ„ํ•ด ๋งŽ์€ ๋ณต์žกํ•œ ์ฟผ๋ฆฌ๊ฐ€ ๋‚˜๊ฐ€๋Š” ๊ฒฝ์šฐ ์„ฑ๋Šฅ ์ตœ์ ํ™”๊ฐ€ ์ค‘์š”ํ•œ๋ฐ, ํ™”๋ฉด์„ ์œ„ํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ์„œ๋น„์Šค ๋ ˆ์ด์–ด์™€ ํ•ต์‹ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋ถ„๋ฆฌํ•จ์œผ๋กœ์จ ์ด๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.
    WordService.class๊ฐ€ ์žˆ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ถ„๋ฆฌํ•œ๋‹ค.

    • WordService : ํ•ต์‹ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง
    • WordQueryService : ํ™”๋ฉด๊ณผ ๊ด€๋ จ๋œ ์„œ๋น„์Šค ๋กœ์ง (์ฃผ๋กœ ์ฝ๊ธฐ ์ „์šฉ ํŠธ๋žœ์žญ์…˜)

     

     

    ์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)
      'Spring/๊ฐœ๋…' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
      • [Spring] JWTํ† ํฐ ๊ฐœ๋…
      • [Spring] BindingResult๋ฅผ ์ด์šฉํ•œ ๊ฒ€์ฆ
      • [Spring] ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ
      • [Spring] ์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ ๋งคํ•‘
      ๋ฒ ์–ด_
      ๋ฒ ์–ด_
      Today I learned | ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฐœ๋ฐœ์ž

      ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”