- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 진짜일본어
- errorhandling
- pullrequest
- KotlinInAction
- 일본어기초
- webflux
- 책추천
- ai
- blog
- Kotlin
- PR
- withContext
- rxjava
- 책리뷰
- 학습지
- GIT
- coroutine
- CustomTab
- 진짜학습지후기
- 안드로이드
- suspend
- androidstudio
- 일본어문법
- 코틀린
- posting
- 진짜학습지
- github
- n3문법
- jlpt
- Android
목록2023/01 (11)
코딩하는 개굴이
여러 사람들과 동일한 프로젝트로 협업을 진행하다보면, 어떤 사람들은 엔터를 어디에 치고 줄바꿈은 어떻게 하는지 이런 사소한 것들부터 전반적인 구현 방식이 달라지는 경우가 종종 생긴다. 이를 통일성 있게 만들고 가독성과 유지보수성을 높이기 위해서 팀에서 문서를 공유하거나, PR 등의 커뮤니케이션으로 개발자들이 직접 확인하기도 하지만, 하나하나 세세히 확인하기란 불가능에 가깝다. 이런 경우, 특정 언어 혹은 가이드의 컨벤션을 따를 수 있도록 하고 구조적인 문제가 없는지 검사해주는 Lint 도구를 사용할 수 있다. 그 중에서도 KtLint 라는 것을 Android 프로젝트에 적용하는 방법에 대해 이번 포스팅에서 정리해보고자 한다. KtLint란? KtLint 는 Kotlin 언어의 공식 컨벤션을 준수하여 코드..
JAXB JAXB 는 (Java Architecture for XML Binding) Java Object 를 XML 로 직렬화하고, XML 을 JAVA Object 로 역직렬화 해주는 JAVA API 로, JDK6~9 은 내장되어있으므로 라이브러리를 추가할 필요가 없다. marshalling: JAXB 에서 JAVA 객체를 XML 로 변환하는 작업을 말하며, JAXB 는 이를 위해 Marshall 클래스를 제공한다. 일반적인 JAVA 코드 하에서는 아래와 같이 사용할 수 있는데, try { JAXBContext context = JAXBContext.newInstance(Books.class); Marshaller marshaller = context.createMarshaller(); marshall..
광고가 게시된 블로그에서 Programmers 의 풀이는 저작권 문제로 게시할 수 없음에 따라, 일괄 비공개 처리합니다. 차후, 코딩 테스트 관련 Git 공유 등의 별도 포스팅이 있을 예정입니다. 저작권 관련 내용은 아래 공지를 참고 부탁드립니다. ( _ _ ) https://programmers.zendesk.com/hc/ko/articles/360034546572-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4%EC%9D%98-%EB%AC%B8%EC%A0%9C%EB%A5%BC-%EC%99%B8%EB%B6%80%EC%97%90-%EA%B2%8C%EC%8B%9C%ED%95%A0-%EC%88%98-%EC%9E%88%EB%82%98%EC%9A%94-
매번 우리가 PR 을 올리기 전 해야하는 것들이 있다. 그게 무엇일까?? 주석을 지우거나, 코드의 변수 네이밍을 확인하거나 등의 과정도 중요하지만, 까먹지 말아야할 것들 중 하나는 Optimize Import 와 Reformat Code 이다. 자주 PR 에서 언급되는 부분이자 확인을 한다고 하더라도 파일마다 수행되어야하기 때문에, 까먹기 쉬운 부분이기도 하다. 그렇기에, 자동으로 수행될 경우 더할나위 없이 편하게 사용할 수 있기도 하다. 그래서 이번 포스팅은 저장에 해당하는 ctrl + s(mac 의 경우 ⌘+s) 에 Reformat, Optimize 를 추가해서 저장 시, 이들이 한꺼번에 동작할 수 있도록 해보려한다. 기존 Save All 의 Shortcut 변경하기 Preference > Keyma..
해당 글을 정리하게 된 이유를 본론에 들어가기 앞서 잠시 얘기해보자면, 코드 작성 시 당황했던 것이 있었기 때문이다. 서론에 관심이 없다면 아래 Return 에 대한 정리로 바로 넘어가도 된다. 아래 코드의 1번과 같이 코드를 작성하고, “EFGH” 가 출력될 것이라고 생각하고 테스트는 따로 해보지 않은 상태로 PR 을 올렸었다. 그러나, 차후 PR 을 통해 return 이 sample 을 반환할 것이라는 코멘트를 받았다. 그제서야 실행해본 결과 1번이 let을 반환하지 않는다는 것과, 2번처럼 라벨을 명시한 return 을 해야 의도적으로 동작시킬 수 있다는 것을 알게 되었다. 그리하여 본인은 Return 에 대해 좀 더 명확하게 정리 할 필요성을 느끼게 되어서 해당 포스팅을 작성하게 되었다. // 1..
targetSdkVersion을 올리려했더니 이 에러가 나오더라. FATAL EXCEPTION: pool-11-thread-1 Process: ..., PID: 16791 java.lang.IllegalArgumentException: ...: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent. Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e..
앱의 설정 화면은 개발자로써 제일 필요하면서 제일 구현하기 꺼려지는 것이기도 하다. 항목에 대해 일일이 이벤트를 넣어야하기 때문인데, 심지어는 DB 혹은 Preference 를 쓰기에 간단하지만 귀찮기 그지없다. 보통, 특정 설정 값을 사용자로부터 세팅 받고 그것을 계속 저장하며 그에 따른 앱의 동작을 제공해야 하는 단순한 동작을 하는데, 이를 쉽게 구현하는 방법인 PreferenceFragmentComponent에 대해 알아보도록 하자. PreferenceFragment 란? 설정 화면이 크고 복잡할 경우 사용자는 원하는 세팅을 쉽게 찾거나, 개발자는 이러한 화면을 구성하기 어렵다. 다라서, 이런 구성을 쉽게 수행하기 위해 Preference Library 에서는 PreferenceFragmentCom..
다크 모드를 켜둔채 깃을 키고있었더니 모니터가 맛이 가버렸다. 번인 현상이 발생하고 화면도 끊임없이 깜빡였다. (눈갱..) 이렇게 잔상이 남아 아무것도 할 수가 없었다. 화면도 안보이고 깜박이며, 연결을 끊어도 잔상이 남아있었다. (회사 소스 코드가 일부 있어서 번인 현상 이미지가 이렇게 낙서 투성이이다.) AS 신청을 할까 했지만 구글링해보니 흰색이나 쨍한 화면을 오래 키고 있으면 옅어진다고 하여 한번 시도해 보았다. 본인의 모니터는 DELL 이어서, 설정에 Self-Dignose 라는 옵션이 있더라. 그 옵션을 활용하였다. Others > Self-Dignose > 흰색 화면 / 여러 색상 켜두고 있기 (여러 색상이 나오고 마지막에는 뭔 문구가 뜰 것이다. 자동으로 꺼질 때 까지 계속 켜두고 있었다...
Picasso 를 사용하다가 Coil 라이브러리로 마이그레이션을 하기로 함에 따라 Coil 의 사용법 및 에러 핸들링 관련하여 포스팅을 해보려한다. Coil 이란? coil 은 Kotlin Coroutin 으로 만들어진 Android 백엔드 이미지 로딩 라이브러리이다. coil 외에 url 및 File path 등의 이미지를 로딩하기 위한 라이브러리는 Picasso, Glide 등 다수 존재하지만, 본인은 Coil 을 적용해보려한다. Migration 및 적용하기 implementation("io.coil-kt:coil:2.2.2") implementation("io.coil-kt:coil-gif:2.2.2") //coil 에서 gif 적용을 위한 implementation 으로 선택사항 기존의 31 이..
RxJava 코드를 보는데, subscribeOn과 observeOn이 함께 쓰이는 것을 보고 둘이 무슨 차이이고 어떤 동작을 하는 것인지 궁금하여 한번 정리해 보았다. subscribeOn Observable 이 데이터 흐름을 발생시키고 연산하는 스레드를 직접 지정할 수 있다. observeOn Observable 이 Observer 에게 알림을 보내는 스레드를 지정할 수 있다. 이렇게 얘기하면 잘 와닿지 않을 것이다. 사용 시, 둘의 차이점이 어떤지 더 자세히 알아보자. // # 1 myService.getUsers() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .flatMap(Observable::fromIter..