๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Today I Learned(TIL)/์ŠคํŒŒ๋ฅดํƒ€ ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„55

์ฃผํŠน๊ธฐ ์ž…๋ฌธ/์ˆ™๋ จ_Day 7 ์˜ค๋Š˜ ํ•œ ๊ณต๋ถ€ ๐Ÿง ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ(Java) 1๋ฌธ์ œ ํ’€์ด & ๋ธ”๋กœ๊ทธ ์ •๋ฆฌ๊ฐœ์ธ ๊ณผ์ œ Lv0 - API ๋ช…์„ธ์„œ ์ž‘์„ฑ๊ฐœ์ธ ๊ณผ์ œ Lv0 - ERD ์˜์ƒ ์‹œ์ฒญ & ์ž‘์„ฑ์ˆ˜์ค€๋ณ„ ํ•™์Šต๋ฐ˜_๋ฒ ์ด์ง๋ฐ˜ ๋ฏธ๋‹ˆ ์„ธ์…˜ ๋“ฃ๊ธฐTIL ๋ธ”๋กœ๊ทธ ์ž‘์„ฑ ์˜ค๋Š˜ ์–ป์€ ๋‚ด์šฉ ์ •๋ฆฌ โœ๏ธ ์˜ค๋Š˜ ์ง„ํ–‰ํ•œ ๊ฐœ์ธ ๊ณผ์ œ ์ƒํ™ฉ์„ ์ •๋ฆฌํ•ด์•ผ๊ฒ ๋‹ค!์ผ์ • ๊ด€๋ฆฌ ์•ฑ API ๋ช…์„ธ์„œ์ผ์ • ์ƒ์„ฑDescription : ์ƒˆ๋กœ์šด ์ผ์ •์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.์š”์ฒญ ์‹œ ์ผ์ •์˜ ์ œ๋ชฉ, ๋‚ด์šฉ, ์ž‘์„ฑ์ž๋ช…, ๋น„๋ฐ€๋ฒˆํ˜ธ, ์ž‘์„ฑ์ผ, ์ˆ˜์ •์ผ์„ ํฌํ•จํ•˜๋ฉฐ, ์„œ๋ฒ„์—์„œ ๊ฐ ์ผ์ •์— ๊ณ ์œ  ID๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.HTTP Method : POSTEndpoint : /todosRequest Body{ "title" : "์ œ๋ชฉ", "content" : "๋‚ด์šฉ", "writer" : "์ž‘์„ฑ์ž๋ช…", "passwor.. 2024. 12. 5.
์ฃผํŠน๊ธฐ ์ž…๋ฌธ/์ˆ™๋ จ_Day 6 ์˜ค๋Š˜ ํ•œ ๊ณต๋ถ€ ๐Ÿง ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ(Java) 1๋ฌธ์ œ ํ’€์ด & ๋ธ”๋กœ๊ทธ ์ •๋ฆฌ์ˆ˜์ค€๋ณ„ ํ•™์Šต๋ฐ˜ - ์Šคํƒ ๋‹ค๋“œ๋ฐ˜ ๋“ฃ๊ธฐ์Šคํ”„๋ง 6์ฃผ์ฐจ ๊ฐ•์˜ ๋“ฃ๊ธฐTIL ๋ธ”๋กœ๊ทธ ์ž‘์„ฑ ์˜ค๋Š˜ ์–ป์€ ๋‚ด์šฉ ์ •๋ฆฌ โœ๏ธ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ๋Š” ๋”ฐ๋กœ ๋ธ”๋กœ๊ทธ์— ์ •๋ฆฌํ•ด ๋‘ฌ์„œ ํŠœํ„ฐ๋‹˜๊ป˜ ์ฐพ์•„๊ฐ€์„œ ์–ป์€ ๊ฟ€ํŒ์„ ์ ์–ด์•ผ๊ฒ ๋‹ค!๋ฌธ๋ฒ•์ ์ธ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค๋ฉด ์ฝ”๋“œ๋ฅผ ๊ณ ์ณ์„œ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.ํ•˜์ง€๋งŒ ๋ฌธ๋ฒ•์ ์ธ ์—๋Ÿฌ๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด ์ด๋ ‡๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค..gradle, .idea, build ํŒŒ์ผ์—์„œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํด๋”๋ฅผ ์‚ญ์ œ ํ›„ ๋‹ค์‹œ ์‹คํ–‰ํ•ด ๋ณธ๋‹ค.๊ทธ๋ž˜๋„ ๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์บ์‹œ๋ฅผ ์‚ญ์ œํ•œ ํ›„ ๋‹ค์‹œ ์‹คํ–‰ํ•ด ๋ณธ๋‹ค.IDE ์ž์ฒด์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์ข…์ข… ์žˆ์–ด์„œ IntelliJ ์žฌ๋ถ€ํŒ…, ์ปดํ“จํ„ฐ ์žฌ๋ถ€ํŒ… ๋“ฑ๋“ฑ ์ข…๋ฃŒ ํ›„ ๋‹ค์‹œ ์ ‘์†ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋ฉด ๋˜๋Š” ๊ฒฝ์šฐ๋„ ๋งŽ๋‹ค.์‹ค์Šต ๊ฐ•์˜๋ฅผ.. 2024. 12. 4.
์ฃผํŠน๊ธฐ ์ž…๋ฌธ/์ˆ™๋ จ_๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผ ๊ธฐ์ˆ  ์ ์šฉ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผ ๊ธฐ์ˆ  ์ ์šฉํ•ด ๋ณด๊ธฐ 1. ํ”„๋กœ์ ํŠธ ์„ธํŒ…๋”๋ณด๊ธฐbuild.gradle ์˜์กด์„ฑ ์ถ”๊ฐ€JDBC Template, MySQL ์˜์กด์„ฑ ์ถ”๊ฐ€// MySQLimplementation 'mysql:mysql-connector-java:8.0.28'// JDBC Templateimplementation 'org.springframework.boot:spring-boot-starter-data-jdbc'ํ”„๋กœ์ ํŠธ ์„ค์ •IntelliJ Database ์—ฐ๋™ํ•˜๊ธฐCREATE TABLE memo( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '๋ฉ”๋ชจ ์‹๋ณ„์ž', title VARCHAR(100) NOT NULL COMMENT '์ œ๋ชฉ', conte.. 2024. 12. 4.
์ฃผํŠน๊ธฐ ์ž…๋ฌธ/์ˆ™๋ จ_3 Layer Architecture Layered Architecture ์‹ค์Šต0. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ๋”๋ณด๊ธฐํ”„๋กœ์ ํŠธ ์ƒ์„ฑ๋ฉ”๋ชจ์žฅ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ์™€ ๋™์ผํ•˜๊ฒŒ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.๊ผญ ํ™•์ธํ•ด์•ผ ํ•  ์‚ฌํ•ญName: layeredLanguage: JavaBuild system: Gradle - GroovyJDK: 17ํ”„๋กœ์ ํŠธ ๊ฒฝ๋กœ(Location)๋Š” ์ด์ „์— ๋งŒ๋“ค์—ˆ๋˜ workspace ํด๋”๋กœ ์ง€์ •์ดˆ๊ธฐ ํด๋ž˜์Šค ์ƒ์„ฑMemo@Getter@AllArgsConstructorpublic class Memo { private Long id; private String title; private String contents; public void update(MemoRequestDto dto) { this.title = dto.getT.. 2024. 12. 4.
์ฃผํŠน๊ธฐ ์ž…๋ฌธ/์ˆ™๋ จ_Day 5 ์˜ค๋Š˜ ํ•œ ๊ณต๋ถ€์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ(Java) 1๋ฌธ์ œ ํ’€์ด & ๋ธ”๋กœ๊ทธ ์ •๋ฆฌ์Šคํ”„๋ง 5์ฃผ์ฐจ ๊ฐ•์˜ ๋“ฃ๊ธฐTIL ๋ธ”๋กœ๊ทธ ์ž‘์„ฑ ์˜ค๋Š˜ ์–ป์€ ๋‚ด์šฉ ์ •๋ฆฌCRUD ์‹ค์Šต๋ฉ”๋ชจ๋ฅผ CRUD ํ•  ์ˆ˜ ์žˆ๋Š” Web Application1. ๋ฉ”๋ชจ ์ƒ์„ฑ ๊ธฐ๋Šฅ C2. ๋ฉ”๋ชจ ๋‹จ๊ฑด ์กฐํšŒ ๊ธฐ๋Šฅ R3. ๋ฉ”๋ชจ ์ „์ฒด ์ˆ˜์ • ๊ธฐ๋Šฅ U4. ๋ฉ”๋ชจ ๋‹จ๊ฑด ์‚ญ์ œ ๊ธฐ๋Šฅ D1. ์š”๊ตฌ ์‚ฌํ•ญ ๋ถ„์„ ๋ฐ ์„ค๊ณ„๋”๋ณด๊ธฐ๋ฉ”๋ชจ์žฅ API ์š”๊ตฌ ์‚ฌํ•ญํ†ต์‹  ๋ฐ์ดํ„ฐ ํ˜•ํƒœ๋Š” JSON์ด๋‹ค.๊ฐ๊ฐ ๋ฉ”๋ชจ๋Š” ์‹๋ณ„์ž(id), ์ œ๋ชฉ(title), ๋‚ด์šฉ(contents)์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.๋ฉ”๋ชจ CRUD ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•˜๋‹ค.HTTP API ์„ค๊ณ„๋กœ๊ทธ์ธ๊ณผ ๊ฐ™์€ ํŠน๋ณ„ํ•œ ๊ธฐ๋Šฅ์„ ์ œ์™ธํ•œ ๋Œ€๋ถ€๋ถ„์˜ API๋Š” CRUD ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.์„ค๊ณ„ ์ˆœ์„œHTTP MethodPOST : CREATEGET : READPUT, PATCH : UPDA.. 2024. 12. 3.
์ฃผํŠน๊ธฐ ์ž…๋ฌธ/์ˆ™๋ จ_Day 4 ์˜ค๋Š˜ ํ•œ ๊ณต๋ถ€ ๐Ÿง์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ(Java) 1๋ฌธ์ œ ํ’€์ด & ๋ธ”๋กœ๊ทธ ์ •๋ฆฌํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค_์ˆซ์ž ๋ฌธ์ž์—ด๊ณผ ์˜๋‹จ์–ด๋ฏธ๋‹ˆ ๊ณผ์ œ(์ธํ„ฐํŽ˜์ด์Šค) ๋ธ”๋กœ๊ทธ ์ •๋ฆฌํŠœํ„ฐ๋‹˜์ด ๋‚ด์ฃผ์…จ๋˜ ์ถ”๊ฐ€ ๊ณผ์ œ ์ง„ํ–‰ ๊ณผ์ • ๋ธ”๋กœ๊ทธ ์ •๋ฆฌ์Šคํ”„๋ง 3, 4์ฃผ์ฐจ ๊ฐ•์˜ ๋“ฃ๊ธฐJava ๊ธฐ๋ณธํŽธ ๊ฐ•์˜_๋‹คํ˜•์„ฑ 1 ๋“ฃ๊ธฐTIL ๋ธ”๋กœ๊ทธ ์ž‘์„ฑ ์˜ค๋Š˜ ์–ป์€ ๋‚ด์šฉ ์ •๋ฆฌ โœ๏ธ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ(Java)๋ฌธ์ž์—ด ๋‚ด์—์„œ ์›ํ•˜๋Š” ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Map์˜ ๊ฐœ๋…๊ณผ replaceAll( ) ๋ฉ”์„œ๋“œ์˜ ๊ฐœ๋…์„ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ–ˆ๋‹ค!Map์— ๋ณ€ํ™˜ํ•˜๊ณ  ์‹ถ์€ ๋ฌธ์ž์—ด๊ณผ ๋ณ€ํ™˜ํ•  ๋ฌธ์ž์—ด์„ key-value๋กœ ๋ฌถ์–ด์ฃผ๊ณ , ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•ด Map์„ ์ˆœํšŒํ•˜๋ฉด์„œ replaceAll( ) ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ•ด์„œ ๋ฌธ์ž์—ด์„ ๋ชจ๋‘ ๋ณ€ํ™˜ํ•œ๋‹ค.๋‚˜๋„ ์ด๊ฒƒ์ €๊ฒƒ ์ƒ๊ฐํ•ด ๋ณด๋ฉด์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ์—ˆ๋Š”๋ฐ ์ ์  ์‚ฐ์œผ๋กœ ๊ฐ€๋Š” ๊ฒƒ ๊ฐ™์•„์„œ GPT์—๊ฒŒ ํžŒํŠธ.. 2024. 12. 2.