์ „์ฒด ๊ธ€ 34

AirDnS ํšŒ๊ณ  #2

https://docs.tosspayments.com/guides/payment-widget/integration ์—ฐ๋™ํ•˜๊ธฐ | ํ† ์ŠคํŽ˜์ด๋จผ์ธ  ๊ฐœ๋ฐœ์ž์„ผํ„ฐ ํ† ์ŠคํŽ˜์ด๋จผ์ธ ์˜ ๊ฐ„ํŽธํ•œ ๊ฒฐ์ œ ์—ฐ๋™ ๊ณผ์ •์„ ํ•œ๋ˆˆ์— ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋‹จ๊ณ„๋ณ„ ์„ค๋ช…๊ณผ ํ•จ๊ป˜ ๋‹ฌ๋ผ์ง€๋Š” UI์™€ ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•ด๋ณด์„ธ์š”. docs.tosspayments.com ํ† ์ŠคํŽ˜์ด๋จผ์ธ ์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ฒฐ์ œ flow๋Š” ์œ„์™€ ๊ฐ™๋‹ค. ์ฃผ์š” ์ •๋ณด ๋ช‡๊ฐ€์ง€๋งŒ ์บก์ณํ•ด์„œ ๋„ฃ์—ˆ์ง€๋งŒ ์•„๋ž˜ ์ด๋ฏธ์ง€์—์„œ๋„ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ ํ† ์ŠคํŽ˜์ด๋จผ์ธ ์—์„œ๋Š” ๊ฐœ๋ฐœํ•˜๊ธฐ ํŽธ๋ฆฌํ•˜๊ฒŒ ์ƒ์„ธํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ๊ฐ„ํŽธ๊ฒฐ์ œ๋ฅผ ์ ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์šฐ์„  ๋ณธ์ธ์ด ์›ํ•˜๋Š” ํ”Œ๋žซํผ์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ฒฐ์ œํ๋ฆ„์ด๋‚˜ ์ ์šฉ ๋ฐฉ์‹์— ๋Œ€ํ•ด ๋จผ์ € ์ƒ์„ธํ•˜๊ฒŒ ๊ณต๋ถ€ํ•˜๊ธฐ๋ฅผ ์ถ”์ฒœํ•œ๋‹ค. ๋‚˜๋Š” ์‚ฌ์ „์— ๋งŽ์€ ์ •๋ณด๋ฅผ ์ฐพ์•„๋ณด๊ณ  ํ† ์ŠคํŽ˜์ด๋จผ์ธ  flow๋ฅผ ์ดํ•ดํ–ˆ๋‹ค! ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Œ์—..

PROJECT 2024.04.12

AirDnS ํšŒ๊ณ  #1

์ตœ์ข… ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ '๊ฒฐ์ œ' ๊ธฐ๋Šฅ์„ ์„œ๋น„์Šค์—์„œ ๋‹ค๋ค„๋ณด๊ณ  ์‹ถ์—ˆ๊ณ  ๋ชจ๋“ˆ์„ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ์€ ๊ธฐํ•œ ๋‚ด์— ๋ฌด๋ฆฌ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๊ธฐ์— ๊ฐ„ํŽธ๊ฒฐ์ œ API ๋„์ž…์„ ์„ ํƒํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๋งŽ์€ ํ”Œ๋žซํผ์—์„œ ๊ฐ„ํŽธ๊ฒฐ์ œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ๊ทธ ์ค‘ ํ† ์ŠคํŽ˜์ด๋จผ์ธ ๋ฅผ ์„ ํƒํ•˜๊ฒŒ ๋œ ๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค! 1. ๋น„๊ต์  ๊ตฌํ˜„์ด ๊ฐ„๋‹จํ•ด ๋ณด์˜€๋‹ค. 2. ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์นœํ™”์ ์ธ ํ”Œ๋žซํผ 3. ํ”ผ๋“œ๋ฐฑ์ด ๋น ๋ฅด๋‹ค! 4. ๋‚˜ ํฌํ•จ ์ฃผ๋ณ€์ธ๋“ค์ด ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค ์‚ฌ์‹ค ํ•ต์‹ฌ์ ์ธ ์ด์œ ๋Š” 2๋ฒˆ! ํ† ์ŠคํŽ˜์ด๋จผ์ธ  ๊ฐœ๋ฐœ์ž์„ผํ„ฐ๋ฅผ ๊ฐ€๋ณด๋ฉด ์ œ๊ณตํ•˜๋Š” front, back ์ƒ˜ํ”Œ์ด ๋งค์šฐ ๋‹ค์–‘ํ•ด์„œ ์–ด๋–ค ์–ธ์–ด๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋“  ํฐ ๋ฌด๋ฆฌ๊ฐ€ ์—†์„ ๊ฒƒ์ด๋ž€ ํŒ๋‹จ์„ ํ–ˆ๋‹ค! ๊ทธ๋ฆฌ๊ณ  3๋ฒˆ์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋ฅผ ํ•ด๋ณด์ž๋ฉด ๊ฒฐ์ œ ๊ด€๋ จํ•ด์„œ ์ž๋ฃŒ๋ฅผ ์ฐพ์•„๋ณด๋˜ ์ค‘, ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฒฐ์ œ๋ฅผ ์ง„ํ–‰ํ–ˆ์„ ๋•Œ '์˜ˆ์•ฝ'์ด๋ผ๋Š” ์กฐ๊ฑด์ด ๋ถ™..

PROJECT 2024.04.11

Spring PROJECT

trello ๋ฅผ ๋ชจ๋ฐฉํ•œ ํ”„๋กœ์ ํŠธ ๋ณธ์ธ: - ๋กœ๊ทธ์ธ / ํšŒ์›๊ฐ€์ž… ๊ธฐ๋Šฅ ๊ตฌํ˜„ - ์†Œ์…œ๋กœ๊ทธ์ธ ๊ตฌํ˜„(์นด์นด์˜ค) - ํšŒ์› ์ •๋ณด ์ˆ˜์ • ๋ฐ ํšŒ์› ํƒˆํ‡ด ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ ๊ตฌํ˜„ jwt, filter ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ฆ/์ธ๊ฐ€ ์ฒ˜๋ฆฌ ์ง„ํ–‰.

PROJECT 2023.12.26

TIL Spring PJ #4

ERROR test code application -> save ๊ฐ€ ์•ˆ๋จ -> ์‹คํ–‰์€ ๋˜์ง€๋งŒ postman - ๋‚ด๋ถ€ ์„œ๋ฒ„ ๋ฌธ์ œ๋กœ ์•ˆ๋Œ์•„๊ฐ ์ธํ…”๋ฆฌ์ œ์ด ์˜ค๋ฅ˜ ์ฝ”๋“œ ๋‹ค์‹œ ํ™•์ธ - ์•„๋ฌด๋ฆฌ ๊ตฌ๊ธ€๋งํ•ด๋„ .. ์•„์ง์€ ํ•ด๊ฒฐ ๋ชปํ•จ.. - ๋‹ค์‹œ ํ•ด๋ณด์Ÿˆ,.

TIL Spring #3-3

Entity ์—ฐ๊ด€๊ด€๊ณ„ 1:1 N:1 1:N N:M ์‹ค์ œ๋กœ ํ…Œ์ด๋ธ”์„ ๋”ฑ ํ•œ๊ฐœ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ๊ฑฐ์˜ ์—†๋‹ค. DB table์˜ ์—ฐ๊ด€๊ด€๊ณ„ Entity ๊ฐ์ฒด์˜ ์—ฐ๊ด€๊ด€๊ณ„ ์ฐจ์ด๊ฐ€ ์žˆ์„๊นŒ? ์žˆ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅผ๊นŒ? ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ณ ๊ฐ์ด ์Œ์‹์„ ์ฃผ๋ฌธํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. ๊ทธ๋ ‡๋‹ค๋ฉด ๋‹น์—ฐํžˆ ์ฃผ๋ฌธํ•˜๋Š” ๊ณ ๊ฐ ํ…Œ์ด๋ธ” ํ•˜๋‚˜, ์Œ์‹ ํ…Œ์ด๋ธ” ํ•˜๋‚˜ ์ด ๋‘๊ฐœ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•„์š”ํ•  ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๊ณ ๊ฐ์ด ์Œ์‹์„ ์ฃผ๋ฌธํ–ˆ์„ ๋•Œ ํ•ด๋‹น ์ฃผ๋ฌธ๊ฑด์— ๋Œ€ํ•œ๊ฑด ์œ ์ €? ์Œ์‹? ์–ด๋Š ํ…Œ์ด๋ธ”์— ๋ช…์‹œํ•ด์ค˜์•ผํ• ๊นŒ? ์ด๋ฅผ ์œ ์ €๋‚˜ ์Œ์‹ ํ…Œ์ด๋ธ”์— ๋„ฃ๊ฒŒ ๋˜๋ฉด ๋‘˜๋‹ค ์‚ฌ์šฉ์ž, ์Œ์‹ ๋‚ด์šฉ์ด ์ค‘๋ณต๋˜๋Š” ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ user_id ์ปฌ๋Ÿผ์— 1๋ฒˆ 2๋ฒˆ ์œ ์ €๊ฐ€ ์ฃผ๋ฌธํ–ˆ๋‹ค. ๋ผ๋Š” ํ‘œํ˜„ ๋ฐฉ์‹๋„ ์•ˆ๋ ๊นŒ? ์ผ๋‹จ RDBMS ์ƒ์—์„œ๋Š” ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ผ๊ณ  ์ดํ•ดํ•˜์ž. - 2 row..

Spring 2023.12.18

์—๋Ÿฌ ํ•ด๊ฒฐ

๋ฉฐ์น ์ „๋ถ€ํ„ฐ ๊ฐ‘์ž๊ธฐ ๋‚œ๋ฐ์—†๋Š” ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ํ•ด๋‹น ๋ฌธ๊ตฌ๋ฅผ ์ž์„ธํžˆ ์‚ดํŽด๋ดค๋Š”๋ฐ jdbc ๊ฐ€ ๊ณ„์† ๋“ฑ์žฅํ•˜๋Š”๊ฑธ๋กœ ๋ด์„  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ จ ์˜ค๋ฅ˜์ด์ง€ ์•Š์„๊นŒ ์ƒ๊ฐํ–ˆ๋‹ค. ์ฒ˜์Œ์— ์‹œ๋„ํ•œ๊ฑด ์—ฐ๊ฒฐ๋œ DB ์ ‘์†ํ•ด์„œ ์‚ญ์ œํ•˜๊ณ  ๋‹ค์‹œ ์ž‘์„ฑ ํ›„ ์žฌ์‹คํ–‰ ์‹œํ‚ค๊ธฐ -> ์•ˆ๋จ. ๋‘๋ฒˆ์งธ ์‹œ๋„ application.propertis ํŒŒ์ผ์— db ๊ด€๋ จ ๋‚ด์šฉ ์ž˜ ์ž‘์„ฑ๋๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ -> ๋ฌธ์ œ๊ฐ€ ์—†์Œ! ๋ญ˜๊นŒ ํ•˜๊ณ  ๋‹ค์‹œ ํ•œ๋ฒˆ ํ•ด๋‹น ํŒŒ์ผ ๊ณ„์† ๋“ค์—ฌ๋‹ค๋ณด๊ธฐ.. ํ—ˆํ—ˆ... ์–ด์ฒ˜๊ตฌ๋‹ˆ์—†๋Š” ์ด์œ ์˜€๋‹ค.. DB ์—ฐ๊ฒฐํ•˜๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž˜๋ชป ์ž…๋ ฅํ•จ.. ๋‹ค์‹œ ์ˆ˜์ •ํ•˜๊ณ  ๋Œ๋ ธ๋”๋‹ˆ ํ•ด๊ฒฐ๋จ.. ํŒŒ์ผ์—์„œ ์˜ค๋ฅ˜ ์—†๋Š”๋ฐ ์‹คํ–‰์ด ์•ˆ๋œ๋‹ค? ์›ฌ๋งŒํ•˜๋ฉด ์–ด์ฒ˜๊ตฌ๋‹ˆ ์—†๋Š” ์‹ค์ˆ˜๋‹ค.. ๋‚œ ๊ทธ๋žฌ์Œ..

ETC 2023.12.17

TIL Spring #3-2

ํšŒ์›๊ฐ€์ž…/๋กœ๊ทธ์ธ ๊ตฌํ˜„ Filter 'Spring security' framwork 1-1)ํšŒ์›๊ฐ€์ž… ๊ตฌํ˜„ - build.gradle JPA, MySQL ์ถ”๊ฐ€ // JPA implementation 'org.springframework.boot:spring-boot-starter-data-jpa' // MySQL runtimeOnly 'com.mysql:mysql-connector-j' + application.properties / ์‚ฌ์šฉํ•  DB ์—ฐ๊ฒฐ - ํŒจ์Šค์›Œ๋“œ ์•”ํ˜ธํ™” ํ•„์ˆ˜ - Spring security์—์„œ ์ œ๊ณตํ•˜๋Š” ์•”ํ˜ธํ™” ๋ฉ”์„œ๋“œ ์‚ฌ์šฉํ•ด์ค€๋‹ค.(์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ์•”ํ˜ธ๋ž‘ ์•”ํ˜ธํ™”๋œ ์•”ํ˜ธ๋ฅผ ๋น„๊ตํ•ด ์ผ์น˜์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ๋„ ์žˆ์–ด ๋งค์šฐ ํŽธ๋ฆฌํ•˜๋‹ค.) import java.util.Optional; @Service ..

Spring 2023.12.15

TIL Spring #3-1

[์ธ์ฆ๊ณผ ์ธ๊ฐ€] ์ฟ ํ‚ค์™€ ์„ธ์…˜ JWT ๋”๋ณด๊ธฐ ํ˜น์‹œ, bean์„ ์ˆ˜๋™์œผ๋กœ ๋“ฑ๋กํ•ด์•ผ๋˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์„๊นŒ? ๊ธฐ์ˆ ์ ์ธ ๋ฌธ์ œ๋‚˜ ๊ณตํ†ต ๊ด€์‹ฌ์‚ฌ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ์ฒด๋Š” ์ˆ˜๋™์œผ๋กœ bean์„ ๋“ฑ๋กํ•ด์ฃผ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. (๋น„๊ต์  ๋ถ€๊ฐ€์ ์ธ ๊ฒƒ) - @Component ๋ง๊ณ  ๋ฉ”์„œ๋“œ์— @Bean ์• ๋„ˆํ…Œ์ด์…˜ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ๋œ๋‹ค~! ์ธ์ฆ/์ธ๊ฐ€ ์ธ์ฆ: ํ•ด๋‹น ์œ ์ €๊ฐ€ ์‹ค์ œ ์œ ์ €์ธ์ง€ ์ธ์ฆํ•˜๋Š” ๊ฒƒ ex)๋กœ๊ทธ์ธ ์ธ๊ฐ€: ํ•ด๋‹น ์œ ์ €๊ฐ€ ํŠน์ • ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•œ์ง€ ํ—ˆ๊ฐ€๋ฅผ ํ™•์ธํ•˜๋Š” ๊ฒƒ ex)๋น„ํšŒ์›๋กœ๊ทธ์ธ - ์ผ๋ฐ˜์ „์œผ๋กœ ์„œ๋ฒ„-ํด๋ผ์ด์–ธํŠธ ๊ตฌ์กฐ๋กœ ๋˜์–ด์žˆ๊ณ , ์‹ค์ œ๋กœ ์ด ๋‘๊ฐ€์ง€๋Š” ๋ฉ€๋ฆฌ ๋–จ์–ด์ ธ์žˆ๋‹ค. - HTTP ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•˜์—ฌ ํ†ต์‹ ํ•˜๋Š”๋ฐ, ๊ทธ ํ†ต์‹ ์€ ๋น„์—ฐ๊ฒฐ์„ฑ๊ณผ ๋ฌด์ƒํƒœ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค. ์‰ฝ๊ฒŒ ๋งํ•ด, ๋ช‡๊ฐ€์ง€ ๊ฒฝ์šฐ๋ฅผ ์ œ์™ธํ•˜๊ณค ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๋Š” ์‹ค์ œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์ด..

Spring 2023.12.14

TIL Spring #2-5

SpringBoot JPA Spring data JPA ์ถ”๊ฐ€์ ์ธ ์• ๋„ˆํ…Œ์ด์…˜: @PersistenceContext, @Transactional ์ž๋ฐ”ํ™˜๊ฒฝ์ด ์•„๋‹Œ Spring boot์—์„œ JPA๊ฐ€ ์–ด๋–ป๊ฒŒ ๋™์ž‘๋ ์ง€ ์‚ดํŽด๋ณด์ž (memo PJ) - ์šฐ์„  bulid.gradle ๊ณผ application.properties ์— JPA ๊ด€๋ จ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. (ddl-auto=update) - Memo ํด๋ž˜์Šค ๋˜ํ•œ entity ํด๋ž˜์Šค๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด @Entity ์• ๋„ˆํ…Œ์ด์…˜ ์ถ”๊ฐ€. - spring ํ™˜๊ฒฝ์—์„œ๋Š” application.properties ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ emf, em ์„ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ด์ค€๋‹ค. (java ํ™˜๊ฒฝ์—์„œ๋Š” persistence.xml์„ ๋งŒ๋“ค์—ˆ์Œ) ์‚ฌ์šฉ๋ฐฉ๋ฒ•์€ @PersistenceContext ์• ..

Spring 2023.12.13

TIL Spring #2-4

JPA Entity ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ 1. JPA๋ž€ ๋ฌด์—‡์ธ๊ฐ€? : ์˜ˆ๋ฅผ ๋“ค์–ด ์ด์ „ ํ”„๋กœ์ ํŠธ์—์„œ(ORM์ด ์—†๋Š” ํ™˜๊ฒฝ) ์–ด๋–ค ์ปฌ๋Ÿผ ํ•˜๋‚˜๋ฅผ ์ถ”๊ฐ€ํ–ˆ์„ ๋•Œ ๊ทธ์— ๋”ฐ๋ฅธ ์ถ”๊ฐ€์ ์ธ SQL ์ˆ˜์ •์ด ๋ฌด์ˆ˜ํžˆ ๋งŽ์•„์ง„๋‹ค. ์ด๋กœ ์ธํ•ด ๋น„์ง€๋‹ˆ์Šค ๋กœ์ง ๊ฐœ๋ฐœ๋ณด๋‹ค SQL ์ž‘์„ฑ ๋ฐ ์ˆ˜์ •์— ๋” ๋งŽ์€ ์‹œ๊ฐ„์„ ํ• ์• ํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ORM ์ด ๋“ฑ์žฅํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. Object Relational Mapping์˜ ์ค„์ž„๋ง๋กœ ์ž๋ฐ” ํด๋ž˜์Šค์™€ DB data ๋ฅผ mapping ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์šด ์ž‘์—…์„ ORM์ด ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์ค€๋‹ค. (์ง์ ‘ DB๋ฅผ ๋‹ค๋ฃจ์ง€ ์•Š์•„๋„ ๋จ~) # JPA๋Š” ORM ๊ธฐ์ˆ ์— ๋Œ€ํ•œ ํ‘œ์ค€ ๋ช…์„ธ - ๊ทธ๋ฆฌ๊ณ  JPA๋ฅผ ๊ตฌํ˜„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ ์ค‘ ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ์ด๋Š” ๊ฒƒ์ด 'ํ•˜์ด๋ฒ„๋„ค์ดํŠธ' ์ด๋‹ค! (์ž์ฃผ ๋“ฑ์žฅ ์˜ˆ์ •) 2. Entity๋ž€ ๋ฌด์—‡์ผ๊นŒ? : JPA์— ์˜ํ•ด ๊ด€๋ฆฌ๋˜..

Spring 2023.12.12