๐ค study
[Kotlin] ์ฝํ๋ฆฐ ๊ธฐ์ด๋ฌธ๋ฒ(๋ณ์, ํจ์, ํ๋ฆ์ ์ด, ๋ ์์ ์ฑ, ์์ธ์ฒ๋ฆฌ, ํด๋์ค, ํ๋กํผํฐ, ์์, ์ธํฐํ์ด์ค, ์ด๊ฑฐํ ํด๋์ค)
Kotlin Playground: Edit, Run, Share Kotlin Code Online ์ค์๊ฐ์ผ๋ก ์น์์ ์ฝํ๋ฆฐ์ ๋ฌธ๋ฒ์ ํ์ตํ ์ ์๋ ์ฌ์ดํธ 1. ๋ณ์ val a: Int = 1 //ํ์ ์ ์๋ตํด๋ ์ปดํ์ผ ์๋ฌ X, ํ์ ์ถ๋ก ์ด ๊ฐ๋ฅํ๋ค. val b = 1 //์ง์ฐํ ๋น: ๋ค๋ฆ๊ฒ ๊ฐ์ ํ ๋นํ ์ ์๋ค**(์ง์ฐํ ๋น์์๋ ํ์ ์ ๋ฐ๋์ ์ ์ด์ค์ผํจ)** val c: Int c= 3 ์ฝํ๋ฆฐ์์ ๋ณ์ ์ ์ธ ์์ ์ฌ์ฉํ๋ ํค์๋ val : value์ ์ฝ์, java์ final์ฒ๋ผ ์ฌํ ๋น์ด ๋ถ๊ฐ๋ฅ var : variable์ ์ฝ์, ๋ณ์์ ๊ฐ๋ ์ผ๋ก ์ฌํ ๋น์ด ๊ฐ๋ฅํ๋ค val e : String = "Hello" e = "World" //์ปดํ์ผ ์๋ฌ, val์ ์ฌํ ๋น์ด ๋ถ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ด๋ค. var f =..
[Kotlin] ์ฝํ๋ฆฐ ์ดํดํ๊ธฐ | ์ฝํ๋ฆฐ์ ๋ฐฐ์์ผ ํ๋ ์ด์ | ์๋ฐ์ ์ฝํ๋ฆฐ์ ์ฐจ์ด์ | ์ฝํ๋ฆฐ์ ๊ธฐ๋ฅโ๏ธ[1]
1. ์ฝํ๋ฆฐ ์ดํดํ๊ธฐ 1. ์ฝํ๋ฆฐ์ ํ์ฌ์ ๋ฏธ๋ ์ฝํ๋ฆฐ์ ๋ฐฐ์์ผ ํ๋ ์ด์ Jetbrains์์ ๋ง๋ ์ธ์ด → ์๋์์ฑ, ์ฝํ๋ฆฐ ๋ณํ, ์ฝ๋ฃจํด๋ฑ ๊ด๋ จ ํธ์ ๊ธฐ๋ฅ์ ์ง์ํ๋ค. ์๋ฐ๋ ๋ฐํ๋์ง 20๋ ์ด ๋์์ง๋ง ์ฝํ๋ฆฐ, ์ค์ํํธ์ ๊ฐ์ ํ๋์ธ์ด์ ๋นํด ๊ธฐ๋ฅ์ด ๋ถ์กฑํ๋ค. ์๋ฐ์์ best-practice๋ก ๋ถ๋ฆฌ๋ ๊ธฐ๋ฒ๋ค์ ์ธ์ด์ ์ฐจ์์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํ๋ค. ex) ์ดํํฐ๋ธ ์๋ฐ, ๋์์ธํจํด ๋ฑ ์๋ฐ์ ๋นํด ๋ฌธ๋ฒ์ด ๊ฐ๊ฒฐ → ๊ฐ๋ ์ฑ, ์์ฐ์ฑ์ด ๋๊ณ ์ค๋ฅ ๊ฐ๋ฅ์ฑ์ด ์ ๋ค. // equals(), hashCode(), toString() ์๋์ผ๋ก ์์ฑ data class Person( val name: String, val age: Int, val email: String ) // ๊ฐ๋จํ๊ฒ ์ฑ๊ธํด ๊ฐ์ฒด๋ฅผ ์์ฑ obj..
[๋น๊ทผํ ํฌ ๋ฐ์ ์์ฝ] ์ฝํ๋ง | ์ฝํ๋ฆฐ์ ์ฒ ํ | ์ฝํ๋ฆฐ์ ์ฅ์ | ์ฝํ๋ฆฐ ํน์ง(#์ด์์๋ค #์ํ๋ง์ธ๊ธธ12๋ ์ฐจ #์ฝํ๋ง2๊ฐ์์์กด๊ธฐ) -1ํธ
์ฝํ๋ฆฐ์ ์ฒ ํ : ์ฝํ๋ฆฐ์ ์๋ฐ์์ ์ํธ์ด์ฉ์ฑ์ ์ด์ ์ ๋ง์ถ ์ค์ฉ์ ์ด๊ณ ๊ฐ๊ฒฐํ๋ฉฐ ์์ ํ ์ธ์ด์ด๋ค. - Kotlin in Action ์ฝํ๋ฆฐ์ ์ฒ ํ : ๊ฐ๊ฒฐ์ฑ ๊ฐ๋ฐ์๋ค์ ์ฝ๋๋ฅผ ์์ฑํ๋ ์๊ฐ๋ณด๋ค, ๊ธฐ์กด์ ์ฝ๋๋ฅผ ์ฝ๋๋ฐ ์๊ฐ์ ๋ ๋ง์ด ์ด๋ค. ์ฝ๋๋ ๊ฐ๊ฒฐํ ์๋ก ๋ด์ฉ์ ํ์ ํ๊ธฐ ์ฝ๊ณ , ์ ์ง๋ณด์์๋ ์ข๋ค. ๊ทธ ์ค ํต์ฌ์ ์ธ์ด์ ๊ฐ๊ฒฐ์ฑ(์๋ ํ์ , ์ฌ์ด ๊ตฌ๋ฌธ ๊ตฌ์กฐ, ๋ถ๊ฐ์ ์ธ ์ฝ๋ ์ต๋ํ ์ ๊ฑฐ) ์ฝํ๋ฆฐ์ ํ๋ก๊ทธ๋จ์์ฑ์ ์์ด ๋ถ์์ ์ธ ์์๋ค์ ์ต๋ํ ์ค์ด๊ณ ์ ๋ ธ๋ ฅํ๋ค. ์์ 1) data class Person( val id: UUID, val firstname: String, val lastname: String, val address: Address ) ๋ค์๊ณผ ๊ฐ์ด, data class๋ฅผ ์์ฑํ๊ฒ ๋๋ฉด getter..
[JPA] JPA ๊ฐ์, JPA ์ ์, JPA ์ฅ์ (์๋ฐ ORM ํ์ค JPA ํ๋ก๊ทธ๋๋ฐ 1,2์ฅ ์์ฝ)
JPA ๊ฐ์ ORM ํ๋ ์์ํฌ : ๊ฐ์ฒด์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋งคํํด์ค๋ค. JPA ์ ์ EJB์์ ํ์ด๋ฒ๋ค์ดํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์ง ์๋ก์ด ์๋ฐ ORM ๊ธฐ์ ํ์ค ์๋ฐ ์ง์์ ORM ๊ธฐ์ ํ์ค์ด๋ค.(object relational mapping) ์ง๋ฃจํ๊ณ ๋ฐ๋ณต์ ์ธ crud sql์ ์์์ ์ฒ๋ฆฌํด์ฃผ๊ณ , ์คํ ์์ ์ ์๋์ผ๋ก SQL์ ๋ง๋ค์ด์ ์คํํ๋ค. ์กฐํ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ฒด๋ก ๋งคํํ๋ ์์ ์ ๋๋ถ๋ถ ์๋์ผ๋ก ์ฒ๋ฆฌํด์ค๋ค. JPA ์ฅ์ ์ดํ๋ฆฌ์ผ์ด์ ์ SQL์ด ์๋ ๊ฐ์ฒด ์ค์ฌ์ผ๋ก ๊ฐ๋ฐํ๋ค๋ณด๋ ์์ฐ์ฑ, ์ ์ง๋ณด์ ์ธก๋ฉด์์ ์ข๋ค. 1๏ธโฃ ์ ์ง๋ณด์ ์ธก๋ฉด JPA๋ฅผ ์ฌ์ฉํ๋ฉด, ์ด๋ฌํ ๊ณผ์ ์ ๋์ ์ฒ๋ฆฌํด์ฃผ๊ธฐ ๋๋ฌธ์ ์์ ํ ์ฝ๋๊ฐ ์ค์ด๋ ๋ค. SQL์ ์ง์ ๋ค๋ฃจ๋ฉด ์ํฐํฐ์ ํ๋๋ฅผ ํ๋๋ง ์ถ๊ฐํด๋ ๊ด๋ จ๋ ๋ฑ๋ก, ์์ , ์กฐํ SQL๊ณผ ๊ฒฐ..
[JPA] Hibernate, JPA, Spring Data JPA, JDBC ์ฐจ์ด
๋ฉด์ ์ฉ์ผ๋ก ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํด๋์ ๋ด์ฉ์ ๋๋ค! ๋งจ ์๋ ์ฐธ๊ณ ์ ๊ผผ๊ผผํ ์ค๋ช ๋์ด์๋ ๋ธ๋ก๊ทธ๊ฐ ์์ผ๋ ์์ธํ ๋ฐฐ์ฐ๊ณ ์ถ๋ค๋ฉด ์ฐธ๊ณ ํด ์ฃผ์ธ์ ๐ฅฐ JDBC(Java Database Connectivity) ์๋ฐ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐ๋ ์ ์๋๋ก ์ ๊ณตํ๋ API JDBC๋ ์ธํฐํ์ด์ค๊ณ , JDBC driver๋ฅผ ํตํด ํด๋น ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ค. JDBC Driver๋ ๊ฐ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ง๋ค ์กด์ฌํ๋ค. JPA(Java Persistence API) ์๋ฐ ์ดํ๋ฆฌ์ผ์ด์ ์์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์์ ์ ์ํ ์ธํฐํ์ด์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋๊ณ , ์ธํฐํ์ด์ค์ด๊ธฐ ๋๋ฌธ์ ๊ตฌํ์ด ์๋ค. Hibernate JPA๋ผ๋ ๋ช ์ธ์ ๊ตฌํ์ฒด์ด๋ค.(์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํจ) JPA๋ฅผ ๊ตฌํํ๊ธฐ ์ํด ์ฌ์ฉํ ORM ํ๋ ์์ํฌ์ด๊ณ , ์ฑ์๋๊ฐ ๋๋ค. Spri..
[0906] ์ธํ๋ผ / centOS phpํ์ผ์ ์ฅ / centOS mariaDB ์ฐ๋ / php db์ฐ๋ / ํ์ผ์ ์ฅ ๋ฐฉ๋ฒ / ์น์๋ฒ์์ ํ์ผ ์ ์ฅ
ํ์ฌ๊น์ง์ ๋จ๊ณ 1. vim 2. ํ์ผ์ง๋ผ๋ก ์ ๋ก๋ 3. sh๋ก htmlํ ํ๋ฆฟ ๋ง๋ค๊ธฐ 4. php๋ก htmlํ ํ๋ฆฟ 5. nginx์ ์์ฒญ๊ณผ php๋ฅผ ์ฐ๋(php-fpm์ด ์ค๊ฐ๋ค๋ฆฌ์ ์ญํ ์ ์ํ) 6. ์ฟ ํค ์ฌ์ฉ(ํด๋ผ์ด์ธํธ์์ ์์ฑ, ์ฟ ํค๋ฅผ ์๋ฒ์ธก์์๋ ๋ฐ๊ฟ ์ ์๋ค๋ ๋ฌธ์ ๊ฐ ์์ - ๋ณด์์ ์ฝํ๋ค) 7. ์ธ์ ์ฌ์ฉ(์๋ฒ์์์์ฑ, ์๋ฒ์ฌ์ด๋์ธ์ด์ ๋์์์ด๋ ์ด๋ฃจ์ด์ง ์ ์์) --------------์ค๋ ํฌ์คํ ํ๋ ๋ด์ฉ ----------------------- 8. ๊ธฐ์ต๋ ฅ(์น์๋ฒ : ๊ธฐ์ต๋ ฅ 0) -ํ์ผ ์ ์ฅ์ด ๊ท์ฐฎ๋ค 9. ๋๋น ์ฌ์ฉ - ํ์ผ์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ์ ์ฅ/์กฐํํ ์ ์๊ฒ ํ๋ค. 8. ๊ธฐ์ต๋ ฅ ์น์๋ฒ : ๊ธฐ์ต๋ ฅ์ด ์์ ์๋ค. php : ๊ธฐ์ต๋ ฅ์ ์์ง๋ง, ์ฟ ํค ๋๋ ์ธ์ ์ ์ด์ฉํด ์ฝ๊ฐ์ ์ ์ฅํ ์ ์..
[์ธํ๋ผ] ํฌํธํฌ์๋ฉ | CentOS9 ํฌํธํฌ์๋ฉ | ์ธํ๋ผ ์ธํ ๋ฐฉ๋ฒ (1)
์ ์ฒด ์์ virtual box ์ค์น virtual box ํ์ฅํฉ ์ค์น CentOS9.iso ๋ค์ด ๊ธฐ๊ณ์์ฑ CentOS9_1 ๊ธฐ๊ณ์ CD ๋ฃ๊ธฐ ๋ถํ / ์ค์น ์ต์์ฌ์, root๋น๋ฒ ๋ฑ๋ก snapshot ์ฐ๊ธฐ, ๊ณ์ ์์ฑ ๋ฐ sudo ๊ถํ ๋ถ์ฌ ํธ์คํธ์ ์ฉ ์ด๋ํฐ๋ฅผ ํตํด ํน๋ณํ ip์์ฑ(์ธ๋ถ๋ ์ํต๊ฐ๋ฅ) —- ์ฌ๊ธฐ๋ถํฐ ํฌ์คํ ! ํฌํธํฌ์๋ฉ ๊ฐ๋ ๋ฐฐ์ → ์ธ๋ถ๋ ์ํตํ ์ ์๋ ์ฐฝ๊ตฌ ๋ง๋ จ (ssh ์ ์์ฉ) ์ฌ์ฉ์๋ฅผ sudoer๋ก ์ง์ ํ๊ธฐ yum์ผ๋ก vim ์ค์นํ๊ธฐ 1. ํฌํธํฌ์๋ฉ settings-network-Adapter 2์ ์ ์ Advanced ํด๋ฆญ ํฌํธํฌ์๋ฉ ๊ท์น ์ค์ ํ๊ธฐ, ํธ์คํธ IP๋ ์ธ๋ถ์์์ IP, ๊ฒ์คํธ IP๋ ๋ด๋ถ์์์ IP๋ฅผ ์๋ฏธํ๋ค.(10.0.2.15, ์๊ฒฉ ์ปดํจํฐ์์์ IP) 2. ์๊ฒฉ ..
[Spring Boot] spring-boot-devtools ์ ์ฉ๋ฐฉ๋ฒ | htmlํ์ผ ์๋์ฌ์์ | ์คํ๋ง๋ถํธ css, html ๋ฐ๋ก ์ ์ฉ | build project automatically | live-reload | ์คํ๋ง๋ถํธ ์ ์ ํ์ผ ์๋๋น๋
Devtools๋? spring boot์์ ๊ฐ๋ฐ ํธ์๋ฅผ ์ํด ์ ๊ณตํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค. ๊ฐ๋ฐ์ค, ์ฝ๋ ์์ ์ ๋ธ๋ผ์ฐ์ ์์ ์์ ๋ ๋ด์ฉ์ ํ์ธํ๋ ค๋ฉด ์ดํ๋ฆฌ์ผ์ด์ ์ ์ฌ์์ ํด์ผ ํ๋ค.ใ ใ ์น๋ฆฐ์ด์ธ ๋๋ ์ต๊ทผ์ ์ด ์ฌ์์ ๋ฒํผ์ ์ผ๋ง๋ ๋๋ ๋์ง ๋ชจ๋ฅด๊ฒ ๋ค.. devtools๋ฅผ ์ฌ์ฉํ๋ฉด ์๋์ผ๋ก ์ฌ์์ํด์ฃผ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํด ๊ฐ๋ฐ์ ํจ์ฌ ์์ํ๋ค. Devtools ์ ์ฉ๋ฒ 1. build.gradle ํ์ผ์ ์์กด์ฑ ์ถ๊ฐ implementation 'org.springframework.boot:spring-boot-devtools' ๐ฏ ๊ฟํ : ์์กด ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฐพ๋๊ณณ mvnrepository : ์ค์ ์๊ฒฉ ์ ์ฅ์ https://mvnrepository.com/artifact/org.springframework.boot/s..
[Java] ObjectMapper๋? | ์ง๋ ฌํ, ์ญ์ง๋ ฌํ | Jackson ๋ผ์ด๋ธ๋ฌ๋ฆฌ | Serialize, Deserialize | Json Parsing
ObjectMapper๋? : JSON ํ์์ ์ฌ์ฉํ ๋, ์๋ต๋ค์ ์ง๋ ฌํํ๊ณ , ์์ฒญ๋ค์ ์ญ์ง๋ ฌํ ํ ๋ ์ฌ์ฉํ๋ ๊ธฐ์ ์ด๋ค. ๋ค๋ฅธ ์๋ฒ๋ค๊ณผ ์ํตํ ๋ ๋ณดํต json์ ์ฌ์ฉํ๋ค. ๊ทธ๋์ ์์๋ฌ์ผํจ! ์ง๋ ฌํ(Serialize) : Object๋ฅผ Textํํ์ JSON์ผ๋ก๋ ๋ณํํด์ค๋ค. ์ญ์ง๋ ฌํ(Deserialize) : text ํํ์ JSON์ Object๋ก ๋ณํํด์ค๋ค. SpringBoot์ ๊ฒฝ์ฐ, spring-boot-starter-web์ ๊ธฐ๋ณธ์ ์ผ๋ก Jackson ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ด์ Object ↔ JSON ๊ฐ ๋ณํ์ด ์๋์ผ๋ก ์ฒ๋ฆฌ๋๋ค. Jackson ๋ผ์ด๋ธ๋ฌ๋ฆฌ : ์๋ฐ์์ ๊ณ ์์ค์ JSON Parser๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค @RestController์์๋, Jackson ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ด์ request..
[Java] ์๋ฌ์ฒ๋ฆฌ | Try-catch | ์ปดํ์ผ ์ค๋ฅ, ๋ฐํ์ ์ค๋ฅ, ๋ ผ๋ฆฌ ์ค๋ฅ | ์์ธ์ฒ๋ฆฌ ๋ฐฉ๋ฒ | checked, unchecked exception | ์์ธ ์ฐ์ ์์
Try-catch try? catch? ์์ธ์ฒ๋ฆฌ๋ ๋ญ ํ๋ ๊ฑด๊ฐ์? ํ๋ก๊ทธ๋๋ฐ ์ค๋ฅ์ ์ข ๋ฅ ์ปดํ์ผ ์ค๋ฅ : ํ๋ก๊ทธ๋จ์ ์คํ์ ๋ง๋ ์ค๋ฅ, ๋๋ถ๋ถ ๋ฌธ๋ฒ์ ์ธ ์ค๋ฅ๋ค. //1 (ํค์๋ ๋ง์ถค๋ฒ ์ค๋ฅ) inet num = 1; //2 (์ธ๋ฏธ์ฝ๋ก ๋๋ฝ) boolean a = false //3 (endif๋ฌธ๋ถํฐ ์ฌ์ฉ) end if(!a) { return; } //4 (์ ์ธ์๋ ๋ณ์ ์ฌ์ฉ) b = 3; ๋ฐํ์ ์ค๋ฅ : ํ๋ก๊ทธ๋จ ์คํ ์ค ๋ฐ์ํ๋ ์ค๋ฅ, ์ํํ ์ ์๋ ์์ ์๋์ ๋ฐ์ 1. 0์ผ๋ก ๋๋๋ ๊ฒฝ์ฐ 2. ๋ฌดํ๋ฃจํ์ ๋น ์ง๋ ๊ฒฝ์ฐ 3. null point error ๋ ผ๋ฆฌ ์ค๋ฅ : ์ฌ์ฉ์๊ฐ ์๋ํ ์์ ์ ํ๋ก๊ทธ๋จ์์ ์ํํ์ง ๋ชปํ๋ ์ค๋ฅ, ์์ธก ๋ถ๊ฐ๋ฅํ ์ค๋ฅ try-catch ์ ์ : ์์ธ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๊ตฌ๋ฌธ ..