👩🏻‍💻 Develop 108

[RxJava] #4 Operators(2) 변형연산자

2022.08.03 - [💻 프로그래밍] - [RxJava] #3 Operators(1) [RxJava] #3 Operators(1) 2022.08.01 - [💻 프로그래밍] - [RxJava] #1 [RxJava] #1 안녕하세요 오늘은 비동기 프로그래밍 중 하나인 RxJava에 대해 알아보겠습니다 API와 통신할 때만 사용했기에, 더 많은 기능을 알고자 정리해보겠 kong-droid.com 이전 포스팅에서는 Observable을 생성하는 Operator에 대해 알아봤습니다 오늘은 Observable을 변형하는 연산자에 대해 알아보겠습니다 🧐 예시 코드는 rxjava3:rxjava:3.0.7 기준입니다 변형 연산자 💡 map • 변형 연산자 중 가장 기본적이고 많이 쓰이는 연산자 val origin ..

[RxJava] #3 Operators(1) 생성연산자

2022.08.01 - [💻 프로그래밍] - [RxJava] #1 [RxJava] #1 안녕하세요 오늘은 비동기 프로그래밍 중 하나인 RxJava에 대해 알아보겠습니다 API와 통신할 때만 사용했기에, 더 많은 기능을 알고자 정리해보겠습니당 우선, 명령형 프로그래밍과 반응형 프로 kong-droid.com 위 글에서 Operator는 공식문서 참조로 끝났지만, Operator를 실습해야 RxJava를 편하게 쓸 수 있을 거 같아 포스팅을 쓰고자 합니다 🧐 생성 연산자 Observable 생성 시 자주 쓰이는 연산자들에 대해 알아보겠습니다 Just • 인자 그대로 발행(어떤 변화 없이 그대로 발행), 인자 여러 개 선언 시 타입은 같아야 함 (최대 10개) • onNext, onComplete, onErr..

[Android] Custom Spinner

안녕하세요 오늘은 spinner에 대해 사용해보겠습니다 보통, 문자 인증 시 통신사 선택할 때 자주 사용되는데 저는 DatePicker 대신 년도+월을 선택할 수 있는 Spinner를 만들고자 합니다 (화면에 날짜를 선택하는 영역을 최대한 줄이고 싶어서요) Spinner 드롭다운의 형태로 여러 개의 데이터 중 하나의 데이터를 선택할 수 있는 View입니다 자주 접하는 모양의 View일 거에요, 문자 인증 시 통신사를 선택하거나 이메일 주소를 선택할 때 등등 기본 형태는 위와 같지만, 저는 배경도 바꾸고 싶고 icon도 변경하고 싶어서 Custom을 하겠습니다 🚀 Spinner 사용하기 1. xml에 Spinner 선언 2. Activity or Fragment에 SpinnerAdapter 연결 Spinn..

📱 Android 2022.08.09

[Android] Custom Rating Bar

RatingBar SeekBar, ProgressBar의 확장으로 별점을 표시할 때 쓰이는 View입니다 터치 혹은 드래그로 별점을 정할 수 있습니다 아래사진처럼요! RatingBar의 자주 쓰이는 속성 android:isIndicator - RatingBar의 조절 여부 (true : 사용자가 조절 불가 , false: 사용자가 조절 가능) android:numStars - 별의 개수를 지정 (ex: android:numStars="5") - numStar 지정 시, RatingBar의 layout_width = "wrap_content"로 해야 지정한 개수가 제대로 보입니다 android:rating - 디폴트 별점 지정 (ex. android:rating="3") android:stepSize - ..

📱 Android 2022.08.04

[RxJava] #2 Subject

지난 포스팅에 이어서 RxJava의 Subject에 대해 알아보겠습니다 💡 Subject • 구독자, 생성자의 특징을 둘 다 가짐 (여러개의 Observable을 구독할 수 있고, 데이터를 방출할 수 있다) • Cold Observable을 Hot Observable로 변경 🔥 Hot Observable 데이터 구독 여부와 관계 없이 데이터를 배출 ❄️ Cold Observable 데이터를 구독을 시작해야 데이터가 배출 Subject의 종류 📍 AsyncSubject • 해당 Observable이 완료된 후 마지막 데이터만 발행합니다 • 에러가 발생한다면 어떠한 데이터도 발행하지 않고, 에러만 발행합니다 val subject: AsyncSubject = AsyncSubject.create() subjec..

[RxJava] #1

안녕하세요 오늘은 비동기 프로그래밍 중 하나인 RxJava에 대해 알아보겠습니다 API와 통신할 때만 사용했기에, 더 많은 기능을 알고자 정리해보겠습니당 우선, 명령형 프로그래밍과 반응형 프로그래밍에 대해 간략히 알아볼게요 RxJava는 반응형 프로그래밍을 따릅니다 📌 명령형 프로그래밍 - 선언된 명령어를 순차적으로 실행 📌 반응형 프로그래밍 - 데이터의 변화에 반응해 실행 (비동기 스트림으로 처리) 키워드에 포커스를 맞추고자 하다보니 문장이 좀 어색하네요 😅 RxJava Rx는 ObserverPattern을 따릅니다 아래의 포스팅을 확인해주세요 ✅ 2022.07.21 - [💻 프로그래밍] - [디자인 패턴] Observer Pattern(관찰자 패턴) [디자인 패턴] Observer Pattern(관찰..

[자료구조] 🚀 우선순위 큐 & 힙(Heap)

2022.07.26 - [👩🏻‍💻 Develop] - [자료구조] 🚀 이진트리(Binary Tree) [자료구조] 🚀 이진트리(Binary Tree) 2022.07.25 - [🧐 알고리즘] - [자료구조] 트리(Tree) [자료구조] 트리(Tree) 트리(Tree) 🌲 노드,간선으로 이루어진 비선형 자료 구조 💡 트리의 특징 • 부모노드, 자식노드와 같이 계층구조로 표현되 kong-droid.com ✍️ 우선순위 큐 (Priority Queue) Queue는 FIFO를 따르지만, 우선순위 큐는 FIFO를 따르지 않고, 우선순위가 높은 데이터를 먼저 출력합니다 Heap을 사용하여 처리합니다 (시간복잡도가 가장 짧습니다) ✍️ 힙 (Heap) - 완전 이진 트리를 기초로 하며, 최소 혹은 최대값을 빠르게 찾..

🧐 알고리즘 2022.07.27

[자료구조] 🚀 이진트리(Binary Tree)

2022.07.25 - [🧐 알고리즘] - [자료구조] 트리(Tree) [자료구조] 트리(Tree) 트리(Tree) 🌲 노드,간선으로 이루어진 비선형 자료 구조 💡 트리의 특징 • 부모노드, 자식노드와 같이 계층구조로 표현되는 비선형 자료구조 • 탐색에 주로 사용 • 루트노드를 제외한 모든 kong-droid.com 트리 자료구조에 이어 이진트리에 대해 알아보겠습니다 🚀 이진트리 (Binary Tree) 영어에서 유추해볼 수 있듯이 이진트리는 💡 모든 노드가 자식 노드를 최대 2개를 가질 수 있는 트리 특징 • n개의 노드는 n-1의 간선을 가짐 • 자식노드는 공백이 될 수도 있음 • 레벨(a)에서 가질 수 있는 최대 노드의 갯수는 2ª 종류 📌 전 이진 트리 (Full Binary Tree) - 각 레..

🧐 알고리즘 2022.07.26

[자료구조] 트리(Tree)

트리(Tree) 🌲 노드, 간선으로 이루어진 비선형 자료 구조 📎 트리의 용어 1. 노드(node): 트리를 구성하는 기본 원소 루트 노드 : 트리의 최상위 노드 자식 노드 : 어떤 노드 바로 밑에 연결된 노드 부모 노드 : 어떤 노드 바로 위에 연결된 노드 형제 노드 : 같은 부모 노드를 갖는 노드 리프 노드 : 루트 노드를 제외하고 자식이 없는 노드 (가장 마지막 노드들) 2. 높이 : 루트 노드에서부터 가장 깊은 노드까지의 길이 (루트노드에서부터 1로 시작) 3. 깊이(depth): 루트노드에서 어떤 노드까지 거쳐야 하는 간선의 수 4. 레벨 : 트리의 특정 깊이를 가지는 노드의 집합, 루트노드(level = 0) 5. 차수(degree) : 각 노드 별 자식 노드의 개수 6. 트리의 차수 : 트리..

🧐 알고리즘 2022.07.25

[디자인 패턴] Observer Pattern(관찰자 패턴)

Observer Pattern Observer Pattern은 쉽게 말하자면, 관찰자가 데이터를 관찰하다가 변경사항이 생기면 업데이트 되는 방식입니다 📌 Observer Pattern의 구성 발행자 (Subject) • 객체의 변화를 발생시키는 역할 관찰자 (observer) • 객체의 상태변화를 관찰하는 역할 • 상태가 변화되면 실행할 부분들을 구현합니다 • 발행자를 연결하고 나서부터 관찰이 가능하기 때문에, 발행자와 연결하는 과정인 '구독(Subscriber)'이 필요합니다 Observer의 구현 • 변화가 발생하면 각 옵저버(ConcreteObserverA, B)는 콜백(notify())을 받습니다 • 각 Observer는 notify함수를 구현해 이벤트 발생 시 처리할 동작을 정의합니다 • Sub..