코루틴의 특징은 흐름을 중간에 지연시켰다가(suspend) 다시 재시작하는(resume) 것이 가능합니다.따라서 코루틴을 사용하면 루틴이 실행 되었더라도 더 바쁜 다른 루틴이 실행되는동안 잠시 멈췄다가, 바쁜게 끝나면 재시작하여 나머지 작업을 끝내는 형태의 비동기 프로
관찰 가능한 스트림(Observable streams)을 사용하는 비동기 프로그래밍 API이다. Publisher(데이터를 만들어 통지하는 생산자)와 Subscriber로 구성되어있으며, Subscriber가 Publisher를 구독하면 Publisher가 통보하는
아키텍처란?단어 그대로의 뜻은 건축, 설계라는 뜻입니다. 컴퓨터와 관련해 해석하자면 시스템 하드웨어 구조와, 컴퓨터 구성 요소들에 대한 전반적인 기계적 구조를 설계하는 방법이라 할 수 있습니다.소프트웨어 아키텍처란?소프트웨어의 구성 요소들 사이에서 유기적 관계를 표현하
질서정연하고 깔끔하며, 일관적인 코드를 본다면 사람들에게 전문가가 짰다는 인상을 심어줄 수 있다.반대로, 코드가 어수선해 보인다면 프로젝트 전반적으로 무성의한 태도로 작성했다고 생각할 것이다.프로그래머라면 형식을 깔끔하게 맞춰 코드를 짜야한다.코드 형식을 맞추기 위한
나쁜 코드에 주석을 달지 마라. 새로 짜라. \-브라이언 W.커니핸, P.J.플라우거주석은 필요악이다. 코드로 의도를 표현하지 못해, 실패를 만회하기 위해 쓰는 것이다. 주석은 언제나 실패를 의미한다. 주석 없이는 자신을 표현할 방법을 찾지 못해 할 수 없이 주석을
현재 Activity 종료, startActivityForResult()로 호출했다면 ActivityResult 전달현재 스택에 있는 모든 Activity 종료 앱 종료시 Root Activity에서 finish()를 사용해서 종료해야 하지만, 이 함수를 사용하면 어느
프로그램 기본 단위너무 긴 코드, 중복된 코드, 괴상한 문자열, 낯설고 모호한 자료 유형, 다양한 추상화 수준의 코드로 이루어진 함수는 이해하기 어렵다. 읽기 쉽고 이해하기 쉬운 함수는 어떻게 작성해야하는가?되도록 한 함수당 3~5줄 이내를 권장한다if/else, wh
초기화 하지 않은 property에 접근해서 생긴 익셉션이 발생.해결 방법을 생각하다 초기화지연을하는 두가지 방법들의 특징에대해 정리해보려 한다. 일반적으로 property를 non-null type으로 선언하기 위해선 생성자에서 초기화를 해야한다.하지만 생성자에서 초
이름을 잘 짓는 간단한 규칙 몇가지.의도를 분명히 밝혀라변수의 존재 이유, 기능, 사용법 등이 따로 주석이 필요하지 않을 정도로 변수/함수/클래스명에 드러나야 한다.나쁜 예) int d; // 경과 시간(단위: 날짜)의도가 드러나는 이름을 사용하면 코드 이해와 변경이
SOLID원칙을 지키면, 직관적이면서 유지보수가 쉬워진다. 1. 단일 책임 원칙 (SRP, Single Responsibility Principle) 하나의 모듈, 클래스,함수 는 하나의 파트에대해서만 책임을 가진다. "어떤 클래스를 변경해야 하는 이유는 오직 하나
기계가 실행할 정도로 상세하게 요구사항을 명시하는작업이 프로그래밍이다.제대로 명시한 요구사항은 코드만큼 정형적이며, 테스트케이스로 사용해도 좋다. 코드는 요구사항을 표현하는 언어이다.왜 나쁜코드를 짰는가?급해서제대로 짤 시간이 없다생각해서코드를 다듬을 시간이 없어서빨리
delete those generated files: .idea/gradle.xml .idea/workspace.xmlthen clicking try again to sync the project.
블로그를 시작하는 이유는이것저것 필요한대로 자료만 보고 끝내던 공부를정리해가면 완전히 내것으로 만들겠다는 목표.그리고 점점 느끼는 기억력의 한계가장 중요한 지저분한 북마크 정리...구글링 -> 괜찮은자료가 있으면 일단 북마크였는데....북마크하고 다시 정리하는 작업까지