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..
코딩
다음은 로버트 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' 책을 읽고 유익한 구절을 필사로 남기려고 합니다. 그리고 최대한 프로젝트 내에서 이를 적용해보려고 합니다. 책이 두껍고, 읽는 속도가 빠르지 않기에 시간이 좀 걸릴 수 있습니다. 하지만, 현재상황에서 시간이 걸리더라도 깔끔한 코드를 작성하는 것은 장기적으로 큰 도움이 될 것 입니다. 코드에 정직하고, 코드의 상태에 관하여 동료들에게 정직하고, 무엇보다도, 자기 코드에 대해서 자신에게 정직하라는 뜻이다.