Team
[CS์คํฐ๋] ํ๋ก์ ํธ ๊ด๋ จ ๋ฉด์ ์ง๋ฌธ
seungh2
2023. 5. 6. 23:44
๐ mysql์ ์ ํํ ์ด์
- mysql์ ์คํ ์์ค ๊ธฐ๋ฐ์ DBMS๋ก ๋ฌด๋ฃ๋ก ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
- ๋ฌด๋ฃ์ด์ง๋ง ๋น ๋ฅธ ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ํ์ฅ์ฑ์ ๊ฐ์ง๊ณ ์๋ค.
- ์ฌ์ฉ์ด ๋งค์ฐ ์ฝ๊ณ ํ๋ฐํ ์ปค๋ฎค๋ํฐ๋ฅผ ๊ฐ์ง๊ณ ์์ด ๋ค์ํ ๋ฌธ์ ์ ๋ํ ํด๊ฒฐ์ฑ ์ ์ฐพ์ ์ ์๋ค.
๐ ๋ฐฑ์๋ ์ธ์ด๋ก ์๋ฐ๋ฅผ ์ ํํ ์ด์
- ์๋ฐ๋ ์ ์ ํ์ ์ธ์ด๋ก ์ปดํ์ผ ์์ ์ ํ์ ๊ฒ์ฌ๊ฐ ์ด๋ฃจ์ด์ ธ ๋ฐํ์ ์์ ์์ ๋ฐ์ํ ์ ์๋ ์๋ฌ๋ฅผ ๋ฐฉ์งํ ์ ์๋ค.
- ์๋ฐ๋ ๊ฐ์ฒด ์งํฅ ์ธ์ด๋ก ์ฝ๋๋ฅผ ๋ชจ๋ํํด ์์ฑํด ์ ์ง๋ณด์์ฑ์ ๋์ผ ์ ์๋ค.
- ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ์๋์ผ๋ก ์ฒ๋ฆฌํด์ฃผ๋ Garbage Collection ๊ธฐ๋ฅ์ด ์์ด ๋ฉ๋ชจ๋ฆฌ ๋์ ๋ฑ์ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ ์ ์๋ค.
- JVM ์์์ ๋์ํ๊ธฐ ๋๋ฌธ์ ์ด์์ฒด์ ์ ์ข ์๋์ง ์์ ๋ค์ํ ์ด์์ฒด์ ์์ ์ฌ์ฉํ ์ ์๋ค.
๐ Java 8, Java 17์ด ์๋๋ผ Java 11์ ์ ํํ ์ด์
- Java 8์ ์ง์์ด ์ข ๋ฃ๋ ๋ฒ์ ์ผ๋ก ๋ณด์ ๋ฐ ์์ ์ฑ์ ๋ฌธ์ ๊ฐ ์๋ค.
- Java 17์ ์ต์ ๋ฒ์ ์ผ๋ก ์๋์ ์ผ๋ก ์์ ์ฑ์ด ๋จ์ด์ง๊ณ , ์ฌ์ฉ์๊ฐ ์ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ ๋ ์ฐธ๊ณ ํ ์ ์๋ ์๋ฃ๊ฐ ์ ๋ค.
โ Java 11 ์ ํ
๐ spring boot 3 ๋ฒ์ ์ด ์๋๋ผ spring boot 2 ๋ฒ์ ์ ์ ํํ ์ด์
- spring boot 3 ๋ฒ์ ์ Java 17๋ถํฐ ์ง์ํ๋ค.
- ๋ํ javax -> jakarta๋ก ๋ณ๊ฒฝ๋์๊ณ , ์ง์ํ์ง ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(springfox swagger)๊ฐ ์กด์ฌํ๋ค.
โ spring boot 2 ๋ฒ์ ์ ํ
๐ spring์ด ์๋๋ผ spring boot๋ฅผ ์ ํํ ์ด์
- ํ๊ฒฝ์ค์ ์ด ์ฝ๊ณ ๋น ๋ฅด๋ค.
- ๋ด์ฅํ ์๋ฒ๊ฐ ์์ด ๋ณ๋์ ์น ์๋ฒ๋ฅผ ์ค์นํ์ง ์์๋ ์คํ์ด ๊ฐ๋ฅํ๋ค.
- ๋ฐฐํฌํ ๋, spring ํ๋ ์์ํฌ๋ก ๊ฐ๋ฐํ ์ดํ๋ฆฌ์ผ์ด์ ์ WAR ํ์ผ๊ณผ ์ด๋ฅผ ์คํํ๊ธฐ ์ํด ์ค์ ํ WAS๊ฐ ํ์ํ๋ค.
- spring boot๋ก ๊ฐ๋ฐํ ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ด์ฅํ ์๋ฒ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋ ๋ฆฝ์ ์ผ๋ก ์คํ ๊ฐ๋ฅํ JAR ํ์ผ์ ๋ฐฐํฌํ๋ฉด ๋๋ค.
๐ mybatis๊ฐ ์๋๋ผ spring data jpa๋ฅผ ์ ํํ ์ด์
- mybatis๋ sql ์ฟผ๋ฆฌ๋ฅผ ์ง์ ์์ฑํด์ผ ํ๊ธฐ ๋๋ฌธ์ sql์ ์์กดํ๋ ๊ฐ๋ฐ์ ํด์ผ ํ๋ค.
- spring data jpa๋ ๊ฐ๋ฐ์๊ฐ ์ง์ sql ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ์ง ์์๋ ์๋์ผ๋ก ์์ฑ๋๋ค. (CRUD๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๊ณตํต ์ธํฐํ์ด์ค๊ฐ ์ ๊ณต๋๋ค.)
- mybatis๋ spring data jpa์ ๋ฌ๋ฆฌ ๋์ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์ด๋ ต๋ค.
- mybatis๋ sql๋ฌธ์ ์ค๋ฅ๋ ์คํ๋ฅผ ๋ฐํ์ ์ค๋ฅ๋ก ๋ฐ๊ฒฌํ์ง๋ง spring data jpa์ ์คํ ์ ๋ฌธ๋ฒ ๊ฒ์ฌ๋ฅผ ์ํํ ๋ ๋ฐ๊ฒฌํ ์ ์๋ค.
- spring data jpa๋ mybatis๋ฅผ ์ฌ์ฉํ ๋๋ณด๋ค ์๋ฑํ ๊ฐ๋ฐ์๋์ ์ ์ง๋ณด์์ฑ์ ๊ฐ๋๋ค.
๐ response์ entity๋ฅผ ๊ตฌ๋ถํด์ ์ฌ์ฉํด์ผ ํ๋ ์ด์
- entity ๊ฐ์ฒด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ๊ณผ ๋งคํ๋๊ธฐ ๋๋ฌธ์ response์ ํ์์๋ ํ๋๊ฐ ํฌํจ๋ ์ ์๋ค.
- entity ๊ฐ์ฒด๋ฅผ response๋ก ์ฌ์ฉํ๋ ๊ฒ์ ๋ถํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ ๋๋ฌธ์ ๋คํธ์ํฌ ํธ๋ํฝ์ ๋ญ๋นํ๋ค.
- ๋ํ frontend ์ชฝ์์ ๋ถํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํด์ผ ํ๋ ๊ณผ์ ์ ๊ฑฐ์ณ์ผ ํ๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ ์ ํ๊ฐ ๋ฐ์ํ ์ ์๋ค.
๐ ๋ฌดํ ์คํฌ๋กค์ ์ฌ์ฉํ๋ ์ด์
- ๋ฌดํ ์คํฌ๋กค
- ์ฌ์ฉ์๊ฐ ํ์ด์ง๋ฅผ ๋ก๋ฉํ์ง ์์๋ ๋๊ฒ ํ๊ธฐ ์ํด ์คํฌ๋กค์ ๋๊น์ง ๋ด๋ฆฌ๋ฉด ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ์๋์ผ๋ก ๋ถ๋ฌ์ค๋ ๋ฐฉ์
- ์ฌ์ฉํ๋ ์ด์
- ์ฌ์ฉ์ ๊ฒฝํ์ ํฅ์์ํค๊ธฐ ์ํด
- ํ์ด์ง ๋ก๋ฉ ์๊ฐ์ ์ค์ด๊ณ ์ฌ์ฉ์๊ฐ ์ํ๋ ์ ๋ณด์ ๋น ๋ฅด๊ฒ ์ ๊ทผํ ์ ์๋ค.
๐ JPA์์ ๋ฌดํ ์คํฌ๋กค์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ
- Page ๊ฐ์ฒด ์ฌ์ฉ
- Pageable ์ธํฐํ์ด์ค๋ฅผ ์ด์ฉํด ํ์ด์ง ๋ฒํธ, ํ์ด์ง ๋น ๋ฐ์ดํฐ ๊ฐ์, ์ ๋ ฌ ์ ๋ณด ๋ฑ์ ์ค์ ํ๋ค.
- Page ๊ฐ์ฒด์์ getTotalPages()๋ฉ์๋๋ฅผ ์ด์ฉํด ์ ์ฒด ํ์ด์ง ์๋ฅผ ๊ตฌํ ์ ์๋ค.
- ๋ด๋ถ์ ์ผ๋ก count ์ฟผ๋ฆฌ๊ฐ ์คํ๋๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ์ด ์ข์ง ์์ ์ ์๋ค.
- Slice ๊ฐ์ฒด ์ฌ์ฉ
- Page ๊ฐ์ฒด์ ๋ฌ๋ฆฌ count ์ฟผ๋ฆฌ๋ฅผ ์คํํ์ง ์๊ณ hasNext() ๋ฉ์๋๋ก ๋ค์ ํ์ด์ง๊ฐ ์๋์ง ์ฌ๋ถ๋ฅผ ํ์ธํ ์ ์๋ค.
- count ์ฟผ๋ฆฌ๋ฅผ ์คํํ์ง ์์ Page ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ์ฑ๋ฅ์ด ์ข๋ค.
- ์ ์ฒด ํ์ด์ง ์๋ฅผ ๊ตฌํ ์ ์๋ค.
- limit, offset ์ฌ์ฉ
- ํ์ด์ง ๋น ๋ฐ์ดํฐ ๊ฐ์์ ํ์ด์ง ๋ฒํธ๋ฅผ ์ด์ฉํด limit ์ ๊ณผ offset ์ ์ ๊ณ์ฐํด ์ฌ์ฉํ๋ค.
- ํ์ด์ง ๋ฒํธ๊ฐ ์ปค์ง์๋ก ์ฟผ๋ฆฌ์ ์คํ ์๋๊ฐ ๋๋ ค์ง๋ค. (limit + offset ๊ฐ์ ๋งํผ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ํ ํ์์๋ ๋ฐ์ดํฐ๋ฅผ ๋ฒ๋ฆฐ๋ค.)
- no offset ์ฌ์ฉ
- ๋ง์ง๋ง ์กฐํ ๊ฒฐ๊ณผ์ ID๋ฅผ ์ฌ์ฉํด ํ์์๋ ๋ฐ์ดํฐ ์กฐํ๋ฅผ ๋ง๋๋ค.
- ํด๋น ID๋ฅผ where ์ ์ ๊ฑธ์ด์ ๋งค๋ฒ ์ฒซ ํ์ด์ง๋ง ์ฝ๋๋ก ํ๋ค.
๐ Page vs Slice
- ๋ ๋ค ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ค๊ธฐ ์ํ spring data jpa์ ๊ฐ์ฒด
- Page
- ์ผ์ ํ ๊ฐ์์ ๋ฐ์ดํฐ๋ฅผ ํ ๋ฒ์ ๊ฐ์ ธ์์ ํ์ด์ง ๋จ์๋ก ์ฒ๋ฆฌํ๋ค.
- ์ด ํ์ด์ง ์, ํ์ฌ ํ์ด์ง ๋ฒํธ, ํ์ด์ง ๋น ๋ฐ์ดํฐ ๊ฐ์, ์ด์ ํ์ด์ง, ๋ค์ ํ์ด์ง ๋ฑ์ ์ ๋ณด๋ฅผ ํฌํจํ๊ณ ์๋ค.
- ์ด ํ์ด์ง ์๋ฅผ ๊ณ์ฐํ ํ์ ๋ค์ ํ์ด์ง๊ฐ ์๋์ง ์ฌ๋ถ๋ฅผ ํ๋จํ๋ค.
- Slice
- Page ๊ฐ์ฒด์ ์ ์ฌํ์ง๋ง ๋ค์ ํ์ด์ง๊ฐ ์๋์ง ์ฌ๋ถ๋ฅผ ํ๋จํ๋ ๋ฐฉ๋ฒ์ด ๋ค๋ฅด๋ค.
- ํ์ด์ง ๋น ๋ฐ์ดํฐ ๊ฐ์ +1 ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๊ณ ๋ฐ์ดํฐ๊ฐ ํ์ด์ง ๋น ๋ฐ์ดํฐ ๊ฐ์์ ๊ฐ๊ฑฐ๋ ์์ผ๋ฉด ๋ค์ ํ์ด์ง๊ฐ ์๊ณ ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ๋ค์ ํ์ด์ง๊ฐ ์๋ค๊ณ ํ๋จํ๋ค.
๐ webRTC
- ์น ๊ธฐ์ ์ ์ด์ฉํด ๋ธ๋ผ์ฐ์ ๊ฐ ์ค๋์ค, ๋น๋์ค, ๋ฐ์ดํฐ ๋ฑ์ ์ค์๊ฐ์ผ๋ก ์ฃผ๊ณ ๋ฐ์ ์ ์๋ ๊ธฐ์
- ํ๋ฌ๊ทธ์ธ์ด๋ ์ฑ์ ๋ค์ด๋ก๋ํ๊ฑฐ๋ ์ค์นํ์ง ์์๋ ๋ธ๋ผ์ฐ์ ๋ด์์ ์ค๋์ค, ๋น๋์ค, ๋ฐ์ดํฐ ๋ฑ์ ๊ณต์ ํ ์ ์๋ค.
- ๋ธ๋ผ์ฐ์ ๊ฐ P2P ํต์ ์ ํ๋ค.
๐ hadoop
- ๋์ฉ๋ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ฐ ์ฒ๋ฆฌํ๊ธฐ ์ํ ์๋ฐ ๊ธฐ๋ฐ์ ์คํ์์ค ํ๋ ์์ํฌ
- HDFS์ MapReduce๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
- ์ฌ๋ฌ ๋์ ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ฐ ์ ์ฅํ๊ณ ์ฒ๋ฆฌํ๋ฉฐ, ์์ ์ฑ๊ณผ ํ์ฅ์ฑ์ด ๋๋ค.
๐ spark
- ๋์ฉ๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ์ํ ํ๋ ์์ํฌ
- ์ธ๋ฉ๋ชจ๋ฆฌ ๊ธฐ๋ฐ์ ๋น ๋ฅธ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค.
- ๋๊ท๋ชจ ๋ฐ์ดํฐ ์ฒ๋ฆฌ, ๋จธ์ ๋ฌ๋, ์ค์๊ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฑ์ ์ฌ์ฉ๋๋ฉฐ, ํ๋ก๊ณผ ํจ๊ป ์ฌ์ฉ๋์ด ๋์ฑ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ์ ๊ณต
- ํฌ๋กค๋งํ ํญ๊ณต๊ถ ๋ฐ์ดํฐ๊ฐ ๋งค์ผ 20๋ง ๊ฐ ์ด์์ผ๋ก ์ด ๋ฐ์ดํฐ๋ฅผ ์ ์ ํ๊ณ , mysql์ ์ ์ฅํด์ผ ํ๊ธฐ ๋๋ฌธ์ spark๋ฅผ ์ฌ์ฉํ์๋ค.
๐ pyspark๋ฅผ ์ ํํ ์ด์
- ํ์ด์ฌ์ ๊ฐ๊ฒฐํ๊ณ ์ฝ๊ธฐ ์ฌ์ด ๋ฌธ๋ฒ์ ๊ฐ์ง๊ณ ์์ด ์ฝ๊ฒ ๋ฐฐ์ธ ์ ์๋ค.
- ๋ค์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ์ง๊ณ ์์ด ๋ฐ์ดํฐ ๋ถ์์ ์ ๋ฆฌํ๋ค. (ex. pandas)
- ์ค์นผ๋ผ, ์๋ฐ์ ๋นํด ๋ค์ํ ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ๊ฐ ํ๋ฐํ๊ฒ ์ด์๋์ด ๋ฌธ์ ํด๊ฒฐ ๋ฐ ์ ๋ณด ๊ณต์ ๊ฐ ์ฝ๋ค.
๐ JIRA๋ฅผ ์ฌ์ฉํ์ ๋ ์ฅ์
- ํ๋ก์ ํธ์ ์ ์ฒด์ ์ธ ์ํฉ์ ํ์ ํ ์ ์๋ค.
- ํ์์ ์งํ์ํฉ์ ํ์ธํ ์ ์์ด, ์ ๋ฌด ๋ถ๋ด์ ์ฝ๊ฒ ์กฐ์ ํ ์ ์๋ค.
- ๋งก์ ์ ๋ฌด์ ๋ํ ์งํ ์ํฉ์ ์ค์๊ฐ์ผ๋ก ๊ณต์ ํ ์ ์๋ค.
- ๋ฒ๋ค์ด ์ฐจํธ์ ๊ฐ์ ๋ณด๊ณ ์๋ฅผ ํ์ฉํด ํ๋ก์ ํธ ์งํ ์ํฉ์ ์๊ฐ์ ์ผ๋ก ํ์ธํ ์ ์๋ค.
728x90