본문 바로가기

전체 글

(122)
SurfaceView 개념 anroid.View.view android.view.surfaceView 로 view를 상속받고있다 -그래픽 처리가 빠른 View -일반적인 경우에는 view를 통해서 draw()를 그리는것과 별 차이가 없다. 그럼 왜 필요하냐? 안드로이드의 모든 View의 모든행위들은 UI쓰레드에서 동작한다. 하지만, camerapreview나 동영상 재생같은 처리들은 1초에 몇십프레임을 출력해야하는 무거운 작업들이고, AndroidUI혼자 감당하기에는 자원이 부족하여 ANR을 발생하게된다. Surfaceview는 UI쓰레드와 별도로 백그라운드 쓰레드에서 동작하여 사용자가 원하는 뷰를 원할하게 업데이트를 해주고, 가속성이 좋다. - 일반 view는 ondraw()메소드를 시스템에서 자동으로 호출해줌으로써 화면을..
[디자인패턴] Composite pattern https://it-mesung.tistory.com/176 [디자인 패턴] 컴포지트 패턴 컴포지트 패턴을 통해 트리 구조를 구현할 수 있다. 컴포지트란 하나 이상의 유사한 객체를 구성으로 설계된 객체로 모두 유사한 기능을 나타낸다. 이를 통해 객체 그룹을 조작하는 것처럼 단일 it-mesung.tistory.com https://www.youtube.com/watch?time_continue=294&v=78uNgDSHw-k&feature=emb_title 컴포지트 패턴(Composite pattern)이란 객체들의 관계를 트리 구조로 구성하여 부분-전체 계층을 표현하는 패턴으로, 사용자가 단일 객체와 복합 객체 모두 동일하게 다루도록 한다. 컴포지트 패턴은 클라이언트가 복합 객체나 단일 객체를 동일하게..
[디자인패턴]Template Method Pattern https://www.inflearn.com/course/%EC%9E%90%EB%B0%94-%EB%94%94%EC%9E%90%EC%9D%B8-%ED%8C%A8%ED%84%B4/lecture/3175?tab=curriculum 자바 디자인 패턴의 이해 - Gof Design Pattern - 인프런 | 학습 페이지 지식을 나누면 반드시 나에게 돌아옵니다. 인프런을 통해 나의 지식에 가치를 부여하세요.... www.inflearn.com [탬플릿 메소드 패턴이란?] 공통적인 프로세스 묶어주기! 알고리즘 구조를 메소드에 정의하고 하위클래스에서 알고리즘 구조의 변경없이 알고리즘을 재정의하는 패턴 [특징] 구현하려는 알고리즘이 일정한 프로세스가있다. 구현하려는 알고리즘이 변경 가능성이 있다. [구현법/요구사항] ..
[디자인 패턴]AdapterPattern [어뎁터패턴개념 ] 어댑터 패턴(Adapter pattern)은 클래스의 인터페이스를 사용자가 기대하는 다른 인터페이스로 변환하는 패턴으로, 호환성이 없는 인터페이스 때문에 함께 동작할 수 없는 클래스들이 함께 작동하도록 해준다. https://www.inflearn.com/course/%EC%9E%90%EB%B0%94-%EB%94%94%EC%9E%90%EC%9D%B8-%ED%8C%A8%ED%84%B4 [무료] 자바 디자인 패턴의 이해 - Gof Design Pattern - 인프런 | 강의 자바 디자인 패턴 이해하기 강좌 입니다. 여러가지 디자인 패턴들을 알아보며 디자인 패턴에 대한 이해도를 높이도록 도와줍니다. Gof Design Pattern을 자바 언어로 설명한 강의. 의미 있고 쉬운 예 www...
[디자인패턴]StrategyPattern https://www.inflearn.com/course/%EC%9E%90%EB%B0%94-%EB%94%94%EC%9E%90%EC%9D%B8-%ED%8C%A8%ED%84%B4 [무료] 자바 디자인 패턴의 이해 - Gof Design Pattern - 인프런 | 강의 자바 디자인 패턴 이해하기 강좌 입니다. 여러가지 디자인 패턴들을 알아보며 디자인 패턴에 대한 이해도를 높이도록 도와줍니다. Gof Design Pattern을 자바 언어로 설명한 강의. 의미 있고 쉬운 예 www.inflearn.com [기본] 1.인터페이스 =>기능부와 구현부를 분리할수 있도록 제공 =>어떠한 기능을 호출할수 있도록 제공 2.델리게이트 =>특정객체에 기능을 사용하기 위해 다른객체의 기능을 호출하여 책임을 위임할수 있다. p..
Collector import java.util.*; import java.util.function.Supplier; import java.util.stream.Collector; import java.util.stream.Collectors; import java.util.stream.Stream; public class Example { public static void main(String[] args) { List totalList = Arrays.asList(new Student("홍길동", 10, Student.Sex.MALE), new Student("김수애", 6, Student.Sex.FEMALE), new Student("신용권", 10, Student.Sex.MALE), new Student("박수미"..
Optional 클래스 import java.util.ArrayList; import java.util.List; import java.util.OptionalDouble; public class Example { public static void main(String[] args) { List list = new ArrayList(); /*요소가 없기때문에에외 발생 NoSuchElementException: No value present double avg=list.stream() .mapToInt(Integer::intValue) .average() .getAsDouble(); */ //요소가 없을 경우에 예외를 피하는 3가지 방법 //1번째 Optional 객체를 얻어 isPresent()로 평균값여부확인 Optional..
안드로이드 Mainthread 와 subthread 하나의 쓰레드안에 하나의 메인 앱 패키지가 돌아가고있음 ( 메인쓰레드가 앱 패키지를 감싸고있다고 생각) 앱 패키지안(여러 클래스들이 있겠지)에서 유아이 업데이트 는 메인쓰레드에서 결국 호출하는것이므로 괜찮음 앱패키지에서 서비스는 백그라운드에서 돌고, 서비스에서 UI 업데이트가 필요할시에 서비스도 결국엔 메인에서 호출하는거니깐, 메인쓰레드를 이용하여 업데이트를 하고 있습니다.(핸들러가 딱히 불필요하다 이말임!) 근데 만약에 앱 패키지 안에 어떤 클래스의 콜백에서 UI를 업데이트 하려고한다? 답은 안됨. 콜백의 쓰레드는 sub 쓰레드로 메인쓰레드가 아니니깐 오류가 남, UI의 업데이트같은 경우에는 항상 메인쓰레드에서 호출되어야하며, sub 쓰레드에서 메인쓰레드에 전달하려면 핸들러를 이용해야함 또 뭔가 순서가..