개발(37)
-
[디자인패턴]MVC, MVP, MVVM 비교
MVC, MVP, MVVM등 다양한 디자인 패턴을 적용하는 이유는 각각의 역할을 나눠 코드를 관리하자 라는 목적으로 생겨났다. 1. MVC MVC패턴은 Model+View+Controller를 합친 용어이다. MVC패턴의 구조, 동작, 특징, 장점, 단점으로는.. 1) 구조 - Model: Controller에서 요청받은 데이터 관련 작업들을 처리하는 부분 - View : 어플리케이션에서 사용자가 눈으로 보는 부분, 모델에서의 데이터를 뷰에서 나타냄 - Controller : 사용자의 입력을 받고 처리하는 부분 2) 동작 MVC 패턴의 동작 순서 1. 사용자의 Action은 Controller로 들어온다. 2. Controller는 사용자의 Action을 확인하고 Model에 데이터를 요청한다. 3. V..
2021.11.17 -
[DialogFragment, Dialog] 안드로이드 DialogFragment 크기 조정하기, 테두리 둥글게 조절하기
원하는 크기로 띄우고 싶은데 자꾸 에러가 나는 상황 때문에 삽질 기록을 작성합니다.. 가끔 Dialog나 DialogFragment를 사용해 Dialog를 띄울 때 내가 원하는 크기로 띄워지지 않는다. 지금까지 그냥 어느정도 dp로 해결을 했었지만 더 자세하게 띄우기 위해 알아보았다. - 결과물 : 비율로 Dialog 띄우기 ! 1. FragmeLayout을 사용해 DP값으로 띄우는 방법 그냥 말그대로 width와 height의 크기를 dp로 지정해주고 FragmeLayout을 띄우면 된다. 하지만 각 기기별 dpi도 다다르고 내가 원하는 방법과 맞지 않았다. 2. OnStart에서 window값을 dp값으로 지정하는 방법 override fun onStart() { super.onStart() dial..
2021.10.29 -
[Android] Fragment에서 Activity의 resource에 resource까지 접근하기
안녕하세요. 개발하면서 조금 삽질 한 부분을 기록합니다. 상황 SingleActivity 패턴으로 Android 개발을 하면서 MainActivity에 Toolbar를 넣고 Fragment를 붙였다. 그리고 디자인팀이 만든 로고를 툴바에 박았다. MainFragment에서는 이 Logo를 사용하지만 다른 Fragment에서는 그냥 String 값이 들어가야했다. 그래서 또 다른 Fragment에서는 이 ImageView를 감춰줘야하는데 아무리 접근 해보려고 해도 Crash,,, 뭐가 문제일지 봤더니.. Fragment에서 Activity의 Component에 접근할 때 activity를 불러오고 toolbar를 부르고 그 안의 자식인 ImageView를 불렀어야 했다. 코드로는.. val toolbar ..
2021.05.25 -
[Kotlin] Programmers 신규 아이디 추천 - Level 1
문제 https://programmers.co.kr/learn/courses/30/lessons/72410 풀이 fun solution(new_id: String): String { var answer: String = "" answer = step1(new_id) answer = step2(answer) answer = step3(answer) answer = step4(answer) answer = step5(answer) answer = step6(answer) answer = step7(answer) println(answer) return answer } // 대문자를 소문자로 fun step1(new_id: String): String { return new_id.toLowerCase() } ..
2021.05.21 -
[Kotlin] Programmers 음양 더하기 - Level 1
문제 https://programmers.co.kr/learn/courses/30/lessons/76501 풀이 fun solution(absolutes: IntArray, signs: BooleanArray): Int { var answer: Int = 0 for(i in signs.indices) { // 배열크기를 구하고 양수이면 그냥 더하기 음수이면 -1곱하고 더하기 answer += when(signs[i]) { true -> { absolutes[i] } false -> { (absolutes[i] * -1) } } } return answer }
2021.05.21 -
[Kotlin] Programmers 로또의 최고 순위와 최저 순위 -Level1
문제 원본 : https://programmers.co.kr/learn/courses/30/lessons/77484# 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 풀이 fun solution(lottos: IntArray, win_nums: IntArray): IntArray { var sum = 0; // 0을 제외하고 당첨 번호가 몇개 있는지 var zero = 0; // 0이 몇개 있는지 for( i in lottos.indices) { if(lottos..
2021.05.21 -
[안드로이드 ROOM] MVVM패턴으로 배우는 ROOM DB(ViewModel, Repository, Koin, Coroutine)
안녕하세요. 양드로이드입니다. MVVM패턴을 적용한 Room DB 사용법에 대해 알아보겠습니다. 이 예제는 구글 코드랩에 기재된 예제입니다. developer.android.com/codelabs/android-room-with-a-view-kotlin?hl=ko#0 Android Room with a View - Kotlin | Android 개발자 | Android Developers In this codelab you’ll build an Android app in Kotlin that uses Android Architecture Components (RoomDatabase, Entity, DAO, AndroidViewModel, LiveData) together with Kotlin corout..
2021.05.11 -
[Spring Boot] 웹 서버 어노테이션 정리 @RequestBody @ResponseBody란?
스프링 부트 공부를 하면서 확실하게 알아야하는 어노테이션들을 공부해서 정리한다. @Controller 이 클래스가 Controller라는 것임을 명시해준다. @RestController 이 클래스의 모든 메소드들이 @ResponseBody 어노테이션을 가지게된다. @ResponseBody 데이터를 반환할 때의 값을 Body에다가 넣어서 Json으로 반환한다 -> 자바객체를 http응답 body로 전송한다 @RequestBody Request에 Body에 Json이나 xml로 전송하여 매핑할 때(전송 된 것을 받을 때) 사용하는 어노테이션 @RequestParam http://localhost:8080/info?name=철수&age=17&sex=male 과 같은 uri로 rest api통신을 할 때, @R..
2021.03.30 -
[안드로이드] BroadcastReceiver 간단하게, 제대로 알자! with Kotlin
안녕하세요. 회사에서 앱을 만들다가 자정이 되면 해야할 이벤트가 있어서 어떻게 구현해야 할까 하다가 BroadcastReceiver에 대해 공부한 후에 정리합니다. BroadcastReceiver란? 안드로이드에서 전화가 오거나, 문자가 오거나 그런 상황들을 캐치해서 방송을 해주는 아주 중요한 안드로이드 4대 컴포넌트 중 하나이다. 종류는? developer.android.com/reference/android/content/Intent#ACTION_DATE_CHANGED Intent | Android 개발자 | Android Developers developer.android.com 진짜 너무너무 많으니 필요할 때 찾아쓰는걸로 ..ㅎㅎ 구현은? 안드로이드 8.0부터는 정적 리시버를 사용할 수 없게 되었..
2021.03.22 -
[안드로이드] Retrofit2를 사용한 GET/POST 서버통신 with Kotlin
Retrofit 2란? Retrofit은 Square에서 만든 라이브러리입니다. Android에서 HTTP API통신을 원할하고 편하게 사용하게 해줍니다. Github : github.com/square/retrofit square/retrofit A type-safe HTTP client for Android and the JVM. Contribute to square/retrofit development by creating an account on GitHub. github.com Retrofit 사용하기 위한 Android 권한 설정 build.gradle (APP 수준) // Retrofit implementation 'com.squareup.retrofit2:retrofit:2.9.0' imp..
2021.03.22