์ถ์ฒ : ์ธ์์ ๋๋ด๋ ๋คํธ์ํฌ ํต์ฌ์ด๋ก - ๊ธฐ์ด (์ธํ๋ฐ)
UITableView๋ฅผ ์ฌ์ฉํ๋๋ฐ, ์ฒ์์ Style์ Inset Grouped ๋ฅผ ์ค์ ๋ชจ์์ ์ก์ผ๋ ค๊ณ ํ๋ค. Inset Grouped ๋ฅผ ์ฌ์ฉํ๋ฉด, ์๋ ์ฌ์ง์ฒ๋ผ ์์์ ์น์ ์ corner round๋ฅผ ๋ฃ์ด์ฃผ๊ณ , padding ๋ ์์์ ์ก์์ค๋ค.๊ทธ๋ฐ๋ฐ ํ์ฌ์ ์ถ๊ทผ
์์ฒ๋ผ header ๋ผ๋ UIView ์์ card ๋ผ๋ UIView ๋ฅผ ๋ฃ๊ณ , setGradient() ๋ผ๋ ํจ์๋ฅผ ๋ง๋ค์ด์ gradient๋ฅผ ์ฃผ๋ ค๊ณ ํ๋๋ฐ, ์๋ฌด๋ฆฌ ํด๋ ์๋จนํ๋๋ผ...๋์ฒด ์๊ทธ๋ด๊น ํ๊ณ , card.layout.size.height ๋ card.la
@ConfigurationProperties ์ฌ์ฉ ์ค ์ด๋ฐ ์ค๋ฅ๊ฐ ๋ฐ์ํ์๋ค.Spring Boot Configuration Annotation Processor not configured์ธํฐ๋ท์ ๊ฒ์ํด๋ณด๋ build.gradle์ ์๋์ ๊ฐ์ด ์ถ๊ฐ๋ฅผ ํ๋ฉด ๋๋ค๊ณ ํ๋ค.
์ค๋์ Elastic Beanstalk ์ ์๋ฒ๋ฅผ ๋ฐฐํฌํด๋ณด๋ ค๊ณ ํ๋ค.EC2์๋ ๋ช ๋ฒ ๋ฐฐํฌํด๋ดค์ง๋ง Elastic Beanstalk์ ๋ฐฐํฌํด๋ณด๋ ๊ฑด ์ฒ์์ด๋ค!์ผ๋จ ์ ์ผ ์ฒ์ aws ์ Beanstalk์ ๋ค์ด๊ฐ๋ค.๊ฐ๋จํ๊ฒ '์์ํ๊ธฐ'ํด๋ฆญ!ํ๊ฒฝ ์ค์ ์ ํด์ค๋ค.ํ์ผ์ ์ ๋ก๋
API ๋ช ์์๋ฅผ ํ ๋ฒ ์์ฑํด๋ณด๋ ค๊ณ ํ๋๋ฐ, ์๋ ์ Swagger๋ฅผ ๋ฑ ํ ๋ฒ ์ผ๋ ๊ธฐ์ต์ด ์์ด์ Swagger๋ก ๊ฐํธํ๊ฒ! ์์์ ์์ฑ๋๊ฒ! ํด๋ณด๋ ค๊ณ ํ๋ค.Spring boot 3 ๋ฏธ๋ง์์๋ springfox-swagger2 ์ springfox-swagger-ui
์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ถ๊ฐํด๋ณด๋ ค๊ณ ํ๋ค.์กฐ๊ฑด์ ์๋์ ๊ฐ๋ค.๋ด์ฉ์ 1๊ธ์ ์ด์ 1000๊ธ์ ์ดํ์ฌ์ผ ํ๋ค.์ ๋ชฉ์ ๊ณต๋ฐฑ์ผ๋ก๋ง ์ด๋ฃจ์ด์ง ์๋ ์๋ค.๊ฒ์๊ธ์ id(PK, primary key)๋ก ํน์ ๊ฒ์๊ธ์ ์กฐํํ์ ๋, ์กด์ฌํ์ง ์๋ ๊ฒ์๊ธ์ผ ๊ฒฝ์ฐ ์๋ฌ ๋ฉ์์ง๋ก ์๋ตํ๊ธฐ๊ฒ์๊ธ์
์ด๋ฒ์ Pageable์ ์์ ์ ์ข ํด๋ณด์๋ค.์๋๋ SpringDoc์ ํตํด์ API ๋ช ์์ ํ์ด์ง๋ฅผ ๋ง๋ค๋ คํ๋๋ฐ, ๋ง๋ค๊ณ ๋ณด๋ ํ๋ผ๋ฏธํฐ์ order๊ฐ ์๋๊ฒ ์๋๊ฐ! (์ ๋ฒ์ Pageable์์ order๋ฅผ ์ฐพ๋ค๊ฐ ํฌ๊ธฐํ์๋ค.) ๊ทธ๋์ ๋ค์ TRY ํด๋ณด์๋๋ฐ, ์ญ์๋
Optional >Optional ํด๋์ค๋ Integer๋ Double ํด๋์ค์ฒ๋ผ 'T'ํ์ ์ ๊ฐ์ฒด๋ฅผ ํฌ์ฅํด ์ฃผ๋ ๋ํผ ํด๋์ค(Wrapper class)์ ๋๋ค. >๋ฐ๋ผ์ Optional ์ธ์คํด์ค๋ ๋ชจ๋ ํ์ ์ ์ฐธ์กฐ ๋ณ์๋ฅผ ์ ์ฅํ ์ ์์ต๋๋ค. >์ถ์ฒ : ์ฝ๋ฉ์ ์์,
๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ๋ ๊ฒ์, ์ ๋ ฌ, ๊ฐฏ์์ ํ ๊ธฐ๋ฅ์ ์ถ๊ฐํด ๋ณด๋ ค๊ณ ํ๋ค.๊ฐฏ์์ ํ์ ๊ทธ๋ฅ limit๋ก ๋ณด๋๊ฒ ์๋๋ผ Pagination๋๋์ผ๋ก ํด๋ณด๋ ค๊ณ ํ๋ค.Spring Data JPA๊ฐ ์ ๊ณตํ๋ PageNation์ด ์๋๋ฐ, Pageable๊ณผ PageRequest์ด๋ค.Pa
ORM(Object-Relational Mapping)์ ๋์ฒด ๋ฌด์์ผ๊น?์ด๊ฒ์ ์๋ฐ์ ๊ฐ์ฒด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค(์ดํ, ๋๋น)๋ฅผ ์ฐ๊ฒฐํ๋ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ฒ์ด๋ค.์๋ฅผ ๋ค์ด, ์๋ฐ์ ๊ฐ์ฒด๋ก Board๋ผ๋ ๊ฐ์ฒด๊ฐ ์๊ณ title, content ํ๋๊ฐ ์๋ค๊ณ ๊ฐ์ ํด๋ณด์. ์ด๊ฒ์ ๋๋น
ํน์ ํ ๊ฒ์ํ์ ์กฐํํ๋ API๋ฅผ ๋ง๋ค์ด ๋ณด๋ ค๊ณ ํ๋ค.๋จผ์ Service ์ฝ๋๋ถํฐ ์์ฑํด๋ณด์.findById ๋ CrudRepository ์ ์๋ ๋ฉ์๋์ด๋ค.id ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก Board๋ฅผ ํ์ํ๋ค.์๋น์ค ์ฝ๋๋ฅผ ์์ฑํ์ผ๋ ์ปจํธ๋กค๋ฌ๋ฅผ ์์ฑํด๋ณด์.์ด๋ฌ๋ฉด ๋ฒ์จ ๊ฒ์๊ธ ํ
1. ์ํฐํฐ ๊ตฌ์ฑํ๊ธฐ ๊ฐ์ฅ ๋จผ์ ์ํฐํฐ๋ฅผ ๊ตฌ์ฑํด๋ณด๊ฒ ๋ค. | ์ปฌ๋ผ๋ช | ์๋ฃํ | null ํ์ฉ | ํค | ์ค๋ช | |-|-|-|-|- | id | int | X | PK | ๊ฒ์๊ธ์ ์์ด๋ | | title | varchar(100) | X | | ๊ฒ์๊ธ์ ์ ๋ชฉ|
๊ธ์ ๋ชฉ, ๋ด์ฉ ์ ๋๋ง ์๋ ๊ฐ๋จํ ๊ฒ์ํ API๋ฅผ ๋ง๋ค์ด ๋ณด๋ ค๊ณ ํ๋ค.์คํ๋ง์ ๋ง์ง์ง ์ด์ธ 1๋ ์ด ๋ค ๋์ด ์คํ๋ง์ด ํ๋๋ ๊ธฐ์ต๋์ง ์์ ๋ณต์ต ์ฐจ์์์ ์ด์ฌํ ์คํฐ๋ ์ค์ด๋ค! ๐์ผ๋จ ๊ฐ์ฅ ๋จผ์ Rest API๋ ๋ฌด์์ผ๊น?Rest API๋ URL์ ์ค๊ณ ๋ฐฉ์์ ์๋ฏธํ๋ค
Spring - mybatis ์ฐ๋ํ๋๋ฐ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.๊ทธ ์ ๊น์ง ๋ถ๋ช ์ ๋๊ณ ์์๋๋ฐ, ์๋ฒ ํ ๋ฒ ์ฌ๊ธฐ๋ ํ๋ค๊ณ ๊ฐ์๊ธฐ ์๋ฌ ํญ๋ฐ... ๐ ํด๋ ์์น๋ฅผ ํจํค์ง ์์น๋ ๊ฐ์ด ํด์ผ ๋๋ค. ํ์ผ๋ช ์ด ๊ฐ์์ผ ํ๋ค. ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ๋ง์์ ๋ณด์ด๋๋๋ก ๋ค ์๋ํด๋ดค๋๋ฐ, ๋๊ฐ์