728x90
반응형

분류 전체보기 82

Kotlin object와 Gson의 오해

안녕하세요. 안드로이드 개발자 정석준입니다. 오늘 소개할 내용은 Kotlin에서 Gson을 사용할 때 object로 json을 파싱하는 경우 발생하는 버그에 대해 이야기해보려고 합니다. 예제코드 import com.google.gson.Gson fun main() { val gson = Gson() val json = "{}" val house: House = gson.fromJson(json, House.Room::class.java) val name = when (house) { House.Living -> "Living" House.Room -> "Room" } println(name) } sealed class House { object Room : House() object Living: Hou..

개발/코틀린 2023.08.03

(Coroutine) asStateFlow()를 써야할까요?

안드로이드 개발을 하면서 대부분 MVVM 패턴을 많이 사용하고 그 안에서 Observable한 형태를 사용하기 위해 LiveData, Rx, Flow등 여러가지를 사용합니다. 그 안에서 ViewModel 내부에서는 Mutable한 형태를 유지하고 외부에서는 Immutable한 형태를 유지하기 위해서 아래와 같은 형태를 많이 사용합니다. import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow sealed interface LoadingUiState { object Loading : LoadingUiState object Load..

개발/코틀린 2023.07.28

코틀린 언어 스터디

👩🏻‍💻👨🏻‍💻 멤버 정석준(멘토) 고수민 김우남 배준형 이유경 이은정 이제일 정지원 최윤정 📚 책 개발자를 위한 코틀린 프로그래밍 A to Z https://www.yes24.com/Product/Goods/112923585 2장 ~ 14장 (총 13장) 👊 목표 Kotlin 심화로 넘어가기 전에 기초를 다지기 ⏰ 시간 매주 일요일 저녁 9시 OT - 2023.07.16(월) 2023.07.16 ~ 2023.10.15 📍 장소 구글밋 진행 🎸 기타 스터디 준비는 각자 편한 형태로 준비해주세요. ex) 블로그, ppt, github 등등 과반수 이상 미출석 시 스터디 진행 하지 않아요. ✍🏻 스터디 결과물 고수민 2장 https://freckle-meteor-e1e.notion.site/chapter-2..

개발/스터디 2023.07.16

오션플레이어 23년 7월 8일 새내기 환영회 k26

오션플레이어 보홀에서 오픈워터, 어드밴스드 자격증을 취득하고 한국으로 돌아왔는데 오션플레이어 코리아에서 새내기 환영회를 한다는 소식을 듣고 참여하게 됐어요~ https://cafe.naver.com/oceanplayerkorea/3349 2023년 7월 8일 새내기 환영회(K26) 대한민국 모임의 시작, 네이버 카페 cafe.naver.com 새내기 환영회는 K26이라고 스쿠버다이빙과 프리다이빙을 할 수 있는 장소로 유명한 곳이에요. 1층 로비에서 스쿠버 다이빙하는 분과 프리다이빙 하는 분들을 유리를 통해 볼 수 있었어요. K26에서는 매점을 운영하고 있어요. 타올이나 수모도 판매하고 있어서 깜빡하고 안가져오더라도 구매 할 수 있어요. 물 속에 들어가기 전에 사진 한 컷~ 물 속에서 단체로 한컷~ 다이빙..

파이브 라인스 오브 코드 - 타입 코드 처리하기

독립된 if 문은 검사(check)를 담당하고, if-else 문은 의사결정(decision)으로 간주합니다. 한 가지 예를 들면, 숫자 배열에서 평균을 구하는 함수에서 배열의 크기가 0이면 오류가 발생하고 그렇지 않으면 계산한 값을 반환하는 함수가 있습니다. function average(arr: number[]) { if (size(arr) === 0) throw "Empty array not allowed" else return sum(arr) / size(arr) } 이 함수에서 배열의 크기가 0인지 아닌지로 의사결정을 하기 보다는 검사를 담당하는 것으로 보입니다. 그럼 이것은 이렇게 변경 할 수 있습니다. function assertNotEmpty(arr: number[]) { if (size(..

개발/리팩터링 2023.07.09

파이브 라인스 오브 코드 - 긴 코드 조각내기

규칙 - 왜 다섯 줄인가? 이 책에서는 근본적인 규칙으로 다섯 줄 제한을 소개합니다. 메서드는 {와 }를 제외하고 5줄 이상이 되면 안된다고 이야기 합니다. 아래 isTrue() 메서드는 4줄 입니다. function isTrue(bool: boolean) { if (bool) return true; else return false; } 메서드가 길면 한 번에 긴 메서드의 모든 논리를 머릿속에 담아야하기 때문에 작업하기가 어렵습니다. 또한 메서드 이름만 보고 어떤 역할을 하는지 유추가 되기 때문에 주석을 넣는 것과 같은 효과를 낼 수 있습니다. draw() 메서드는 매우 길지만 내부를 잘 보면 map을 그리는 영역과 player를 그리는 영역이 존재하고 있습니다. 우리는 메서드 추출 이라는 리팩터링을 통..

개발/리팩터링 2023.07.03

다이빙로그-15 / 펀 다이빙

환경 날짜: 2023.06.26 나라: 필리핀 위치: 보홀 다이브 포인트: 델뷰 다이빙 센터: 오션플레이어 보홀 날씨: 해 조류: 약함 시야: 좋음 다이빙 휴식 시간: 38분 시작 시간: 10:39 시작 잔압: 210bar 최대 수심: 12.7m 평균 수심: 7.8m 다이브 시간: 41분 종료 시간: 10:01 종료 잔압: 100bar 탱크 크기: 11L 탱크 재질: 알루미늄 탱크 종류: Air 수온: 30도 장비 웨이트: 7kg(Belt-5kg, BCD-2kg) 슈트: Wet(3mm) 메모 마지막 다이빙이라서 너무 아쉬웠다. 그래도 5일간 날씨도 좋았고 시야도 너무 좋았고 오픈워터, 어드 강사님인 리온 강사님이 너무 친절하게 잘 알려주셨다. 보홀와서 15번의 다이빙이 전부 재미있었고 다음에도 또 오고 ..

다이빙로그-14 / 펀 다이빙

환경 날짜: 2023.06.26 나라: 필리핀 위치: 보홀 다이브 포인트: 델뷰 다이빙 센터: 오션플레이어 보홀 날씨: 해 조류: 없음 시야: 좋음 다이빙 휴식 시간: - 분 시작 시간: 09:19 시작 잔압: 210bar 최대 수심: 13.7m 평균 수심: 9.5m 다이브 시간: 42분 종료 시간: 10:01 종료 잔압: 70bar 탱크 크기: 11L 탱크 재질: 알루미늄 탱크 종류: Air 수온: 30도 장비 웨이트: 7kg(Belt-5kg, BCD-2kg) 슈트: Wet(3mm) 메모 곰치, 바다민달팽이, 라이언피쉬 다이빙 계획 - 최대수심: 10m - 시간: 40분 - 상승 잔압: 70bar - 입수 방법: 백워드 롤 - 출수 방법: 사다리

다이빙로그-13 / 나이트 다이빙

환경 날짜: 2023.06.25 나라: 필리핀 위치: 보홀 다이브 포인트: 탈리사이 다이빙 센터: 오션플레이어 보홀 날씨: 밤 조류: 없음 시야: 좋음 다이빙 휴식 시간: 5시간 7분 시작 시간: 18:28 시작 잔압: 200bar 최대 수심: 15.7m 평균 수심: 7.7m 다이브 시간: 47분 종료 시간: 19:15 종료 잔압: 80 bar 탱크 크기: 11L 탱크 재질: 알루미늄 탱크 종류: Air 수온: 30도 장비 웨이트: 7kg(Belt-5kg, BCD-2kg) 슈트: Wet(3mm) 메모 다이빙 계획 - 최대 수심: 12m - 시간: 40분 - 상승 잔압: 70bar 하강할 때는 조금 빛이 있어서 괜찮았는데 상승할 때는 너무 어두워서 무서웠음 돌아갈 때도 스피드 보트가 천천히 가는데 이것도 ..

다이빙로그-12 / 펀 다이빙

환경 날짜: 2023.06.25 나라: 필리핀 위치: 보홀 다이브 포인트: 탈리사이 다이빙 센터: 오션플레이어 보홀 날씨: 해/구름 조류: 없음 시야: 매우 좋음 다이빙 휴식 시간: 38분 시작 시간: 12:41 시작 잔압: 200bar 최대 수심: 24.7m 평균 수심: 13m 다이브 시간: 38분 종료 시간: 13:19 종료 잔압: 50bar 탱크 크기: 11L 탱크 재질: 알루미늄 탱크 종류: Air 수온: 29도 장비 웨이트: 7kg(Belt-5kg, BCD-2kg) 슈트: Wet(3mm) 메모 펀다이빙 - 거북이 봄 - 윤정이가 나한테 매달림 - 마지막에 윤정이랑 가위바위보 했음 - 사람이 많아서 정신 없었음 - 어드밴스드 버디님과 첫 펀다이빙

728x90
반응형