본문 바로가기
반응형

분류 전체보기89

안드로이드 앱 실행 시간(cold, hot, warm start) 안드로이드 애플리케이션은 결국, 사용자에게 빠르고 편리한 시스템을 제공하는데 목적을 둡니다. 편리한 시스템은 기획에서부터 UI/UX에 대한 고찰을 통해 이루어집니다. 물론 개발 단계에서도 추가적으로 지속적인 수정이 이루어져야 하지만요. 사실 이때까지 만들어온 애플리케이션은 볼륨이 크지 않아 충분히 실행 속도를 신경써야 할 정도로 느리지 않았습니다. 그저 스플래시 화면에서 대기하고 넘어가는 시간보다 훨씬 더 적은 시간동안 애플리케이션 로딩을 끝마쳤습니다. 그래서 오늘의 주제는 어떻게 더 효율적으로 애플리케이션의 속도를 올려서 쓸모 있는 애플리케이션을 만들까가 아니라 어느 정도의 속도를 보장해주어야 하는지, 그리고 cold start, hot start, warm start에 대한 정의 정도가 되겠습니다. .. 2021. 10. 20.
자바의 스트림에 대하여(2) - java 8 저번 글에서 자바의 스트림이 뭔지 간단하게 다뤘습니다. 사실 사용할 줄 아는 것과 쓰는 것, 그리고 그게 무엇인지 설명할 줄 아는 것은 명확하게 다르기 때문에 추가적으로 보완해야할 부분이 아직은 많다고 생각이 됩니다. 더욱이 잘 사용하지 못하면 안쓰는 것만 못할 것은 분명하니 아직 공부가 더 필요합니다! 그래서 이번 글은 스트림이 가지고 있는 각각의 연산들을 살펴보려고 합니다. 저번 글에서 설명했다시피 자바 8의 스트림은 스트림의 생산, 중간 연산, 그리고 결과값의 도출로 이루어져 있기 때문에, 그에 맞춰서 살펴보겠습니다. 최대한 있는대로 넣어보려는데 가능할지는 모르겠네요. 먼저 stream의 생성 과정부터 살펴보겠습니다. String 스트림 //배열 부분의 stream String[] list = ne.. 2021. 10. 5.
자바의 스트림에 대하여(1) - java 8 처음에는 자바의 스트림이 무엇을 말하는 지 모르는 채로 보게 되었습니다. 처음 스트림이라는 것들을 보기 시작한 곳은 프로그래머스라는 알고리즘 사이트였네요. 정답을 맞춘 후에 저와 다르게 깔끔한 답을 써놓은 사람들을 보며 새로운 지식을 습득하는 차에 스트림으로 작성된 코드를 볼 수 있었습니다. 스트림으로 작성된 코드는 확실히 기존 코드보다 짧게 짜여있었습니다.(코드 자체가 짧아지긴 했으나, 실제로 어느정도 속도나 리소스 면에서의 향상이 있는지는 잘 모르겠습니다.) 코드를 짧게 짠다는 것은 분명히 좋은 일이고(가독성이 좋다는 전제 하에) 스트림은 이를 꽤나 쉽게 만족시켜주는 코드이기 때문에 저도 한 번 스트림이라는 것에 대해 공부해보기로 했습니다. 그래서 스트림은 무엇인가? STREAM은 람다식과 함께 자바.. 2021. 9. 27.
코틀린 - apply, with, let, also, run(Scope Functions) 코틀린을 접하게 된 지 1년이 넘었네요. 처음 코틀린을 배우게 됐을 때 제일 당황했던 부분이 제목에 적어놓은 다섯가지였습니다. 저것들을 뭐라고 표현하는 지도 모르고, 어떨때 어떤 것을 사용해야 하는지도 모르는 채, 제가 받은 프로젝트를 분석하고 비스무리하게 사용하는데 초점을 둔 기억이 나네요. (사실 지금도 잘 모르겠습니다. 아무거나 돌려도 얼추 돌아가서...) 뭐, 시간이 지나고 여유가 생기니 이런 부분에 제 부족함이 느껴지기 시작했습니다. '이왕 사용할거라면 좀 더 알맞은 곳에 알맞은 함수를 사용해야 하지 않을까?' 하는 생각이 분명 들기 시작했다는 거죠. 너무 늦게 이런 생각을 한 게 아닌가 싶긴 합니다. 하여튼! 이러한 함수들을 범위지정함수라고 한답니다. 이러한 범위지정함수는 수신 객체와 수신 객.. 2021. 8. 24.
자바의 인터페이스란? 자바에서 인터페이스라는 친구는 대학교 2학년 자바 수업때 처음 들었습니다. 그때는 인터페이스는 불필요한 코드라는 생각도 어느정도 했었는데, 어느정도 시간이 지나고 자바와 코틀린을 사용해서 프로그래밍을 하다보니 인터페이스라는 친구가 계속해서 사용되더라구요. 그래서 시간이 날 때 한 번 정리를 해봐야겠다는 생각입니다. 먼저 인터페이스에는 세 가지 규칙이 존재합니다. 첫 번째로는 인터페이스 내부 메소드는 전부 public abstract로 선언되어야 한다는 점입니다. 물론 이는 생략하고 사용해도 자동으로 변경되어 문제가 발생하지는 않습니다. 두 번째로는 인터페이스 내부 변수들은 모두 public static final로 선언되어야 한다는 점으로, int number = 1;과 같이 사용해도 첫 번째처럼 자동으.. 2021. 8. 10.
(java) StringBuilder vs StringBuffer 자바를 이용해 코딩테스트를 하다보면 문자열을 다루는 경우가 종종 있습니다. 가끔 자주 변경되는 문자열을 String에 담다가 시간초과나 효율성 문제 때문에 StringBuilder로 변경하는 경우가 있는데요. 그래서 2개의 차이는 어느정도 파악하고 있습니다. 그러나 제가 지원했던 다른 회사의 면접 내용 중 하나였던 StringBuilder와 StringBuffer의 차이를 설명하지 못했었는데요. 사실 StringBuffer를 써본 적이 없어서 String과 StringBuilder를 설명하고 난 후, StringBuffer는 써본 적이 없어 모른다고 대답했었네요. 먼저 StringBuilder와 StringBuffer의 차이점을 찾기 전에 String에 대해서 짧게 설명하고 넘어가겠습니다. String은.. 2021. 8. 1.
728x90