1. ํ์ ์บ์คํ ๋ถ๋ชจ ํด๋์ค๋ก๋ถํฐ
  ์์์ด๋ 'ํ ํด๋์ค๊ฐ ๋ค๋ฅธ ํด๋์ค์์ ์ ์๋ ํ๋กํผํฐ๋ ๋ฉ์๋๋ฅผ ๋ฌผ๋ ค๋ฐ์ ์ฌ์ฉํ๋ ๊ฒ' ์ด๋ค.   ์์์ ํ๋ฉด ์ด๋ฏธ ๋ง๋ค์ด์ง ๋ค๋ฅธ ํด๋์ค์ ๊ธฐ๋ฅ์ด๋ ํ๋กํผํฐ๋ฅผ ์ง์ ๊ตฌํํ์ง ์๊ณ ๋ ์ฌ์ฉํ ์ ์๊ณ , ์ถ๊ฐ๋ก ํ์ํ ๊ธฐ๋ฅ์ด๋ ํ๋กํผํฐ๋ง ์ ์ํ์ฌ ์ฌ์ฉํ
์์ฆ ์กธ์ ์ํ์ Swift๋ก IOS App์, Node Express๊ณผ MySQL์ ์ด์ฉํ์ฌ ๋ฒก์๋๋ฅผ ๊ตฌํํ๊ณ ์๋ค. ์ฑ์์ Node๋ก ๊ตฌํํ API๋ฅผ ํธ์ถํ๋ ํํ๋ก ๋ง๋ค๊ณ ์๋๋ฐ Swift์ ์๋ฎฌ๋ ์ดํฐ๊ฐ ๋ถํธํ์ฌ ์ง์ ์์ดํฐ์ ์ฐ๊ฒฐํ๊ณ ์์ดํฐ์ผ๋ก ๋ง๋ค๊ณ ์๋ ์ฑ์
  ๋ฉ์๋(Method)๋ ์ผ์ข ์ ํจ์๋ก์, ํด๋์ค๋ ๊ตฌ์กฐ์ฒด, ์ด๊ฑฐํ๊ณผ ๊ฐ์ ๊ฐ์ฒด ๋ด์์ ํจ์๊ฐ ์ ์ธ๋ ๊ฒฝ์ฐ ์ด๋ฅผ ๋ฉ์๋๋ผ๊ณ ํต์นญํ๋ค. ์ฆ, ๋ฉ์๋๋ ํน์ ํ์ ์ ๊ฐ์ฒด ๋ด๋ถ์์ ์ฌ์ฉํ๋ ํจ์๋ผ๊ณ ํ ์ ์๋ค.   ๋ฉ์๋๋ ์ธ์คํด์ค ๋ฉ์๋์ ํ์ ๋ฉ์๋๋ก
  ํ๋กํผํฐ๋ ์์ ๊ตฌ์กฐ์ฒด์ ํด๋์ค ์ฑํฐ์์ ํด๋์ค๋ ๊ตฌ์กฐ์ฒด ๋ด์์ ์ ์ฅ๋ ๋ณ์๋ ์์๋ผ๊ณ ์ค๋ช ํ๋ค.   ํ๋กํผํฐ๋ ๊ฐ์ ๋ํ ์ ์ฅ ์ฌ๋ถ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ์ฅ ํ๋กํผํฐ์ ์ฐ์ฐ ํ๋กํผํฐ๋ก ๋๋์ด์ง๋ค. >   ์ ์ฅ ํ๋กํผํฐ ์ ๋ ฅ๋ ๊ฐ์ ์ ์ฅํ๊ฑฐ๋ ์
๊ตฌ์กฐ์ฒด(Struct) ๐ ํด๋์ค(Class)   ๊ตฌ์กฐ์ฒด์ ํด๋์ค๋ ์ฌ๋ฌ ๊ฐ์ง ๋ฉด์์ ๋งค์ฐ ์ ์ฌํ๋ค.   ํ๋กํผํฐ(๋ฉค๋ฒ ๋ณ์), ๋ฉ์๋(ํด๋์ค, ๊ตฌ์กฐ์ฒด ๋ด๋ถ์ ์๋ ํจ์), ์๋ธ ์คํฌ๋ฆฝํธ, ์ด๊ธฐํ ๋ธ๋ก, ํ์ฅ(extends ๊ตฌ๋ฌธ), ํ๋กํ ์ฝ์ ๊ณตํต์ ์ผ
1.   ์์ ํจ์โ๏ธ ์์ ํจ์์ ์กฐ๊ฑด์ ๋ค์๊ณผ ๊ฐ๋ค. > 1. ์ ๋ ฅ๊ฐ์ ๋ํด์ ๋ฐ๋์ ๊ฒฐ๊ณผ๊ฐ์ด ์์ด์ผํ๋ค.(์ ๋ ฅ ๊ฐ 1! ๊ฒฐ๊ณผ ๊ฐ 1) ์ธ๋ถ ๋ณ์์ ๊ฐ์ ์ด ์์ด์ผ ํ๋ค. ์์ ํจ์์ ์ฅ์ ์ ์ธ๋ถ ๋ณ์์ ๊ฐ์ ์ด ์๊ธฐ ๋๋ฌธ์ ์บ์ฑ์ ํ ์ ์๋ค๋ ์ฅ์ ์ด ์
ย ์ค์ํํธ๋ ๊ฐ์ฒด์งํฅ ์ธ์ด์ด์ ๋์์ ํจ์ํ ์ธ์ด์ด๋ค. ํจ์ํ ์ธ์ด๋ฅผ ํ์ตํ๊ฒ ๋๋ฉด ๋ฐ๋์ ์ผ๊ธ ๊ฐ์ฒด(First-Class Object)๋ผ๋ ์ฉ์ด๋ฅผ ์ ํ๊ฒ ๋๋ค.ย ๊ฐ์ฒด๊ฐ ๋ค์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ฒฝ์ฐ ์ด ๊ฐ์ฒด๋ฅผ ์ผ๊ธ ๊ฐ์ฒด๋ก ๊ฐ์ฃผํ๋ค.๊ฐ์ฒด๊ฐ ๋ฐํ์์๋ ์์ฑ์ด ๊ฐ๋ฅํด์ผ ํ
1. ํจ์์ ๊ธฐ๋ณธ ๊ฐ๋ ํจ์(Function)๋ ๋๋ถ๋ถ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ์ง์ํ๋ ๊ฐ๋ ์ผ๋ก ํ๋ก๊ทธ๋จ์ ์คํ ๊ณผ์ ์ค์์ ๋ ๋ฆฝ์ ์ผ๋ก ์ฒ๋ฆฌ๋ ์ ์๋ ๋ถ๋ถ์ ๋ถ๋ฆฌํ์ฌ ๊ตฌ์กฐํํ ๊ฐ์ฒด๋ฅผ ์๋ฏธํ๋ค. ์ฆ ์ธ๋ถ์ ์์กดํ๋ ๋ถ๋ถ ์์ด ํญ ๋ผ์ด ๋ถ๋ฆฌ ํ ์ ์๋ ์ค
ย ์ต์ ๋ ๊ฐ๋ ์ nil์ ์ฌ์ฉํ ์ ์๋ ํ์ ๊ณผ ์ฌ์ฉํ ์ ์๋ ํ์ ์ผ๋ก ๊ตฌ๋ถํ๊ณ , ์ฌ์ฉํ ์ ์๋ ํ์ ์ ๊ฐ๋ฆฌ์ผ ์ต์ ๋ ํ์ ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.ย nil์ ๋ค๋ฅธ ์ธ์ด์์ null๊ณผ ๊ฐ๋ค. ๊ฐ์ด ์์์ ์๋ฏธํ๋ ํน์ํ ๊ฐ์ด๋ค.ย ๋ค์ ์์ ์ฝ๋๋ฅผ ๋ณด์!ย ํ์ง๋ง ๋ชจ๋ ํ์
1. ํํ ํํ(Tuple)์ ์ค์ํํธ์์ ์ ๊ณตํ๋ ํน๋ณํ ์ฑ๊ฒฉ์ ์ง๋จ ์๋ฃํ์ผ๋ก, ํ์ด์ฌ์๋ ํํ ์๋ฃํ์ด ์๋ค. ํํ์ ํ ๊ฐ์ง ํ์ ์ ์์ดํ ๋ง ์ ์ฅํ ์ ์๋ ๋ฐฐ์ด์ด๋ ๋์ ๋๋ฆฌ์ ๋ฌ๋ฆฌ ํ๋์ ํํ์ ์ฌ๋ฌ ๊ฐ์ง ํ์ ์ ์์ดํ ์ ์ ์ฅํ ์ ์์ง๋ง, ์ผ๋จ
1. ๋ฐ๋ณต๋ฌธ ๋ฐ๋ณต๋ฌธ์ ์ฃผ์ด์ง ์กฐ๊ฑด์ ์ํด ํน์ ์ฝ๋ ๋ธ๋ก์ ๋ฐ๋ณต์ ์ผ๋ก ์คํํ ์ ์๊ฒ ํด์ฃผ๋ ๊ตฌ๋ฌธ์ด๋ค. Swift์์ ๋ฐ๋ณต๋ฌธ์ ๋ค๋ฅธ ์ธ์ด๋ค๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก For๋ฌธ๊ณผ While๋ฌธ์ด ์๋ค. ์ค์ํํธ์์์ for๋ฌธ์ for ~ in ๊ตฌ๋ฌธ์ด๋ค.
๊ผผ๊ผผํ ์ฌ์์จ์ Swift: ๋ฌธ๋ฒํธ ์ฑ ์ ๋ณด๊ณ ์ ๋ฆฌํ ๊ธ์ ๋๋ค.
1. JPA๋? 2. SQL ์ค์ฌ ๊ฐ๋ฐ์ ๋ฌธ์ ์ 3. JPA(Java Persistence API) ์ฌ์ฉ์ด์ 1. JPA๋? JPA๋ ์๋ฐ ์ง์์ ORM(Object-relational mapping)๊ธฐ์ ํ์ค์ผ๋ก ์ธํฐํ์ด์ค์ ๋ชจ์์ด๋ค. ORM์ ๊ฐ์ฒด๋ ๊ฐ์ฒด๋๋ก ๊ด
TCP์ UDP๋ ์ ์ก๊ณ์ธต(OSI 4๊ณ์ธต)ํ๋กํ ์ฝ์ด๋ค. ์์ ์ฑํฐ์์ IPํ๋กํ ์ฝ๊ณผ ๊ทธ ํ๊ณ์ ๋ํด์ ์ด์ผ๊ธฐ ํ๋ค. TCP๋ IPํ๋กํ ์ฝ์ ํ๊ณ๋ฅผ ๋ณด์ํด์ค ์ ์๋ค. TCP/IP์ ํจํท์ ๋ค์๊ณผ ๊ฐ์ ๊ตฌ์กฐ๋ฅผ ๋๋ค. ๋ญ๊ฐ IP๋ง ์์์ ๋๋ณด๋ค ๋ ์ธ๋ถ์ ์ธ ์ ๋ณด๋ค์ด ์ถ
์ธํฐ๋ท์์ ๋ ์ปดํจํฐ๋ ์ด๋ป๊ฒ ํต์ ํ ๊น? ํด๋ผ์ด์ธํธ(Client)์ ์๋ฒ(Server) ์ฐ๋ฆฌ ์ค Youtube ํน์ Google์ ์ด์ฉํ์ง ์๋ ์ฌ๋์ ์๋ฌด๋ ์์ ๊ฒ์ด๋ค. ํ ๊ฐ์ง ์๋ฅผ ๋ค์ด๋ณด์!! Youtube๋ฅผ ์์ฒญํ ๋ ์ฐ๋ฆฌ๋ ์ํ๋ ์์์ Youtube์
์์ ์์ ์ฝ๋์ ๋ํ ํ ์คํธ ์ฝ๋์ด๋ค.ํ ์คํธ ์ฝ๋๋ฅผ ์คํํ๋ฉด ๊ฐ์ฒด ์์ฑ ๋จ๊ณ์๋ ์ค์ ๋ url์ด ์๊ธฐ ๋๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋์ฌ ๊ฒ์ด๋ค. ์ฝ๋์์ setUrl(์์ ์ ์ฃผ์ )์ ํตํด์ผ๋ง url์ด ๋ง๋ค์ด์ง๋ค.๐๐ป์คํ๋ง ๋น์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ , ์์กด๊ด๊ณ ์ฃผ์ ์ด ๋ค
์์ ์์ฑ์๋ฅผ ํตํ ์์กด๊ด๊ณ ์ฃผ์ ์ ๋ํด ์์๋ณด์๋ค.๊ทธ๋ฐ๋ฐ ์์ฑ์๋ ๋ง๋ค๊ณ , ์ฃผ์ ๋ฐ์ ๊ฐ์ ๋์ ํ๋ ์ฝ๋ ๋ฑ ๋ง๋ค์ด์ผ ํ ๊ฒ์ด ๋๋ฌด ๋ง๋ค.... @Component์ @Autowired๋ฅผ ์ ์ฉํ ๊ธฐ์กด ์ฝ๋์ด๋ค.์์ฑ์๋ฅผ 1๊ฐ๋ง ๋๋ฉด ๋ค์๊ณผ ๊ฐ์ด @Autowired๋ฅผ ์
์์ ์ด์ผ๊ธฐํ ์์กด๊ด๊ณ ์ฃผ์ (DI)๋ ๋ฐฉ๋ฒ์ ํฌ๊ฒ 4๊ฐ์ง๊ฐ ์๋ค.์์ฑ์๋ฅผ ํตํ ์ฃผ์ ๋ฐฉ๋ฒ, ์์ ์(Setter๋ฅผ ํตํด์) ์ฃผ์ ๋ฐฉ๋ฒ, ํ๋์ ์ง์ ์ฃผ์ (๋ณ์ ํ๋์ ์ง์ @Autowired ๋ถ์) ๋ฐฉ๋ฒ, ์ผ๋ฐ ๋ฉ์๋๋ฅผ ํตํ ์ฃผ์ ๋ฐฉ๋ฒ์ด ์๋ค!์ฐ์ ์ ์ฌ์ฉํ์ง ์๋ ๋ฐฉ๋ฒ