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

โœ๏ธ Today I Learned(TIL)/๐ŸŒฑ ์ŠคํŒŒ๋ฅดํƒ€ ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„71

์ฃผํŠน๊ธฐ ์ž…๋ฌธ/์ˆ™๋ จ_๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผ ๊ธฐ์ˆ  ์ ์šฉ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผ ๊ธฐ์ˆ  ์ ์šฉํ•ด ๋ณด๊ธฐ 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.
์ฃผํŠน๊ธฐ ์ž…๋ฌธ/์ˆ™๋ จ_Day 2 ์˜ค๋Š˜ ํ•œ ๊ณต๋ถ€ ๐Ÿง์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ(Java) 1๋ฌธ์ œ ํ’€์ด & ๋ธ”๋กœ๊ทธ ์ •๋ฆฌ๊ธฐ์ดˆ Spring ๊ฐ•์˜_2์ฃผ์ฐจ์˜ค๋Š˜ ์–ป์€ ๋‚ด์šฉ ์ •๋ฆฌ โœ๏ธPostman๊ฐœ๋ฐœ์ž๋“ค์ด HTTP ์š”์ฒญ์„ ๋งŒ๋“ค๊ณ , ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ์˜ ์‘๋‹ต์„ ํ™•์ธํ•˜๋ฉฐ, API์˜ ๊ธฐ๋Šฅ์„ ํ…Œ์ŠคํŠธํ•˜๊ณ  ๋””๋ฒ„๊น…ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด ์ค€๋‹ค.ํ”„๋ ˆ์ž„์›Œํฌ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์„ ๊ฐ„ํŽธํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์ด๋‹ค.์ผํ•˜๊ธฐ ์œ„ํ•œ ํ‹€์„ ์ œ๊ณตํ•œ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ํ•ด๋‹น ํ‹€์—์„œ ์ผ์„ ํ•ด์•ผ ํ•œ๋‹ค.๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ํด๋ž˜์Šค, ํ•จ์ˆ˜ ๋“ฑ์„ ๋ชจ์•„ ๋†“์€ ์ฝ”๋“œ์˜ ๋ชจ์Œ์„ ์˜๋ฏธํ•œ๋‹ค.๋„์„œ๊ด€์— ์žˆ๋Š” ์ฑ…์ฒ˜๋Ÿผ ๊ฐœ๋ฐœ์ž๊ฐ€ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋งŒ๋“ค ๋•Œ ํ•„์š”์— ๋”ฐ๋ผ ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ€์ ธ๋‹ค ์“ธ ์ˆ˜ ์žˆ๋Š” ์ผ์ข…์˜ ๋„๊ตฌ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.Annotation์ฝ”๋“œ์— ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋ฉฐ ์ฃผ๋กœ ์ฝ”๋“œ์— ํŠน.. 2024. 11. 30.
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ดˆ_Day 17 ์˜ค๋Š˜ ํ•œ ๊ณต๋ถ€ ๐Ÿง ์˜ค์ „์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ(Java) 1๋ฌธ์ œ ํ’€์ด & ๋ธ”๋กœ๊ทธ ์ •๋ฆฌJava ๊ธฐ๋ณธํŽธ ๊ฐ•์˜_์ ‘๊ทผ ์ œ์–ด์ž์˜คํ›„ํ‚ค์˜ค์Šคํฌ ๊ณผ์ œ ๋ณด์™„ & ๋„์ „ ๊ธฐ๋Šฅ Lv1 ์‹œ๋„TIL ๋ธ”๋กœ๊ทธ ์ž‘์„ฑ ์˜ค๋Š˜ ์–ป์€ ๋‚ด์šฉ ์ •๋ฆฌ โœ๏ธ ์ ‘๊ทผ ์ œ์–ด์ž ์ ‘๊ทผ ์ œ์–ด์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ•ด๋‹น ํด๋ž˜์Šค ์™ธ๋ถ€์—์„œ ํŠน์ • ํ•„๋“œ๋‚˜ ๋ฉ”์„œ๋“œ์— ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์„ ํ—ˆ์šฉํ•˜๊ฑฐ๋‚˜ ์ œํ•œํ•  ์ˆ˜ ์žˆ๋‹ค.ํ•„๋“œ์— ์ง์ ‘ ์ ‘๊ทผํ•ด์„œ ์›ํ•˜๋Š” ๊ฐ’์„ ์„ค์ •ํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ๊ทผ๋ณธ์ ์œผ๋กœ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•„๋“œ์˜ ์™ธ๋ถ€ ์ ‘๊ทผ์„ ๋ง‰์„ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•˜๋‹ค.์ ‘๊ทผ ์ œ์–ด์ž ์ข…๋ฅ˜private : ๋ชจ๋“  ์™ธ๋ถ€ ํ˜ธ์ถœ์„ ๋ง‰๋Š”๋‹ค.default(package-private) : ๊ฐ™์€ ํŒจํ‚ค์ง€ ์•ˆ์—์„œ ํ˜ธ์ถœ์€ ํ—ˆ์šฉํ•œ๋‹ค.protected : ๊ฐ™์€ ํŒจํ‚ค์ง€ ์•ˆ์—์„œ ํ˜ธ์ถœ์€ ํ—ˆ์šฉํ•œ๋‹ค. ํŒจํ‚ค์ง€๊ฐ€ ๋‹ฌ๋ผ๋„ ์ƒ์† ๊ด€๊ณ„์˜ ํ˜ธ์ถœ์€ ํ—ˆ์šฉํ•œ๋‹ค.public :.. 2024. 11. 28.