본문 바로가기

전체 글

디자인패턴의 전반 mvc,mvp,mvvm을 알아보자 이번글에서는 디자인패턴은 무엇인가 또한 디자인패턴중 많이 쓰이는 mvc mvp mvvm패턴에 대해서 개념적으로 알아보고 갈것이다. 1.디자인패턴은 뭔가? 왜쓰는데 디자인패턴이란 한마디로 패턴이다. 기존에 앱을 만들면서 여러가지 공법들을 적용해서 문제를 해결해 나갔을것이다. 이렇게 기존에 많은 개발자들이 쌓아놓은 경험을 통해서 쌓인 정리되어있는 패턴으로 만들면 일정한 규칙에 의해서 문제를 해결해 나가기에 코드의 가독성도 좋아지고 일정한 패턴으로 짜여져있어 테스트도 쉬워지고 타인의 코드를 봐도 이해하는데 쉬울것이다.(스파게티 코드는 내가 짜도 짜놓고 시간지나면 내가한것도 구분못하는상황이오니) 또한 유지보수하는데 굉장히 유용하게된다. 디자인 패턴은 소프트웨어의 개발 방법을 문서로 공식화한 것입니다(솔루션이 이.. 더보기
data binding 과 live data 동시 적용해보자 이제 전에 포스팅한 두개 DataBinding과 LiveData를 동시에 사용해 볼것이다. (다음번엔 ViewModel도.....) LiveData와 DataBinding을 동시에 같이 사용한다면 LiveData의 값이 변경될때 View의 Data가 자동으로 바뀌어 UI가 저절로 바뀌기 때문에 우리는 Data의 관리만 신경쓰면되기에 아주 편해진다. 자 우선 기존의 방법과 같이 Databinding 과 Livedata를 사용했던대로 적용해보자 databinding부터 해보면 1. App 수준의 build.gradle 수정 android { ... dataBinding { enabled = true } } 이제 이건 슉슉하자 implementation 'androidx.appcompat:appcompat:1.. 더보기
LiveData 찍먹 해보자 하... 데이터 바인딩 좀 활용해보려니 live data도 짝꿍이래 view모델도 짝꿍이라 같이 써야한다고 한다. 예제는 mvvm까지 설명해 이래선 알아들을수가 없다 망할... 그니까 그냥 간단하게 databinding이랑만 같이 일단 써보려한다. 그래도 가장 기본적인 개념과 같이 쓰이지않고 분리시켜서 쓸때 어떻게 사용하는지 알아야하니까 그에 대해서 정리해보고 넘어가려한다. (이쪽은 내부적인거 어떻게 돌아가나 알아보려면 끝이없다 조금씩 정복해나가자) 1. LiveData란? LiveData는 Data의 변경을 관찰 할 수 있는 Data Holder 클래스 입니다. 일반적인 Observable과는 다르게 LiveData는 안드로이드 생명주기(LifeCycle)를 알고 있습니다. (Lifecycle-Awar.. 더보기
솝탁 1주차 정리 (수정필요) 파이썬의 특징 : 코드가 간결해서 짧게 짤수있지만 메모리를 많이 잡아먹고 실행시간도 긴편이다. 파이썬은 인터프리터 언어이다. -> 컴파일 과정에서 기계어로된 목적파일이 있는게아닌 컴파일러를 거쳐도 바이트코드로 한줄한줄 실행되기에 10번째 줄에 오류가 있다고하면 9번째 줄까지는 실행된다. 그래서 코드수정시 맛탱이 간부분만 쉽게 들어내서 수정이 가능하다. 이러한 언어적 특징으로 동적언어이다 컴파일과정에 미리 자료형을 결정해놓는게 아닌 동적으로 바로바로 실행되는 순간순간(런타임)에 자료형이 결정된다. 파이썬의 변수 할당방식 -깊은복사와 얕은복사 얕은 복사: 값을 복사하는것 깊은 복사: 주소값을 복사시켜버림 immutable(불변형 숫자,문자열, 튜플) immutable은 상식적으로 얕은 복사로 굴러간다. mu.. 더보기
1주차 과제중 배운것들 level1 1. Editable edittext 를 코드단에서 텍스트를 넣어주기위해 이런식으로 텍스트에 직접 문자열을 넣어줬는데 자료형이 안맞아서 적용할수가 없었다. edittext의 텍스트는 Editable TYPE이였는데 Editable라는 인터페이스를 구현한 객체이므로 Editable 안에 정의된 clear() append()같은 메서드를 사용해서 조작할수있었다. Editable의 메서드들은 다음과같다 이런 메서드를 통해서 text속성을 조작할수있었다. 2.finish 기존에 맨날 페이지를 이동할때 startActivity를 통해서만 움직였고 뭔가 이상했다. 스택에 쌓여있는 거쳐왔던 화면으로 돌아갈때는 back 버튼을 물리적으로 눌러서 돌아갔는데 이렇게 기존 스택에 최상단에있는 화면에서 스택에 쌓.. 더보기
Kotlin Android Extensions,Viewbinding,databinding 기존에 안드로이드를 처음 배웠을때 공부했었던 프로젝트들을 복습하려고 열어본결과 이렇게 Kotlin Android Extensions이 deprecated 되었다며 대체 할거로 viewbinding이나 databinding을 이용하라고 한다. 그래서 Kotlin Android Extensions은 왜 팽당했는가, Viewbinding,databinding 은 무엇이며 어떻게 사용해야 하는가를 알아 보려한다. 우선 이것들이 뭣 때문에 하는지 알아보자 xml 파일의 뷰들을 java파일에서 이벤트 처리를 위해 사용하려면 메모리에 올라와있어야 하는데 그래서 액티비티의 onCreate() 에서 setContentView()를 통해 인플레이션을 한다. 인플레이션이란 xml 레이아웃 파일 안에 들어있는 뷰 태그들을 이.. 더보기
나중에 다시볼 알고리즘 백준 11653 소인수분해 간단한 소인수 분해이지만 나에게는 익숙지 않아서 나중에 보려고 적어놓는다. 문제:https://www.acmicpc.net/problem/11653 11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net 소인수 분해에 대해서 쭉 생각해봤는데 소수를 쭉 구해놓고 그것들을 나눠지는 순서대로 대입해서 구하는 방법을 생각해봤는데 소수들이 무한이 많아 아주 크기가 큰 소수가 들어있는 테스트 케이스를 성공 못할거라 생각해서 한번더 생각해본결과 2부터 나누기 시작해서 안될경우 1씩 증가하면서 나누고 조건이 나누려는수가 1이 아니면 멈추는 방법을 택하면 4나 이런 소수가 아닌것들로 나눠지는것은 어짜피 앞전에서 2나 작은 소수로 나눠지는 경우의 수로 걸.. 더보기