전체 글 239

MVVM 을 왜 써야할까? MVP와 다른점이 뭘까

제목에 대한 의문을 잘 설명해둔 글이 읽어서 첨부한다. https://handnew04.github.io/posts/2020-11-24/ [Android] MVVM 예제도 다 1:1인데 MVP랑 차이가 뭘까? · Handnew's blog MVVM을 사용하는 이유? devHyeon님의 특강(?) 통해 알게된 MVVM을 사용하는 이유(MVP와 MVVM의 차이점)에 대한 정리. 직접 작성하신 샘플코드로 설명을 위해 만들어진 코드이기 때문에 실제로 사용한다 handnew04.github.io

Android 2021.09.16

안드로이드 - BottomSheet , BottomSheetBehavior

간혹 앱을 사용하다보면 위아래로 슬라이드 하면서 크기가 늘어났다가 줄어들었다가 하는 화면을 찾아 볼 수 있다. 이런 화면들 말이다. 밑의 레이아웃을 위로 당기면 높이가 늘어나고 내려도 다 사라지지는 않고 남아있는 형태의 sheet. 이런걸 만들고 싶었는데 어떻게 하면 좋을지 고민하다가 한번 만들어봤다. 언제나 그렇듯 코드로 알아보자. CoordinatorLayout 이라는게 눈에 띈다. CoordinatorLayout 은 FrameLayout 같이 좌표를 자유롭게 지정 가능하다. 한개의 parent 아래 포함된 여러개의 child view 를 behavior 라는 것을 이용해서 다양한 애니메이션 효과를 표현해 낼 수 있다. 라고 간단하게 설명가능하다 . 나처럼 바텀시트에 사용할 수도 있고 , 밑으로 스크..

Android/Android UI 2021.08.31

머신러닝 - 선형회귀를 뉴런으로 만들어보자.

앞서 선형회귀에 대해서 만들어봤는데 이걸 뉴런으로 한번 만들어서 써보자. class Neuron: def __init__(self): self.w = 1.0 # 가중치를 초기화합니다 self.b = 1.0 # 절편을 초기화합니다 def forpass(self, x): y_hat = x * self.w + self.b # 직선 방정식을 계산합니다 return y_hat def backprop(self, x, err): w_grad = x * err # 가중치에 대한 그래디언트를 계산합니다 b_grad = 1 * err # 절편에 대한 그래디언트를 계산합니다 return w_grad, b_grad def fit(self, x, y, epochs=100): for i in range(epochs): # 에포크..

AI 2021.08.29

머신러닝 - 선형회귀의 경사하강법 메모

학생 때 y = ax + b 라는 식을 자주 보곤 했다. 직선 그래프의 절편과 기울기로 x 값 y 값을 찾는 방식인데 선형회귀에도 비슷한 방식으로 사용된다 . 그러나 학생때는 x값 y값을 찾는것에 집중했다면 딥러닝에서는 데이터를 예측하기 위해서 가장 적합한 기울기와 절편을 찾는데 집중한다. 기울기를 선형회귀에서는 가중치(W) 라고 부르고 b 를 bias 라고 부른다. 그럼 한번 코드를 보면서 이해해보자. sklearn , 사이킷런이라고 부르는 파이썬으로 딥러닝을 공부할때 사용하기 유용한 데이터셋 라이브러리다. 여기서 내가 공부할때 참고한 당뇨병 환자 데이터를 가져와보겠다. from sklearn.datasets import load_diabetes diabetes = load_diabetes() prin..

AI 2021.08.29

1이 될때까지 최소 연산 횟수

n과 k 라는 자연수가 주어진다고 하면 아래 두가지 연산 중 하나씩 진행하여 n이 1이 되도록 하는데 연산 횟수를 최소화 하는 알고리즘을 작성하라. 1. n 에서 1을 빼기 2. n 에서 k를 나누기 이런 문제가 있다고 하자. 이 문제는 그리디 알고리즘의 유명한 문제다. 해설을 보기전 나의 경우는 n = 25 k = 5 count = 0 while 1 : if n%k ==0: n=n/k count+=1 else : count+=1 n= n-1 if n==1 : break print(count) 이런 식으로 풀었다. 이 방법도 틀린 방법은 아니지만 주어지는 숫자의 범위가 커지면 문제가 생길 수 있다. 그래서 사용하는 테크닉이 해설 코드에 있었다. n = 17 k = 4 count = 0 while 1 : ..

알고리즘 2021.08.21

Drawable Shape 코드로 색상 동적 변경

Drawable Shape를 배경 등.. 으로 사용할때 색상을 동적으로 변경하는 방법 입니다. TextView의 배경을 둥글게 하기 위해서 shape로 배경을 깔아주고 배경 색상은 아래와 같이 지정 해줍니다. GradientDrawable bgShape = (GradientDrawable) textView.getBackground(); bgShape.setColor(getResources().getColor(R.color.colorPrimary)); 코틀린에서는 var bgShape : GradientDrawable = get_auth_text_bt.background as GradientDrawable bgShape.setColor(resources.getColor(black)) 이렇게 사용합니다.

Android 2021.07.31