๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ

Network

HTTP ์ƒํƒœ์ฝ”๋“œ ์ •๋ฆฌ

HTTP์˜ ์‘๋‹ต ์ฝ”๋“œ๋Š” 5๊ฐœ์˜ ํด๋ž˜์Šค(๋ถ„๋ฅ˜)๋กœ ๊ตฌ๋ถ„๋œ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์ˆซ์ž๋กœ ์‘๋‹ต ํด๋ž˜์Šค๊ฐ€ ๊ฒฐ์ •๋œ๋‹ค. 1xx (์ •๋ณด, Information) : ์š”์ฒญ์„ ๋ฐ›๊ณ , ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ณ„์†ํ•œ๋‹ค. 2xx (์„ฑ๊ณต, Successful) : ์š”์ฒญ์„ ์„ฑ๊ณต์ ์œผ๋กœ ๋ฐ›๊ณ , ์ •์ƒ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ–ˆ๋‹ค. 3xx (๋ฆฌ๋‹ค์ด๋ ‰์…˜, Redirection) : ์š”์ฒญ์„ ์™„๋ฃŒํ•˜๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€ ์ž‘์—… ์กฐ์น˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค. 4xx (ํด๋ผ์ด์–ธํŠธ ์˜ค๋ฅ˜, Client Error) : ์š”์ฒญ์˜ ์ž˜๋ชป๋œ ๋ฌธ๋ฒ• ๋“ฑ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๋‹ค. 5xx (์„œ๋ฒ„ ์˜ค๋ฅ˜, Server Error) : ์„œ๋ฒ„๊ฐ€ ์ •์ƒ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ–ˆ๋‹ค. [ 1xx (์กฐ๊ฑด๋ถ€ ์‘๋‹ต) ] ์š”์ฒญ์„ ๋ฐ›์•˜์œผ๋ฉฐ ์ž‘์—…์„ ๊ณ„์†ํ•œ๋‹ค. ์‹ค๋ฌด์—์„œ ์ž˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. [ 2xx (์„ฑ๊ณต) ] ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญํ•œ ๋™์ž‘์„ ์ˆ˜์‹ ํ•˜์—ฌ ์ดํ•ดํ–ˆ๊ณ ..

Network

HTTP ๊ธฐ์ดˆ [URL/Stateless/๋น„์—ฐ๊ฒฐ์„ฑ]

HTTP๋ฅผ ๋ณด๊ธฐ ์ „์— ๋จผ์ € ๊ฐ„๋‹จํžˆ URL์„ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. โœURL์˜ ๋ฌธ๋ฒ• scheme://[userinfo@]host[:port][/path][?query/[#fragment] ex ) https://www.google.com:433/search?q=hello&hl=ko ํ”„๋กœํ† ์ฝœ, ํ˜ธ์ŠคํŠธ๋ช…, ํฌํŠธ๋ฒˆํ˜ธ, ํŒจ์Šค, ์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ [ scheme ] ์ฃผ๋กœ ํ”„๋กœํ† ์ฝœ ์‚ฌ์šฉ (http, https ...) http๋Š” 80ํฌํŠธ, https๋Š” 433 ํฌํŠธ๋ฅผ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ, http์™€ https๋Š” ๋Œ€์ค‘์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๋žต๊ฐ€๋Šฅํ•˜๋‹ค. โž• https๋Š” http์— ๋ณด์•ˆ์ด ์ถ”๊ฐ€๋œ ๊ฒƒ์ด๋‹ค. โž• ํ”„๋กœํ† ์ฝœ์ด๋ž€? ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์ž์›์— ์ ‘๊ทผํ•  ๊ฒƒ์ธ๊ฐ€ ํ•˜๋Š” ์•ฝ์† ๊ทœ์น™์ด๋‹ค. [ userinfo ] URL์— ์‚ฌ์šฉ์ž์ •๋ณด๋ฅผ ํฌํ•จํ•ด์„œ ์ธ..

Network

HTTP ๊ธฐ์ดˆ [์ธํ„ฐ๋„ท ๋„คํŠธ์›Œํฌ/IP/TCP/ UDP]

[ ์ธํ„ฐ๋„ท ๋„คํŠธ์›Œํฌ ] IP (Internet Protocol) TCP, UDP PORT DNS ์ธํ„ฐ๋„ท์€ ๋ณต์žกํ•œ ์ธํ„ฐ๋„ท ๋ง์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋ฅผ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ธํ„ฐ๋„ท ๋ง์„ ๊ฑฐ์ณ์„œ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜๊ณ , ๋ฐ›์•„์•ผ ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ์„œ๋ฒ„๋งˆ๋‹ค IP์ฃผ์†Œ๋ฅผ ๋ถ€์—ฌํ•˜๊ณ , ์ด IP์ฃผ์†Œ๋กœ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ด IP( Internet Protocol)์ด๋‹ค. [ IP (Internet Protocol) ] โœ IP์˜ ์—ญํ•  ์ง€์ •ํ•œ IP ์ฃผ์†Œ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌ ํŒจํ‚ท(Packet)์ด๋ผ๋Š” ํ†ต์‹  ๋‹จ์œ„๋กœ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๐Ÿ“ ํŒจํ‚ท ์ •๋ณด #์ถœ๋ฐœ์ง€ IP = ํด๋ผ์ด์–ธํŠธ IP ๐Ÿ“ซ ์ „๋‹ฌ ๊ณผ์ • IP์ฃผ์†Œ๊ฐ€ ๋‹ด๊ธด ํŒจํ‚ท์„ ์ธํ„ฐ๋„ท๋ง์˜ ์—ฌ๋Ÿฌ ๋…ธ๋“œ๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„๋กœ ์ „๋‹ฌํ•˜๋ฉด, ์„œ๋ฒ„์—์„œ๋Š” ํ™•์ธํ–ˆ๋‹ค๋Š” ์‹ ํ˜ธ๋ฅผ ๋‹ค์‹œ ํด๋ผ์ด์–ธํŠธ์— ๋„˜๊ธด๋‹ค. ํ•˜์ง€๋งŒ ์ธํ„ฐ..

Spring

Spring ํ•ต์‹ฌ์›๋ฆฌ-๊ธฐ๋ณธ[ ๋นˆ ์ƒ๋ช…์ฃผ๊ธฐ ์ฝœ๋ฐฑ]

๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ์ปค๋„ฅ์…˜ ํ’€์ด๋‚˜, ๋„คํŠธ์›Œํฌ ์†Œ์บฃ์ฒ˜๋Ÿผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹œ์ž‘ ์‹œ์ ์— ํ•„์š”ํ•œ ์—ฐ๊ฒฐ์„ ๋ฏธ๋ฆฌ ํ•ด๋‘๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ข…๋ฃŒ ์‹œ์ ์— ์—ฐ๊ฒฐ์„ ๋ชจ๋‘ ์ข…๋ฃŒํ•˜๋Š” ์ž‘์—…์„ ํ•˜๋ ค๋ฉด ๊ฐ์ฒด์˜ ์ดˆ๊ธฐํ™”์™€ ์ข…๋ฃŒ ์ž‘์—…์ด ํ•„์š”ํ•˜๋‹ค. [ ์Šคํ”„๋ง ๋นˆ์˜ ์ด๋ฒคํŠธ ๋ผ์ดํ”„์‚ฌ์ดํด (์‹ฑ๊ธ€ํ†ค์ผ ๋•Œ) ] ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ ์Šคํ”„๋ง ๋นˆ ์ƒ์„ฑ ์˜์กด๊ด€๊ณ„ ์ฃผ์ž… ์ดˆ๊ธฐํ™” ์ฝœ๋ฐฑ (๋นˆ์ด ์ƒ์„ฑ๋˜๊ณ , ๋นˆ์˜ ์˜์กด๊ด€๊ณ„ ์ฃผ์ž…์ด ์™„๋ฃŒ๋œ ํ›„ ํ˜ธ์ถœ) ์‚ฌ์šฉ ์†Œ๋ฉธ์ „ ์ฝœ๋ฐฑ (๋นˆ์ด ์†Œ๋ฉธ๋˜๊ธฐ ์ง์ „์— ํ˜ธ์ถœ) ์Šคํ”„๋ง ์ข…๋ฃŒ โœ ๊ฐ์ฒด์˜ ์ƒ์„ฑ๊ณผ ์ดˆ๊ธฐํ™”๋ฅผ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ์ƒ์„ฑ์ž๋Š” ํ•„์ˆ˜ ์ •๋ณด๋Š” ๋ฐ›๊ณ , ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•ด์„œ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ๋ฐ˜๋ฉด์— ์ดˆ๊ธฐํ™”๋Š” ์ƒ์„ฑ๋œ ๊ฐ’์„ ํ™œ์šฉํ•ด์„œ ์™ธ๋ถ€ ์ปค๋„ฅ์…˜์— ์—ฐ๊ฒฐํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์ƒ์„ฑ์ž ์•ˆ์—์„œ ๋ฌด๊ฑฐ์šด ์ž‘์—…์„ ํ•˜๋Š” ๊ฒƒ์€ ์œ ์ง€๋ณด์ˆ˜๋ฉด์—์„œ ์ข‹์ง€ ์•Š๋‹ค. ์Šคํ”„๋ง์€ 3๊ฐ€์ง€ ๋ฐฉ๋ฒ•..

Spring

Spring ํ•ต์‹ฌ์›๋ฆฌ-๊ธฐ๋ณธ [@Autowired/@Qualifier/@Primary]

์กฐํšŒ ๋Œ€์ƒ์˜ ๋นˆ์ด 2๊ฐœ ์ด์ƒ์ผ ๋•Œ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์ด 3๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. @Autowired ํ•„๋“œ ๋ช… ๋งค์นญ @Qualifier @Primary [ @Autowired ํ•„๋“œ ๋ช… ๋งค์นญ ] @Autowired๋Š” ์ฒ˜์Œ์— ํƒ€์ž… ๋งค์นญ์„ ์‹œ์ž‘ํ•œ๋‹ค. ํ•œ ํƒ€์ž…์— ์—ฌ๋Ÿฌ ๋นˆ์ด ์กด์žฌํ•  ๊ฒฝ์šฐ์—๋Š” ์ถฉ๋Œ์ด ์ผ์–ด๋‚˜์„œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋œ๋‹ค. ์ด๋•Œ๋Š” ํ•„๋“œ ๋ช…์„ ๋ณ€๊ฒฝํ•˜๋ฉด ๋œ๋‹ค. @Autowired private DiscountPolicy discountPolicy // DiscountPolicy ์— rateDiscountPolicy์™€ fixDiscountPolicy๊ฐ€ ์กด์žฌํ•จ ์ด๋Ÿฐ ์ฝ”๋“œ์—์„œ ์ •ํ™•ํ•œ ํ•„๋“œ๋ช…์œผ๋กœ ์ง€์ •ํ•ด์ค˜์•ผ ํ•œ๋‹ค. @Autowired private DiscountPolicy rateDiscountPolicy ์ด๋ ‡๊ฒŒ ์ฃผ์ž…ํ•ด์ฃผ๋ฉด rateDisc..

์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

Spring ํ•ต์‹ฌ์›๋ฆฌ-๊ธฐ๋ณธ [์˜์กด๊ด€๊ณ„ ์ž๋™ ์ฃผ์ž… 4๊ฐ€์ง€ ๋ฐฉ๋ฒ•]

์˜์กด๊ด€๊ณ„ ์ฃผ์ž…ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ 4๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ์ƒ์„ฑ์ž ์ฃผ์ž… ์ˆ˜์ •์ž ์ฃผ์ž… ( setter ์ฃผ์ž… ) ํ•„๋“œ ์ฃผ์ž… ์ผ๋ฐ˜ ๋ฉ”์„œ๋“œ ์ฃผ์ž… [ ์ƒ์„ฑ์ž ์ฃผ์ž… ] ์ƒ์„ฑ์ž๋ฅผ ํ†ตํ•ด์„œ ์˜์กด๊ด€๊ณ„๋ฅผ ์ฃผ์ž…๋ฐ›๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์ƒ์„ฑ์ž ํ˜ธ์ถœ์‹œ์ ์— 1๋ฒˆ๋งŒ ํ˜ธ์ถœ๋œ๋‹ค. ๋ถˆ๋ณ€, ํ•„์ˆ˜ ์˜์กด๊ด€๊ณ„ ์‚ฌ์šฉ @Component public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolic..

Spring

Spring ํ•ต์‹ฌ์›๋ฆฌ-๊ธฐ๋ณธ [์ปดํฌ๋„ŒํŠธ ์Šค์บ”]

@Bean๊ณผ xml์„ ์ด์šฉํ•ด์„œ ๋นˆ์„ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ, ์ด ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ๋“ฑ๋กํ•ด์•ผ ํ•  ๋นˆ์ด ๋งŽ์„ ๋•Œ ๋ฒˆ๊ฑฐ๋กœ์›Œ ์ง„๋‹ค. @Conponent ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ ๋นˆ์— ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. โž• ์˜์กด๊ด€๊ณ„๋Š” @Autowired ์–ด๋…ธํ…Œ์ด์…˜์œผ๋กœ ํ•ด๊ฒฐํ•œ๋‹ค. [ @Component ์• ๋…ธํ…Œ์ด์…˜ ์ถ”๊ฐ€ ] @Configuration @ComponentScan public class AutoAppConfig {} ๋จผ์ € AppConfig๋ฅผ ๋งŒ๋“ค๊ณ , @Configuration๊ณผ @Component๋ฅผ ๋ถ™์—ฌ์ค€๋‹ค. ์ค‘์š”ํ•œ ๊ฑด ์ด ํด๋ž˜์Šค๋Š” package hello.core; ์— ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค! ๋งŒ๋“  ์œ„์น˜์˜ ํ•˜์œ„ ํด๋”๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์œ„ ์‚ฌ์ง„ ์ฒ˜๋Ÿผ ์ปดํฌ๋„ŒํŠธ ์Šค์บ” ๋Œ€์ƒ์ด ๋˜์–ด์•ผ ํ•  ํด๋ž˜์Šค์— ์ปดํฌ๋„ŒํŠธ ์• ๋…ธํ…Œ์ด์…˜์„ ๋ถ™์—ฌ์ค€๋‹ค..

Algorithm/PROGRAMMERS

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค "์™„์ฃผํ•˜์ง€ ๋ชปํ•œ ์„ ์ˆ˜" [์•Œ๊ณ ๋ฆฌ์ฆ˜/ํ•ด์‰ฌ/์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต/ํŒŒ์ด์ฌ(python)]

https://programmers.co.kr/learn/courses/30/parts/12077 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr [ ๋ฌธ์ œ ] ์ˆ˜๋งŽ์€ ๋งˆ๋ผํ†ค ์„ ์ˆ˜๋“ค์ด ๋งˆ๋ผํ†ค์— ์ฐธ์—ฌํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋‹จ ํ•œ ๋ช…์˜ ์„ ์ˆ˜๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ๋ชจ๋“  ์„ ์ˆ˜๊ฐ€ ๋งˆ๋ผํ†ค์„ ์™„์ฃผํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋งˆ๋ผํ†ค์— ์ฐธ์—ฌํ•œ ์„ ์ˆ˜๋“ค์˜ ์ด๋ฆ„์ด ๋‹ด๊ธด ๋ฐฐ์—ด participant์™€ ์™„์ฃผํ•œ ์„ ์ˆ˜๋“ค์˜ ์ด๋ฆ„์ด ๋‹ด๊ธด ๋ฐฐ์—ด completion์ด ์ฃผ์–ด์งˆ ๋•Œ, ์™„์ฃผํ•˜์ง€ ๋ชปํ•œ ์„ ์ˆ˜์˜ ์ด๋ฆ„์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. [ ์ œํ•œ์‚ฌํ•ญ ] ๋งˆ๋ผํ†ค ๊ฒฝ๊ธฐ์— ์ฐธ์—ฌํ•œ ์„ ์ˆ˜์˜ ์ˆ˜๋Š” 1๋ช… ์ด์ƒ 100..

Spring

Spring ๊ธฐ๋ณธ [ ์‹ฑ๊ธ€ํ†ค/์Šคํ”„๋ง์ปจํ…Œ์ด๋„ˆ]

์›น์˜ ๊ฒฝ์šฐ์—๋Š” ๊ณ ๊ฐ์ด ์—ฌ๋Ÿฌ๋ช…์ด๊ธฐ ๋•Œ๋ฌธ์— ์š”์ฒญํ• ๋•Œ๋งˆ๋‹ค ๊ฐ์ฒด๋ฅผ ์ƒˆ๋กœ ์ƒ์„ฑํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„๊ฐ€ ์ •๋ง์ •๋ง ์‹ฌํ•˜๋‹ค! ๊ทธ๋ž˜์„œ ํ•ด๊ฒฐ์„ ํ•ด์ค˜์•ผ ํ•œ๋‹ค. ๋ฐฉ๋ฒ•์—๋Š” ๋‘๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•œ๋‹ค. 1. ์ง์ ‘ ์‹ฑ๊ธ€ํ†ค ์ƒ์„ฑ 2. ์‹ฑ๊ธ€ํ†ค ์ปจํ…Œ์ด๋„ˆ ์ด์šฉ [ ์ง์ ‘ ์‹ฑ๊ธ€ํ†ค ์ƒ์„ฑ ] ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์„ ์ ์šฉํ•˜๋ฉด ๊ณ ๊ฐ์˜ ์š”์ฒญ์ด ์˜ฌ ๋•Œ๋งˆ๋‹ค ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์ด๋ฏธ ๋งŒ๋“ค์–ด์ง„ ๊ฐ์ฒด๋ฅผ ๊ณต์œ ํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์ง์ ‘ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ์—ฌ๋Ÿฌ ๋‹จ์ ์ด ์กด์žฌํ•œ๋‹ค. ์ž‘์„ฑํ•ด์•ผํ•  ์ฝ”๋“œ๊ฐ€ ๋งŽ์•„์ง„๋‹ค. DIP๋ฅผ ์œ„๋ฐ˜ํ•œ๋‹ค. ( ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ตฌ์ฒดํด๋ž˜์Šค๋ฅผ ์˜์กดํ•œ๋‹ค) private static final SingletonService instance = new SingletonService(); DIP๋ฅผ ์œ„๋ฐ˜ํ•˜๋ฉด OCP๋„ ์œ„๋ฐ˜ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋งŽ๋‹ค. ๋‚ด๋ถ€์†์„ฑ์„ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ์ดˆ๊ธฐํ™” ํ•˜๊ธฐ ์–ด๋ ต..

Spring

Spring ๊ธฐ๋ณธ [์Šคํ”„๋ง๋นˆ ์กฐํšŒ]

์Šคํ”„๋ง ๋นˆ ์กฐํšŒ๋Š” ์กฐํšŒํ•˜๋Š” ๋ฒ•๋งŒ ๊ฐ„๋‹จํžˆ ์ •๋ฆฌํ•˜๋Š” ์šฉ๋„๋กœ๋งŒ ํฌ์ŠคํŒ… ํ•ด์•ผ๊ฒ ๋‹ค. [ ๋ชจ๋“  ๋นˆ ์ถœ๋ ฅ ] โž– applicationContext.getBeanDefinitionNames(); : ์Šคํ”„๋ง์— ๋“ฑ๋ก๋œ ๋ชจ๋“  ๋นˆ ์ด๋ฆ„์„ ์กฐํšŒํ•œ๋‹ค. โž– applicationContext.getBean(); : ๋นˆ ์ด๋ฆ„์œผ๋กœ ๋œ ๋นˆ ๊ฐ์ฒด๋ฅผ ์กฐํšŒํ•œ๋‹ค. [ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋นˆ ์ถœ๋ ฅ ] โž– .getRole()์„ ์‚ฌ์šฉํ•˜๋ฉด ์Šคํ”„๋ง ๋‚ด๋ถ€์—์„œ ์ด์šฉํ•˜๋Š”๊ฑด์ง€ ์‚ฌ์šฉ์ž๊ฐ€ ๋“ฑ๋กํ•œ ๋นˆ์ธ์ง€ ํ™•์ธํ•ด์ฃผ๋Š” ์—ญํ• ์ด๋‹ค. โž– ROLE_APPLICATION : ์‚ฌ์šฉ์ž๊ฐ€ ์ •์˜ํ•œ ๋นˆ โž– ROLE_INFRASTRUCTURE : ์Šคํ”„๋ง์ด ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋นˆ ๐Ÿ‘‰ Ex if(beanDefinition.getRole() == BeanDefinition.ROLE_APPLICATION..

DAHLIA CHOI
'๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (9 Page)