Spring Boot ๐ŸŒฟ

ยทSpring Boot ๐ŸŒฟ
1๏ธโƒฃ API Key ์ƒ์„ฑโžก๏ธ API ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” API Key ๋ฅผ ๋ฐœ๊ธ‰๋ฐ›์•„์•ผํ•œ๋‹ค. OpenAI APIAn API for accessing new AI models developed by OpenAIplatform.openai.comโžก๏ธ ์ƒ์„ฑ๋œ ํ‚ค๋Š” Client ์ฝ”๋“œ ์ชฝ์—์„œ ๋…ธ์ถœ๋˜๋ฉด ์•ˆ๋œ๋‹ค.2๏ธโƒฃ API Parameter ์™€ Authenticationโ‘  API Parameterโœ”๏ธ model OpenAI APIAn API for accessing new AI models developed by OpenAIplatform.openai.com์ตœ๊ทผ์— gpt-4 ๊ฐ€ ๋‚˜์™”์ง€๋งŒ ๋‚˜๋Š” gpt-3.5-turbo ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.โœ”๏ธ Messagerole : message ์†ก์ˆ˜์‹ ์žuser : message ..
ยทSpring Boot ๐ŸŒฟ
๐ŸŒŸ ๊ณต๋ถ€ํ•˜๊ฒŒ ๋œ ๊ณ„๊ธฐ MyBatis ๋ฅผ ํ†ตํ•ด ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ž‘์„ฑํ•˜๋‹ค๊ฐ€ LIKE ๋ฌธ์„ ์ž‘์„ฑํ•˜๋Š” ๊ณผ์ •์—์„œ Query ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋‚ ๋ผ๊ฐ€๋Š”์ง€ ํ™•์ธํ•ด๋ณด๊ณ  ์‹ถ์–ด์„œ log ๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•˜๊ณ ์ž ํ•œ๋‹ค. 1๏ธโƒฃ Log4Jdbc LOg4j2 JDBC ์˜์กด์„ฑ ์ถ”๊ฐ€ maven repository : https://mvnrepository.com/artifact/org.bgee.log4jdbc-log4j2/log4jdbc-log4j2-jdbc4.1/1.16 // gradle.build implementation 'org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4.1:1.16' ๋ฌผ๋ก  ๋ธ”๋กœ๊ทธ๋ฅผ ์ฐพ์•„๋ณด๋ฉด ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ์ง€๋งŒ ๋ฉ”์ด๋ธ ๋ ˆํฌ์ง€ํ„ฐ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์Šค์Šค๋กœ ์›ํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐ€์ง€๊ณ  ..
ยทSpring Boot ๐ŸŒฟ
๐ŸŒŸ ๊ณต๋ถ€ํ•˜๊ฒŒ ๋œ ๊ณ„๊ธฐ MyBatis ์ดˆ๊ธฐ ์„ธํŒ… ํ›„ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ณผ์ •์—์„œ ๊ธฐ์กด JPA ์™€ ๋‹ค๋ฅด๊ฒŒ ์ž‘์„ฑํ•˜๋Š” ๋ถ€๋ถ„์ด ํฌ๊ฒŒ โ‘  'MyBatis ๋Š” ๋”ฐ๋กœ Entity ์˜ ๊ฐœ๋…์ด ์—†๋‹ค.' โ‘ก 'Repository interface ์—์„œ JpaRepository ๋ฅผ ์ƒ์†๋ฐ›๋˜ JPA ๋ฐฉ์‹๊ณผ๋Š” ๋‹ฌ๋ฆฌ @Mapper ๋ฅผ ์ด์šฉํ•œ ์ดˆ๊ธฐํ™”๊ฐ€ ์ด๋ฃจ์–ด์ง„๋‹ค.' ์˜€๋Š”๋ฐ, ๊ทธ์ค‘์—์„œ๋„ Repository ์† ์–ด๋…ธํ…Œ์ด์…˜ ์—ญํ• ์ด ์–ด๋–ค ๊ฑด์ง€ ๊ถ๊ธˆํ•ด์„œ ์ข€ ๋” ์ž์„ธํžˆ ์ •๋ฆฌ ํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค. ๐ŸŒŸ ์ดˆ๊ธฐ ์„ค์ • (๊ณตํ†ต ๋ถ€๋ถ„) โ‘  ํ…Œ์ŠคํŠธ ์ž‘์„ฑ @SpringBootTest class AppTest { @Autowired private AriticleService ariticleService; @Test @DisplayName("๊ฒŒ์‹œ๋ฌผ_๋ฆฌ์ŠคํŠธ_๋ฐ˜ํ™˜")..
ยทSpring Boot ๐ŸŒฟ
๐ŸŒŸ ๊ณต๋ถ€ํ•˜๊ฒŒ ๋œ ๊ณ„๊ธฐ Entity ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ๋งˆ๋‹ค ์ปฌ๋Ÿผ์— ๊ด€๊ณ„๋ฅผ ๋ช…์‹œํ•ด ์ฃผ์–ด์•ผ ํ•  ๋•Œ @ManyToOne ๊ณผ @ManyToMany ์ค‘ ์–ด๋–ค ๊ฒƒ์„ ์‚ฌ์šฉํ•ด์•ผ ํ• ์ง€ ๊ณ ๋ฏผ์ด ๋˜์—ˆ๋Š”๋ฐ QNA ์„œ๋น„์Šค ๊ธฐ๋Šฅ ๋ณต์Šต ์ค‘์— ์ด์™€ ๊ด€๋ จํ•ด์„œ ์ž˜ ์ •๋ฆฌ๊ฐ€ ๋œ ๋ถ€๋ถ„์ด ์žˆ์–ด์„œ ์ฐจ์ด๋ฅผ ๋น„๊ตํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค. ๐ŸŒŸ ๊ธฐ๋ณธ Entity ์ •์˜ โžก๏ธ ๋‘ ๊ด€๊ณ„์˜ ์ฐจ์ด๋ฅผ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์„ ์ •๋„๋งŒ์˜ ๊ฐ„๋‹จํ•œ Entity ๊ตฌ์„ฑ์ด๋‹ค. โ‘  SiteUser @Entity public class SiteUser { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(unique = true) private String username; private String pass..
ยทSpring Boot ๐ŸŒฟ
๐ŸŒŸ ๊ณต๋ถ€ํ•˜๊ฒŒ ๋œ ๊ณ„๊ธฐ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ณ  ์‹คํ–‰์‹œ์ผœ๋ณผ ๋•Œ๋งˆ๋‹ค ๋ฐ์ดํ„ฐ๊ฐ’์„ ํ•˜๋‚˜์”ฉ ๋„ฃ๋Š” ๊ฒƒ์€ ๋น„ํšจ์œจ์ ์ธ ์ผ์ด๋‹ค. ํŠนํžˆ ๋งŽ์€ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ณผ์ •์„ ํ…Œ์ŠคํŠธ ํ•ด์•ผํ•  ๋•Œ๋Š” ๋งํ•  ๊ฒƒ๋„ ์—†์„ ๊ฒƒ์ด๋‹ค. ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ๋งŒ๋“œ๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค. 1๏ธโƒฃ Spring Test ํ™œ์šฉ test ์ค‘ ํ•˜๋‚˜๋กœ ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. @Test @Rollback(false) // ํ…Œ์ŠคํŠธ ํ›„ DB ๋ณ€๊ฒฝ์„ reset ํ•˜์ง€ ์•Š๊ณ  ์œ ์ง€ void ๋Œ€๋Ÿ‰์˜_๋ฐ์ดํ„ฐ_์ƒ์„ฑ() { for (int i=1; i { for (int i=1; i
ยทSpring Boot ๐ŸŒฟ
๐ŸŒŸ ํ•ด๊ฒฐํ•˜๊ณ ์ž ํ•˜๋Š” ์ƒํ™ฉ ์งˆ๋ฌธ ํผ์„ ์ž‘์„ฑํ•˜์—ฌ POST request ๋ฅผ ๋‚ ๋ฆฌ๋ฉด Controller ์—์„œ ์œ ํšจ์„ฑ์„ ํ™•์ธ ํ›„ ๋ฌธ์ œ๊ฐ€ ์—†์œผ๋ฉด Service ๋กœ ๋„˜๊ฒจ ์ €์žฅ, ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉด ๋ฌธ์ œ๋ฅผ ์งˆ๋ฌธํผ View ๋กœ ๋„˜๊ฒจ์„œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์•Œ๋ฆผ ๐ŸŒŸ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• โ‘  ์ผ๋‹จ View ๋กœ ๋ถ€ํ„ฐ ๋„˜๊ฒจ๋ฐ›์€ ๊ฐ’์„ if null ์กฐ๊ฑด๋ฌธ์„ ํ†ตํ•ด ํ™•์ธ, ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉด Model ์— ํ•ด๋‹น ๋ฌธ์ œ์˜ ๋ฉ”์„ธ์ง€๋ฅผ ์ ์–ด ์ €์žฅ ํ›„ View ๋กœ ๋„˜๊น€ โžก๏ธ ๋„˜๊ฒจ๋ฐ›์€ ๋ชจ๋“  ํŒŒ๋ผ๋ฏธํ„ฐ๋“ค์— ๋Œ€ํ•ด if ๋ฌธ์„ ์ž‘์„ฑํ•ด์•ผํ•จ์œผ๋กœ ์ฝ”๋“œ๊ฐ€ ๊ธธ์–ด์ง, ๋˜ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์ถ”๊ฐ€๋˜๋ฉด ๊ทธ ๋งŒํผ ์ƒˆ๋กœ ์ž‘์„ฑํ•ด์•ผํ•จ. โ‘ก Spring ์˜ @Valid ํ™œ์šฉ โžก๏ธ if ๋ฌธ์„ ๋งค๋ฒˆ ์ž‘์„ฑํ•  ํ•„์š”๊ฐ€ ์—†๊ณ , ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์ถ”๊ฐ€๋˜์–ด๋„ Controller ๋‹จ์—์„œ๋Š” ์ƒˆ๋กœ ์ž‘์„ฑํ•ด์•ผ ํ•  ๋‚ด์šฉ์ด ์—†์Œ ์ด ์™ธ์—๋„ ๋‹ค์–‘ํ•œ ..
Doit_Young
'Spring Boot ๐ŸŒฟ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก