OAuth2 ์„ค์ • ํŒŒ์ผ ์ž‘์„ฑํ•˜๊ธฐ
ยท
TIL/Java
@RequiredArgsConstructor@Configurationpublic class WebOAuthSecurityConfig { // ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ ๊ธฐ๋Šฅ ๋น„ํ™œ์„ฑํ™” @Bean public WebSecurityCustomizer configure() { return (web) -> web.ignoring() .requestMatchers(toH2Console()) .requestMatchers("/img/**", "/css/**", "/js/**"); } @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { ..
Spring Security ํŒŒ์ผ ์„ค์ •ํ•˜๊ธฐ
ยท
TIL/Java
@Configuration@RequiredArgsConstructorpublic class WebSecurityConfig { private final UserDetailService userService; @Bean public WebSecurityCustomizer configure() { return (web) -> web.ignoring() .requestMatchers(toH2Console()) .requestMatchers("/static/**"); } @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception ..
9์›” ํšŒ๊ณ 
ยท
TIL/ํšŒ๊ณ 
์ด๋ ฅ์„œ์š”์ฆ˜ ์ด๋ ฅ์„œ๋ฅผ ๋‹ค๋“ฌ๋Š” ๋ฐ ๋งŽ์€ ์‹œ๊ฐ„์„ ๋ณด๋‚ด๊ณ  ์žˆ๋‹ค. ๋ฌด์–ธ๊ฐ€๋ฅผ ์—ด์‹ฌํžˆ ํ•ด์™”๋˜ ๊ฒƒ ๊ฐ™์€๋ฐ ๋ง‰์ƒ ์ ์œผ๋ ค๋‹ˆ ๊ทธ ๋ฌด์–ธ๊ฐ€๋“ค์€ ์–ด๋””๊ฐ”๋Š”์ง€ ๋ฌด์—‡์„ ์จ์•ผํ• ์ง€ ๋ง‰๋ง‰ํ•ด์ง„๋‹ค. ์ผ๋‹จ ์‹œ์ž‘ํ•ด๋ณด์ž  java ๊ณต๋ถ€java ๊ณต๋ถ€๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ–ˆ๋‹ค. ๊ทธ๋™์•ˆ ์ž๊ฒฉ์ฆ ์ค€๋น„์— ์ง‘์ค‘ํ•˜๋Š๋ผ ์ž ์‹œ ์†์„ ๋†“์•˜๋˜ ํƒ“์ธ์ง€, ์žŠ์–ด๋ฒ„๋ฆฐ ๋ถ€๋ถ„๋“ค์ด ๋งŽ์•„ ๋‹ค์‹œ ์ตํžˆ๋Š” ๋ฐ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๊ณ  ์žˆ๋‹ค. ๊ทธ๋ž˜๋„ ์ฐจ๊ทผ์ฐจ๊ทผ ๋ณต์Šตํ•˜๋ฉด์„œ ์ด์ „์— ๋ฐฐ์› ๋˜ ๊ฒƒ๋“ค์„ ๋˜์ฐพ๊ณ  ์žˆ๊ณ , ๋” ๊นŠ์ด ์žˆ๋Š” ์ดํ•ด๋ฅผ ๋ชฉํ‘œ๋กœ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” ๋” ๊พธ์ค€ํžˆ, ์ฒด๊ณ„์ ์œผ๋กœ ๊ณต๋ถ€ ๊ณ„ํš์„ ์„ธ์›Œ์„œ ์ง„ํ–‰ํ•  ๊ณ„ํš์ด๋‹ค. ์˜์–ด ๊ณต๋ถ€ ์ •๋ง ๋งค์ผ ํ•˜๊ณ  ์žˆ๋Š” ๊ณต๋ถ€! ์ด๋ฒˆ ๋‹ฌ๋„ ์˜์–ด ๊ณต๋ถ€๋Š” ๊ฐœ๊ทผ. ๊พธ์ค€ํžˆ ํ•™์Šตํ•  ์ˆ˜ ์žˆ๊ฒŒ ์•ฑ๋‚ด ๋ฆฌ๊ทธ๋ผ๋Š” ์‹œ์Šคํ…œ์ด ์žˆ๋Š”๋ฐ ์ด๋ฒˆ๋‹ฌ์— ๋ฌด๋ ค ๋งˆ์ง€๋ง‰ ๋ฆฌ๊ทธ์ธ ๊ทธ๋žœ๋“œ๋งˆ์Šคํ„ฐ๊นŒ์ง€ ๋‹ฌ์„ฑํ–ˆ๋‹ค. ๋งค์ผ 30๋ถ„ ์ •..
8์›”๋‹ฌ ํšŒ๊ณ 
ยท
TIL/ํšŒ๊ณ 
์ž๊ฒฉ์ฆ ์‹œํ—˜๊ณต๋ถ€์ œ๋ฐœ..!! ์ด๋ฒˆ์—๋Š”!!์˜์–ด๊ณต๋ถ€๊พธ์ค€ํžˆ ๋งํ•ด๋ณด์นด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์˜์–ด ๊ณต๋ถ€๋ฅผ ํ•˜๊ณ  ์žˆ๋‹ค. ํ•™๊ต ๋‹ค๋‹ ๋•Œ๋Š” ๊ณต๋ถ€ํ•˜๊ธฐ ์‹ซ์—ˆ๋Š”๋ฐ ์Šค์Šค๋กœ ๊ณต๋ถ€ํ•˜๊ณ  ์‹ถ์–ด์ง€๋‹ค๋‹ˆ ์‹ ๊ธฐํ•˜๋‹ค. ์ด๋ฒˆ ๋‹ฌ๋„ ๋งํ•ด๋ณด์นด๋ฅผ ๊พธ์ค€ํžˆ ์‚ฌ์šฉํ•˜์—ฌ ํ•œ ๋‹ฌ ๊ฐœ๊ทผ! ์ทจ๋ฏธํ™œ๋™์ทจ๋ฏธ ํ™œ๋™์„ ๊พธ์ค€ํžˆ ํ•˜๊ณ  ์žˆ๋‹ค. ๋‘ ์นซ๋”ฐ์น˜ ๋ ˆ์Šจ์„ ์ฃผ 2ํšŒ ์ง„ํ–‰ํ•˜๊ณ , ์—ฐ์Šต์€ ์˜ค์ „ ์ผ์ฐ ์ฃผ 4ํšŒ 2์‹œ๊ฐ„์”ฉ ํ•˜๊ณ  ์žˆ๋‹ค. ๊ธฐ์™• ์‹œ์ž‘ํ–ˆ์œผ๋‹ˆ ์ž˜ ์น˜๊ณ  ์‹ถ๊ณ  ๋…ธ๋ž˜ ํ•˜๋‚˜๋ฅผ ์™„๊ณกํ•˜๊ณ  ์‹ถ์–ด์„œ ์—ฐ์Šตํ•˜๋Ÿฌ ๊ฐ„๋‹ค. ์ฒ˜์Œ์—๋Š” ์†๊ณผ ๋ฐœ์ด ๋ฒ„๋ฒ…๊ฑฐ๋ ธ์ง€๋งŒ ์ด์ œ๋Š” ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์›€์ง์ด๊ณ  ๋ฐ•์ž๊ฐ์„ ์ตํžˆ๋Š” ๊ฒƒ์ด ์žฌ๋ฏธ์žˆ๋‹ค.๋˜ ํ•˜๋‚˜์˜ ์ƒˆ๋กœ์šด ๋ฃจํ‹ด์œผ๋กœ ํ•„์‚ฌ๋ฅผ ์‹œ์ž‘ํ–ˆ๋‹ค. ์‹ ๋ฌธ ์ปฌ๋Ÿผ์„ ํ•„์‚ฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋‹ค. ๋ฌธ์žฅ์„ ์™ธ์›Œ์„œ ํ•„์‚ฌ๋ฅผ ํ•˜๋Š”๊ฑด๋ฐ ์ƒ๊ฐ๋ณด๋‹ค ์‰ฝ์ง€ ์•Š๋‹ค.  ์ปจํผ๋Ÿฐ์Šค์–ธ๋ฆฌ์–ผ ๋ถ„์•ผ ์ปจํผ๋Ÿฐ์Šค์— ์ฐธ์—ฌํ–ˆ๋‹ค. ์•„๋ž˜ ํ›„๊ธฐ  ์–ธ๋ฆฌ์–ผ..
JWT ํ† ํฐ ๊ธฐ๋ฐ˜ ๊ฐœ๋… ์•Œ์•„๋ณด๊ธฐ
ยท
TIL/Java
์„ธ์…˜ ๊ธฐ๋ฐ˜ ์ธ์ฆ ์„œ๋ฒ„ ๊ธฐ๋ฐ˜ ์ธ์ฆ์€ ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธํ•˜๋ฉด ์„œ๋ฒ„๊ฐ€ ์„ธ์…˜์„ ์ƒ์„ฑํ•˜๊ณ , ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์„ธ์…˜ ID๋ฅผ ๋ฐœ๊ธ‰ํ•˜๋Š” ๋ฐฉ์‹์„œ๋ฒ„๋Š” ์ด ์„ธ์…˜ ID๋ฅผ ํ†ตํ•ด ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•จ๋™์ž‘ ๋ฐฉ์‹์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธํ•˜๋ฉด ์„œ๋ฒ„๋Š” ์„ธ์…˜์„ ์ƒ์„ฑํ•˜๊ณ , ํ•ด๋‹น ์„ธ์…˜ ID๋ฅผ ํด๋ผ์ด์–ธํŠธ์— ์ฟ ํ‚ค๋กœ ์ „๋‹ฌํ•œ๋‹ค.ํด๋ผ์ด์–ธํŠธ๋Š” ์ดํ›„ ์š”์ฒญ๋งˆ๋‹ค ์ด ์„ธ์…˜ ID๋ฅผ ์„œ๋ฒ„์— ์ „๋‹ฌํ•˜์—ฌ ์ธ์ฆ์„ ํ™•์ธํ•œ๋‹ค.์„œ๋ฒ„๋Š” ์„ธ์…˜ ์ €์žฅ์†Œ์—์„œ ์„ธ์…˜ ID๋ฅผ ํ™•์ธํ•˜๊ณ , ํด๋ผ์ด์–ธํŠธ๋ฅผ ์ธ์ฆํ•œ๋‹ค.์žฅ์ : ์„œ๋ฒ„์—์„œ ๊ด€๋ฆฌ๋˜๋ฏ€๋กœ ๋ณด์•ˆ์ด ๋น„๊ต์  ์‰ฝ๋‹ค.๋‹จ์ : ์„œ๋ฒ„์— ์„ธ์…˜์„ ์ €์žฅํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์„œ๋ฒ„์˜ ์ž์›์ด ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค.์„œ๋ฒ„๊ฐ€ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•ด์•ผ ํ•˜๋ฏ€๋กœ, ์„œ๋ฒ„ ๊ฐ„ ์„ธ์…˜ ๋™๊ธฐํ™” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋กœ๊ทธ์ธํ•˜๋ฉด ์„œ๋ฒ„๊ฐ€ ์ธ์ฆ ํ† ํฐ์„ ์ƒ์„ฑํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ œ๊ณตํ•˜๊ณ , ํด๋ผ์ด์–ธํŠธ๋Š” ์ด..
์›”๊ฐ„ํšŒ๊ณ  2024 6์›” ํšŒ๊ณ 
ยท
TIL/ํšŒ๊ณ 
์ฃผ๋ง ๋ชจ๊ฐ์ฝ” ์šฐ์—ฐํžˆ ์ฃผ๋ง์— ๋ชจ์—ฌ ๊ณต๋ถ€ํ•˜๋Š” ๋ชจ๊ฐ์ฝ” ๋ชจ์ง‘๊ธ€์„ ๋ณด๊ฒŒ ๋˜์—ˆ๋‹ค. ํ‰์†Œ๋ผ๋ฉด ์ฐธ์—ฌํ•  ์ƒ๊ฐ๋„ ์•ˆ ๋“ค์—ˆ๊ฒ ์ง€๋งŒ, ๊ณต๋ถ€ํ•˜๋Š” ์‹œ๊ฐ„์„ ์ข€ ๋” ๋Š˜๋ฆฌ๊ณ  ์‹ถ์€ ๋งˆ์Œ์— ์‹ ์ฒญํ–ˆ๋‹ค. ์•ฝ 4-5๋ช…์˜ ์ธ์›์ด ์ฃผ๋ง ์˜คํ›„์— ์นดํŽ˜์— ๋ชจ์—ฌ ๊ฐ์ž ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์‹œ๊ฐ„์„ ๋ณด๋ƒˆ๋‹ค. ์ƒˆ๋กœ์šด ์‚ฌ๋žŒ๋“ค๊ณผ์˜ ๋งŒ๋‚จ์ด์—ˆ๊ณ  ๊ทธ ์†์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ ๋“ค์„ ๋Š๋‚„ ์ˆ˜ ์žˆ์—ˆ๋‹ค.1. ์ง‘์ค‘๋ ฅ ํ–ฅ์ƒ: ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ์—ด์‹ฌํžˆ ๊ณต๋ถ€ํ•˜๋Š” ๋ชจ์Šต์„ ๋ณด๋ฉด์„œ ๋‚˜๋„ ๋” ์ง‘์ค‘ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ํ˜ผ์ž ๊ณต๋ถ€ํ•  ๋•Œ๋ณด๋‹ค ๋” ๋ชฐ์ž…ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.2. ๋™๊ธฐ ๋ถ€์—ฌ: ํ•จ๊ป˜ ๊ณต๋ถ€ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค๊ณผ ์ด์•ผ๊ธฐ๋ฅผ ๋‚˜๋ˆ„๋ฉด์„œ ์„œ๋กœ์—๊ฒŒ ๊ธ์ •์ ์ธ ์ž๊ทน์ด ๋˜์—ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ๊ณต๋ถ€ ๋ฐฉ๋ฒ•๊ณผ ๋ชฉํ‘œ๋ฅผ ๋“ค์œผ๋ฉฐ ๋‚˜๋„ ๋” ์—ด์‹ฌํžˆ ํ•ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.3. ๋„คํŠธ์›Œํ‚น: ๋‹ค์–‘ํ•œ ๋ฐฐ๊ฒฝ์„ ๊ฐ€์ง„ ์‚ฌ๋žŒ๋“ค๊ณผ์˜ ๋งŒ๋‚จ์ด ์ƒˆ๋กœ์šด ์ธ์‚ฌ์ดํŠธ๋ฅผ ์ œ๊ณตํ–ˆ๋‹ค. ์„œ๋กœ..
next step
ยท
TIL/ํšŒ๊ณ 
์ง€๊ธˆ ๋‚ด๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๊ณผ ํ•ด์•ผํ•  ๊ฒƒ์„ ํ•˜๋‹ค๋ณด๋ฉด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๊ธธ์ด ๋ณด์ด์ง€ ์•Š์„๊นŒ์•‰์•„์„œ ๊ณ ๋ฏผ๋งŒ ํ•˜๋Š”๊ฑด ์•„๋ฌด๋Ÿฐ ๋‹ต์ด ๋  ์ˆ˜ ์—†๋‹ค. ํ•ด์•ผํ•  ์ผ๊ณผ ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์„ ํ•˜์ž
ํ”„๋กœ์ ํŠธ 5, ์ด์ œ ํ…Œ์ŠคํŠธ๋‹ค
ยท
TIL/ํšŒ๊ณ 
์‹ค์ œ ํ”„๋กœ์ ํŠธ๋Š” ๋์ด์ง€๋งŒ ๋ฐ€๋ฆฐ ํšŒ๊ณ ๋ฅผ ์ฐจ์ฐจ ์จ๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.์ด๋ฒˆ์ฃผ๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ–ˆ๋‹ค. ๐ŸŒฑ ๋ฐฐ์šด ๊ฒƒ ํ…Œ์ŠคํŠธ ์‹œ๋‚˜๋ฆฌ์˜ค, QA ์ง„ํ–‰ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ, ๊ธฐ๋Šฅ ํ…Œ์ŠคํŠธ, ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ ๋“ฑ์„ ์ง„ํ–‰ํ•˜๊ณ  ๋ฌธ์„œ ์ž‘์—…์„ ํ–ˆ๋‹ค. ๊ธฐ๋Šฅ ํ…Œ์ŠคํŠธ ์‚ฌ์šฉ์ž ๊ด€์ ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์™ธ๋ถ€๋ฅผ ํ…Œ์ŠคํŠธ, ์‹ค์ œ ์‚ฌ์šฉ์ž๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•œ ํ…Œ์ŠคํŠธ๋‹จ์œ„ ํ…Œ์ŠคํŠธ(Unit Tests)๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ ๊ด€์ ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋‚ด๋ถ€๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ,ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๋ชจ๋“ˆ๋“ค์ด ํ•จ๊ป˜ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ณผ์ •์œผ๋กœ, ์ด๋Š” ๊ฐœ๋ณ„์ ์œผ๋กœ๋Š” ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ๋ชจ๋“ˆ๋“ค์ด ํ†ตํ•ฉ๋˜์—ˆ์„ ๋•Œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋ฅผ ์‚ฌ์ „์— ๋ฐœ๊ฒฌํ•˜๊ณ  ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ์—ญํ• ๊ฐ ๊ฒฐ๊ณผ์™€ ๊ณผ์ •์„ ๋ฌธ์„œ๋กœ ๋‚จ๊ธฐ๋Š” ์ž‘์—…๋„ ์ดˆ๊ธฐ ํ”„๋กœ์ ํŠธ ๋ฐฉํ–ฅ์„ฑ์— ๋งก๊ฒŒ ์ค‘์š”..
๋ž˜๋‹ˆ
'TIL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก