fcm์ ์ฌ์ฉํ๋ ค๊ณ ์ฌ๋ฌ ์ธํ
์ ํ๋ ๋์ค์, ์๋ก์ด ํ ํฐ์ ๋ฐ๊ธ ๋ฐ์์ผ๋ ์ ํ ํฐ์ด ๋ถ๋ฌ์์ง์ง ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค. public class MyFirebaseMessagingService extends FirebaseMessagingService { String CHANNEL_ID; String CHANNEL_NAME; int userId; ChatApiService service; private static final String TAG = "FCM Service"; // ์๋น์ค๊ฐ ์์ฑ๋ ๋ ํธ์ถ๋๋ฉฐ, ์ฌ๊ธฐ์ FCM ํ ํฐ์ ์์ฒญํ๋ ๊ฒ์ด ์ข์ต๋๋ค. @Override public void onCreate() { super.onCreate(); userId = SharedPreferencesHelper..
์ ์ฒด ๊ธ
๐ฉ๐ป java, mysql, android, php, javascript๋ฅผ ๋ค๋ฃน๋๋ค๋ค์์ ๋ก๋ฒํธ C. ๋งํด Clean Code(ํด๋ฆฐ ์ฝ๋)๋ฅผ ์ฝ๊ณ , ์ ๋ฆฌํ ๋ด์ฉ์
๋๋ค. ์ ์ ํ ํ ๊ธธ์ด๋ฅผ ์ ์งํ๋ผ 500์ค์ ๋์ด๊ฐ์ง ์๊ณ ๋๋ถ๋ถ 200์ค ์ ๋์ธ ํ์ผ๋ก๋ ์ปค๋ค๋ ์์คํ
์ ๊ตฌ์ถํ ์ ์๋ค๋ ์ฌ์ค์ด๋ค. ๋ฐ๋์ ์งํฌ ์๊ฒฉํ ๊ท์น์ ์๋์ง๋ง, ๋ฐ๋์งํ ๊ท์น์ผ๋ก ์ผ์์ผ๋ฉด ์ข๊ฒ ๋ค. ์ผ๋ฐ์ ์ผ๋ก ํฐ ํ์ผ๋ณด๋ค ์์ ํ์ผ์ด ์ดํดํ๊ธฐ ์ฝ๋ค. ์์ง๊ฑฐ๋ฆฌ ์๋ก ๋ฐ์ ํ ๊ฐ๋
์ ์ธ๋ก๋ก ๊ฐ๊น์ด ๋ฌ์ผ ํ๋ค. ๋ฌผ๋ก ๋ ๊ฐ๋
์ด ์๋ก ๋ค๋ฅธ ํ์ผ์ ์ํ๋ค๋ฉด ๊ท์น์ด ํตํ์ง ์๋๋ค. ํ์ง๋ง, ํ๋นํ ๊ทผ๊ฑฐ๊ฐ ์๋ค๋ฉด, ์๋ก ๋ฐ์ ํ ๊ฐ๋
์ ํ ํ์ผ์ ์ํด์ผ ๋ง๋
ํ๋ค. ์ด๊ฒ ๋ฐ๋ก protected ๋ณ์๋ฅผ ํผํด์ผ ํ๋ ์ด์ ์ค ํ๋๋ค. (protected ๋ณ์ : ์์ ํด๋์ค๊ฐ ๋ถ๋ชจ ํด๋์ค์ ๋ฉค๋ฒ(๋ณ์๋ ๋ฉ์๋)์ ์ ๊ทผํ๊ฑฐ๋ ์์ ํด์ผ ํ ..
EXPRESSIONS SENTENCE DEFINITION make it up to So I thought of a few ways you guys can make it up to me. ๋ณด์ํด์ฃผ๋ค hard drugs
๋ค์์ ๋ก๋ฒํธ C. ๋งํด Clean Code(ํด๋ฆฐ ์ฝ๋)๋ฅผ ์ฝ๊ณ , ์ ๋ฆฌํ ๋ด์ฉ์
๋๋ค. ๋์ ์ฝ๋์ ์ฃผ์์ ๋ฌ์ง ๋ง๋ผ. ์๋ก ์ง๋ผ. - ๋ธ๋ผ์ด์ธ W.์ปค๋ํธ, P.J. ํ๋ผ์ฐ๊ฑฐ - ์ฃผ์์ ํ์์
์ฃผ์์ '์์ํ๊ฒ ์ ํ์ง' ๋ชปํ๋ค. ์ฌ์ค ์ ์ฃผ์์ ๊ธฐ๊ปํด์ผ ํ์์
์ด๋ค. ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์์ฒด๊ฐ ํํ๋ ฅ์ด ํ๋ถํ๋ค๋ฉด, ์๋ ์ฐ๋ฆฌ์๊ฒ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์น๋ฐํ๊ฒ ์ฌ์ฉํด ์๋๋ฅผ ํํํ ๋ฅ๋ ฅ์ด ์๋ค๋ฉด, ์ฃผ์์ ๊ฑฐ์ ํ์ํ์ง ์์ผ๋ฆฌ๋ผ. ์๋, ์ ํ ํ์ํ์ง ์์ผ๋ฆฌ๋ผ. ์ฐ๋ฆฌ๋ ์ฝ๋๋ก ์๋๋ฅผ ํํํ์ง ๋ชปํด, ๊ทธ๋ฌ๋๊น ์คํจ๋ฅผ ๋งํํ๊ธฐ ์ํด ์ฃผ์์ ์ฌ์ฉํ๋ค. ์ฌ๊ธฐ์ ๋ด๊ฐ ์คํจ๋ผ๋ ๋จ์ด๋ฅผ ์ผ๋ค๋ ์ฌ์ค์ ์ฃผ๋ชฉํ๋ค. ์ง์ฌ์ด๋ค. ์ฃผ์์ ์ธ์ ๋ ์คํจ๋ฅผ ์๋ฏธํ๋ค. ๋๋๋ก ์ฃผ์ ์์ด๋ ์์ ์ ํํํ ๋ฐฉ๋ฒ์ ์ฐพ๊ธฐ ๋ชปํด ํ ์ ์์ด ์ฃผ์์ ์ฌ์ฉํ..
๋ค์์ ๋ก๋ฒํธ C. ๋งํด Clean Code(ํด๋ฆฐ ์ฝ๋)๋ฅผ ์ฝ๊ณ , ์ ๋ฆฌํ ๋ด์ฉ์
๋๋ค. ์๊ฒ ๋ง๋ค์ด๋ผ! ํจ์๋ฅผ ๋ง๋๋ ์ฒซ์งธ ๊ท์น์ '์๊ฒ!'๋ค. ํจ์๋ฅผ ๋ง๋๋ ๋์งธ ๊ท์น์ '๋ ์๊ฒ!'๋ค. public static String renderPageWithSetupsAndTeardowns( pageData pageData, boolean isSuite) throws Exception{ if(isTestPage(pageData)) includeSetupTeardownPages(pageData, isSuite); return pageData.getHtml(); } ๋ธ๋ก๊ณผ ๋ค์ฌ์ฐ๊ธฐ ๋ค์๋งํด, if ๋ฌธ/else๋ฌธ/while ๋ฌธ ๋ฑ์ ๋ค์ด๊ฐ๋ ๋ธ๋ก์ ํ ์ค์ด์ด์ผ ํ๋ค๋ ์๋ฏธ๋ค. ํ ๊ฐ์ง๋ง ํด๋ผ! ํจ์๋ ํ ๊ฐ์ง๋ฅผ ํด์ผ..
๋ค์์ ๋ก๋ฒํธ C. ๋งํด Clean Code(ํด๋ฆฐ ์ฝ๋)๋ฅผ ์ฝ๊ณ , ์ ๋ฆฌํ ๋ด์ฉ์
๋๋ค. ์๋๋ฅผ ๋ถ๋ช
ํ ๋ฐํ๋ผ "์๋๊ฐ ๋ถ๋ช
ํ๊ฒ ์ด๋ฆ์ ์ง์ผ๋ผ"๋ผ๊ณ ๋งํ๊ธฐ๋ ์ฝ๋ค. ์ฌ๊ธฐ์๋ ์๋๊ฐ ๋ถ๋ช
ํ ์ด๋ฆ์ด ์ ๋ง๋ก ์ค์ํ๋ค๋ ์ฌ์ค์ ๊ฑฐ๋ญ ๊ฐ์กฐํ๋ค. ์ข์ ์ด๋ฆ์ ์ง์ผ๋ ค๋ฉด, ์๊ฐ์ด ๊ฑธ๋ฆฌ์ง๋ง ์ข์ ์ด๋ฆ์ผ๋ก ์ ์ฝํ๋ ์๊ฐ์ด ํจ์ฌ ๋ ๋ง๋ค. public List getThem(){ List list1 = new ArrayList(); for(int[] x : theList) if(x[0] == 4) list1.add(x); return list1; } ๋ค์ ์ฝ๋๋ ๋ฌด์์ ํ ๊น? (theList์ ์ ์ฅ๋ ๋ฐฐ์ด๋ค ์ค์์ ์ฒซ ๋ฒ์งธ ์์๊ฐ 4์ธ ๋ฐฐ์ด๋ค์ ์ถ์ถํ์ฌ ๋ฆฌ์คํธ๋ก ๋ฐํํ๋ ๋ฉ์๋) ๋ค์์ theList๋ฅผ ์ถ๋ก ํ ํํ์ด๋ค. the..
๋ค์์ ๋ก๋ฒํธ C. ๋งํด Clean Code(ํด๋ฆฐ ์ฝ๋)๋ฅผ ์ฝ๊ณ , ์ ๋ฆฌํ ๋ด์ฉ์
๋๋ค. ์์ด์ ๋์ ํ๋ก๊ทธ๋๋จธ๋ ๊ทผ๋ณธ์ ์ธ ๊ฐ์น์์ ๋์ ์ ๋ด์ฐฉํ๋ค. ํ ๋ํด ์ด์ ์ฐ๋ฆฌ ๋ถ์ผ์ ๋ชธ๋ด์ ํ๋ก๊ทธ๋๋จธ๋ผ๋ฉด ๋๊ตฌ๋ ๋์ ์ฝ๋๊ฐ ์
๋ฌด ์๋๋ฅผ ๋ฆ์ถ๋ค๋ ์ฌ์ค์ ์ตํ์๋ค. ๊ทธ๋ผ์๋ ๋ชจ๋ ํ๋ก๊ทธ๋๋จธ๊ฐ ๊ธฐํ์ ๋ง์ถ๋ ค๋ฉด ๋์ ์ฝ๋๋ฅผ ์์ฐํ ์๋ฐ์ ์๋ค๊ณ ๋๋๋ค. ์ง์ง ์ ๋ฌธ๊ฐ๋ ๋๋ฒ์งธ ๋ถ๋ถ์ด ํ๋ ธ๋ค๋ ์ฌ์ค์ ์ ์๋ค. ๋์ ์ฝ๋๋ฅผ ์์ฐํ๋ฉด ๊ธฐํ์ ๋ง์ถ์ง ๋ชปํ๋ค. ์คํ๋ ค ์๋ง์ง์ฐฝ์ธ ์ํ๋ก ์ธํด ์๋๊ฐ ๊ณง๋ฐ๋ก ๋ฆ์ด์ง๊ณ , ๊ฒฐ๊ตญ ๊ธฐํ์ ๋์น๋ค. ๊ธฐํ์ ๋ง์ถ๋ ์ ์ผํ ๋ฐฉ๋ฒ์, ๊ทธ๋ฌ๋๊น ๋นจ๋ฆฌ ๊ฐ๋ ์ ์ผํ ๋ฐฉ๋ฒ์, ์ธ์ ๋ ์ฝ๋๋ฅผ ์ต๋ํ ๊นจ๋ํ๊ฒ ์ ์งํ๋ ์ต๊ด์ด๋ค. ๊นจ๋ํ ์ฝ๋๋ ํ ๊ฐ์ง๋ฅผ ์ ๋๋ก ํ๋ค ๋ง์ง๋ง์ผ๋ก ๋น์ผ๋ค๋ ๊นจ๋ํ ์ฝ๋๋ ํ๊ฐ์ง๋ฅผ..
์ฌ๋๋์ฒ๋ผ ์ฝ๋๋ฅผ ์ฐ๋ค๊ฐ ์ฝ๋๊ฐ ๋๋ฌด ๊ธธ์ด์ง๋ค๋ ์๊ฐ์ด ๋ค์์ต๋๋ค. '์ฝ๋๋ฅผ ์ ๋ฆฌํด์ผ ํ์ง ์์๊น?' ๋ณต์กํ๊ฒ, ์ค๋ณต๋๊ฒ ์ง ์ฝ๋๋ output์ ๋ด๋ ๊ฒ์ ๋๋๊ฒ ๋ง๋ค๊ณ ์์์ต๋๋ค. ์ด์ ๋ํ ๊ฐ์ ์ผ๋ก, 'clean code' ์ฑ
์ ์ฝ๊ณ ์ ์ตํ ๊ตฌ์ ์ ํ์ฌ๋ก ๋จ๊ธฐ๋ ค๊ณ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ต๋ํ ํ๋ก์ ํธ ๋ด์์ ์ด๋ฅผ ์ ์ฉํด๋ณด๋ ค๊ณ ํฉ๋๋ค. ์ฑ
์ด ๋๊ป๊ณ , ์ฝ๋ ์๋๊ฐ ๋น ๋ฅด์ง ์๊ธฐ์ ์๊ฐ์ด ์ข ๊ฑธ๋ฆด ์ ์์ต๋๋ค. ํ์ง๋ง, ํ์ฌ์ํฉ์์ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋๋ผ๋ ๊น๋ํ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ์ ์ฅ๊ธฐ์ ์ผ๋ก ํฐ ๋์์ด ๋ ๊ฒ ์
๋๋ค. ์ฝ๋์ ์ ์งํ๊ณ , ์ฝ๋์ ์ํ์ ๊ดํ์ฌ ๋๋ฃ๋ค์๊ฒ ์ ์งํ๊ณ , ๋ฌด์๋ณด๋ค๋, ์๊ธฐ ์ฝ๋์ ๋ํด์ ์์ ์๊ฒ ์ ์งํ๋ผ๋ ๋ป์ด๋ค.