APP17 [๋ถ์คํธ์ฝ์ค] ๋คํธ์ํน/HTTP ์์ผ(Socket) ๋คํธ์ํฌ๋ฅผ ๊ฒฝ์ ํ๋ ํ๋ก์ธ์ค ๊ฐ ํต์ ์ ์ ์์ ์์ผ์ ํตํด์ ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ฌ์ด์ ๋ฐ์ดํฐ ์ก์์ ์ ์ญํ ์ ํ๋ค. ์๋ฒ ์์ผ์ ์ฐ๊ฒฐ์ ๊ธฐ๋ค๋ฆฌ๋ ์ญํ ์ ํ๊ณ ํด๋ผ์ด์ธํธ ์์ผ์ ์ฐ๊ฒฐ์ ๋ง๋๋ ์ญํ ์ ํ๋ค. ๋คํธ์ํน(Networking) ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ฒ์ ํด๋ผ์ด์ธํธ์ ์์ฌ์ํตํ๋ ํ์ ๋ ๋ ์ด์์ ์ปดํจํฐ๋ฅผ ์ผ์ด๋ธ๋ก ์ฐ๊ฒฐํ์ฌ ๋คํธ์ํฌ๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒ ๋คํธ์ํน์ ์๋ต์๋๋ฅผ ๋์ด๊ธฐ ์ํด ์์ผ ์ฐ๊ฒฐ์ ์ ํธํ๋ฉฐ, TCP/IP์ ํต์ ๋ฐฉ์์ ์ ๊ณตํ๋ ์์ผ์ ์ฌ์ฉํ๋๋ฐ ์ด๋ฅผ ํ์ฉํ๊ธฐ ์ํด ์๋ฒ์ ํด๋ผ์ด์ธํธ๋ฅผ ๊ฐ๋ฐ HTTP ์น ์๋ฒ๋ ๊ตญ์ ํ์ค์ ๋ง๋ ํฌ๋งท์ธ HTTP ์์ฒญ์ ๋ฐ์ ์ฒ๋ฆฌํ ์ ์๋ค. ํด๋ผ์ด์ธํธ๋ ์์ฒญ์ ๋ณด๋ด๋ ์ชฝ์ ์๋ฏธํ๋ฉฐ ์น์์๋ ๋ธ๋ผ์ฐ์ ๋ฅผ ์๋ฏธํ๋ค. ์๋ฒ๋ ์์ฒญ์ ๋ฐ๋ ์ชฝ์ ์๋ฏธํ๋ฉฐ .. 2020. 3. 5. [๋ถ์คํธ์ฝ์ค] ์ค๋ ๋(Thread) ์ค๋ ๋(Thread) ์ด๋ ํ ํ๋ก๊ทธ๋จ์์, ํ๋ก์ธ์ค ๋ด์์ ์คํ๋๋ ํ๋ฆ์ ๋จ์๋ฅผ ๋งํ๋ค. ๋์ ์์ ์ ์ํ ํ ๋จ์ ๋ฉ์ธ ์ค๋ ๋ : ์ฑ์ ์คํํ๋ฉด ํ๋์ ์ค๋ ๋๊ฐ ์์๋ ๋, ์ด์ ์ค๋ ๋๋ฅผ ๊ฐ๋ฆฌํด ์ค๋ ๋๊ฐ ๋์ํ๋ ๋ฐฉ์์ ํ์ค ์๋ฐ์ ๋์ผํ์ง๋ง, ์ฐจ์ด์ ์ด ์๋ค๋ฉด ์๋๋ก์ด๋์์๋ ๋ฉ๋ชจ๋ฆฌ ์์ค์ UI์ ์ง์ ์ ๊ทผํ์ง ์๊ธฐ ๋๋ฌธ์ ํธ๋ค๋ฌ(Handler)๊ฐ ๋ฐ๋์ ์ฌ์ฉ๋์ด์ผํ๋ค. ์๋ํ๋ฉด, UI๋ ํ์ผ๊ณผ ๊ฐ์ ๋ฆฌ์์ค๋ ์ฌ๋ฌ ๊ฐ์ ์ค๋ ๋๊ฐ ๋์์ ์ ๊ทผํ์ ๋ ์์คํ ์์ ์ด๋ค ๊ฒ์ ๋จผ์ ์ฒ๋ฆฌํด์ผ ํ๋์ง ๋ชจ๋ฅด๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ํธ๋ค๋ฌ(Handler) ๋ฉ์์ง ํ๋ฅผ ์ด์ฉํด ๋ฉ์ธ ์ค๋ ๋์์ ์ฒ๋ฆฌํ ๋ฉ์์ง ์ ๋ฌ ํน์ ๋ฉ์์ง๊ฐ ๋ฏธ๋์ ์ด๋ค ์์ ์์ ์คํ๋๋๋ก ์ค์ผ์ค๋ง ๊ฐ๋ฅ obtainMessage() ํธ์ถ.. 2020. 3. 4. [๋ถ์คํธ์ฝ์ค]์๋๋ก์ด๋ ํญ(Tab) ํญ ๋ฒํผ(TAB) ํญ์ sdk๊ฐ ์ ๊ณตํ๋ ์์ ฏ์ ์ฌ์ฉํ ์๋ ์๊ณ , ์ง์ ๋ง๋ค ์๋ ์๋ค. ํญ์ ์นด์นด์คํก, ์ธ์คํ๊ทธ๋จ, ํ์ด์ค๋ถ๊ณผ ๊ฐ์ sns์ ๋ง์ ์ดํ์ ํ๋ฉด ๊ตฌ์ฑ์ ํ๋ฐํ๊ฒ ์ฌ์ฉ๋๊ณ ์๋ค. ํญ์ ๊ตฌ์ฑ๋ฐฉ๋ฒ์ผ๋ก๋ activity๋ฒํผ๊ณผ famelayout(ํ๋ ์ ๋ ์ด์์)์ด๋ผ๋ ์์ ฏ์ ๋ฐฐ์นํ์ฌ ์ ์ฒด์ ์ธ ๋ ์ด์์์ ๊ตฌ์ฑํ์ฌ ๋ฒํผ ์ ํ์, ํด๋น๋๋ fragment๋ฅผ ๋์ฐ๋ ๋ฐฉ์์ผ๋ก ๊ตฌํ๋๋ค. MainActivity.java package com.example.actionbar_ex; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.ScrollingTabContainerView; import androidx.ap.. 2020. 2. 28. [๋ถ์คํธ์ฝ์ค]์๋๋ก์ด๋ ํ๋๊ทธ๋จผํธ(fragment),์ก์ ๋ฐ ํ๋๊ทธ๋จผํธ(Fragment) ๋์ ์กํฐ๋นํฐ๊ฐ ์ฌ๋ฌ ๊ฐ์ ํ๋ฉด์ ๊ฐ์ง๋๋ก ๋ง๋ค๊ธฐ์ํด ๊ณ ์๋ ๊ฐ๋ ์ด๋ค. ํ๋์ ๋์คํ๋ ์ด์์ ์ฌ๋ฌํ๋ฉด์ ๋์ฐ๊ณ ์ถ์ ๋์ฆ๊ฐ ์์ฑ๋๋ฉด์ ํ๋๊ทธ๋จผํธ๋ฅผ ์ด์ฉํ์ฌ ๊ทธ ๋์ฆ๋ฅผ ํด๊ฒฐ์ํฌ ์ ์๋ค. ํธ๋ํฐ์ ํ๋ฉด๊ณผ ๋ฌ๋ฆฌ ์์ดํจ๋๋ ํ๋ธ๋ฆฟ ๊ฐ์ ๊ธฐ๊ธฐ์์๋ ํ ํ๋ฉด์ ํ๋ฒ์ ๋ณด์ฌ์ฃผ์ด ํธ๋ฆฌํ๊ฒ ๋ง๋ค์๋ค. ์ด์ ๊ด๋ จ๋ ๋ฐฉ๋ฒ์ผ๋ก๋ ํ๋๊ทธ๋จผํธ ๋ง๊ณ ๋ ๋ ์ด์์(layout)๊ณผ ์กํฐ๋นํฐ(activity)๋ฅผ ์ฌ์ฉํ์ฌ ๋ํ๋ผ ์ ์์ง๋ง, ๋ ์ด์์์ ๊ฒฝ์ฐ ์ ์ ์ธ ์์๋ฅผ ์ ์ํ๋ ๋งํผ ์ด๋ฒคํธ๋ ๋ฐ์ดํฐ์ ์ด๋๊ณผ ๊ฐ์ ๋์์ ์ฒ๋ฆฌํ๊ธฐ์ ๋ฌด๋ฆฌ๊ฐ ์๊ณ , ์กํฐ๋นํฐ์ ๊ฒฝ์ฐ ActivityGroup ํด๋์ค๋ฅผ ํ์ฉํด ์กํฐ๋นํฐ๋ฅผ ์ค์ฒฉ ์ํด์ผ๋ก์จ ํ๋ฉด ๋ถํ ์ ๊ตฌํํ์ง๋ง ์ด ๋ํ ์ค์ฒฉ๋ ์กํฐ๋นํฐ๊ฐ์ ์๋ช ์ฃผ๊ธฐ ๊ด๊ณ๋ ์ฌ๋ฌ ๊ตฌ์กฐ์ ์ธ.. 2020. 2. 27. [๋ถ์คํธ์ฝ์ค] ๋ธ๋ก๋์บ์คํธ ์์ ์/์ํ ๊ถํ ๋ธ๋ก๋์บ์คํธ ์์ ์(Broadcast Receiver) ๋ธ๋ก๋์บ์คํธ(Broadcast) : ๋ฐฉ์ก์ ํ๋๊ฒ ์) ์ฑํ ์ฑ์์ ์ผ๋์ผ ์ฑํ ์ ํ ๋ ๋ฉ์์ง๋ ๋ ์ฌ๋๋ผ๋ฆฌ ์ฃผ๊ณ ๋ฐ์ง๋ง ์ฌ๋ฌ ์ฌ๋์๊ฒ ํ๊บผ๋ฒ์ ์ ๋ฌํ๊ณ ์ถ์ ๋๋ ๊ทธ๋ฃน ์ฑํ ๋ฐฉ์ ๋ง๋ค์ด ํ ๋ฒ ์ด ๊ธ์ ์ฌ๋ฌ ์ฌ๋์๊ฒ ์ ๋ฌํ๋ ๊ฒ ๋คํธ์ํฌ๋ถ์ผ์์์ ์ ๋์บ์คํธ/๋ฉํฐ์บ์คํธ/๋ธ๋ก๋์บ์คํธ์ ๊ฐ๋ ์ด ์ ์ฌ ๋ธ๋ก๋์บ์คํ ๋ฉ์์ง๋ ์ธํ ํธ ๊ฐ์ฒด๋ก ๋ง๋ค์ด์ ธ ์ ๋ฌ๋๋ค. ๊ฐ์ข ์ฑ์์ ๋ฐ์ํ๋ ์ด๋ฒคํธ๋ฅผ ์บ์นํ ํ, ๋ฆฌ์๋ฒ๋ก ์ฒ๋ฆฌํ ์ ์๋๋ก ํด์ฃผ๊ณ , "๋ฐฉ์กํ๊ธฐ=>์์ ํ๊ธฐ"์ ์ฌ์ดํด๋ก ๋์๋๋ค. ์ ์ ๋ฆฌ์๋ฒ ํ ๋ฒ ๋ฑ๋ก๋๋ฉด ํด์ X ์ฑ ์ค์น์, ์๋ ๋ฑ๋ก ๋์ ๋ฆฌ์๋ฒ ๋ฑ๋ก, ํด์ง์ ์์ manifest์ ๋ฑ๋กํ์ง ์๊ณ , ์์ค์ ๋ฑ๋ก์ ํ๋ค ์ํ ๊ถํ ๋ง์๋ฉ๋ก ๋ฒ์ ๋ถํฐ๋ ๊ถํ์.. 2020. 2. 21. [๋ถ์คํธ์ฝ์ค] ์ธํ ํธ(intent)๋ฅผ ์ด์ฉํ ํ๋ฉด์ ํ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ฑ์์ 4๊ฐ์ง ์กํฐ๋นํฐ(Activity) ์๋น์ค ๋ธ๋ก๋์บ์คํธ ์์ ์ ๋ด์ฉ ์ ๊ณต์ ์กํฐ๋นํฐ(Activity) ์กํฐ๋นํฐ๋ ํ๋ฉด์ ํ์๋๋ UI๊ตฌ์ฑ์ ์ํด ๊ฐ์ฅ ๊ธฐ๋ณธ์ด ๋๋ ์์์ด๋ค. ํ๋ฉด์ UI๋ฅผ ํ์ํ๊ธฐ ์ํด ์ต์ ํ๋์ activity๋ฅผ ๊ฐ์ ธ์ผ ํ๋ค. ์กํฐ๋นํฐ๋ ์ฌ์ฉ์์์ ์ธํฐํ์ด์ค๋ฅผ ๋ง๋ค์ง๋ง ์์ฒด์ถ๋ ฅ๊ธฐ๋ฅ์ด ์๋ค. ์ฌ์ฉ์์๊ฒ ์ค์ ๋ก ๋ณด์ฌ์ง๋ ๋ถ๋ถ์ ๋ทฐ(view), ๋ทฐ๊ทธ๋ฃน(viewgroup)์ ํด๋นํ๋ค. ๊ทธ๋ฆฌ๊ณ , ์กํฐ๋นํฐ๊ฐ ์์ฑ๋ ๋๋ง๋ค ํธ์ถ๋๋ setContentView๋ฉ์๋๋ ์กํฐ๋นํฐ ์์ ๋ทฐ๋ฅผ ๋ฐฐ์นํ๋ ๋ช ๋ น์ด๋ค. ์๋ก์ด ์กํฐ๋นํฐ ์ถ๊ฐ app์ฐํด๋ฆญ -> new -> activity onCreate() : ์กํฐ๋นํฐ๋ฅผ ์์ฑ, ์กํฐ๋นํฐ์ ํ์ ๊ตฌ์ฑ ์์๋ฅผ ์ด๊ธฐํ, setContentView().. 2020. 2. 18. ์ด์ 1 2 3 ๋ค์ ๋ฐ์ํ