본문 바로가기

오늘은 뭘 배울까?69

주니어 개발자가 DTO 설계에서 놓치기 쉬운 실수들 1. DTO란?2. 문제가 발생한 배경3. 서버와 DTO를 일치시켰는가?   3-1. 서버는 모델을 분리, 클라이언트는 통합하는 경우   3-2. 서버는 모델을 통합, 클라이언트는 분리하는 경우4. 네이밍이 명확한가?   4-1. 어떤 액션에 필요한 모델인지 명시하자   4-2. 모델 안의 내용은 변경될 수 있음을 염두하자     1. DTO란?인터넷에 검색하면 나오는 DTO의 정의는Data Transfer Object. 데이터 전송 객체를 뜻한다. 예를 들어 클라이언트가 API를 호출해서 Response를 받을 때의 객체를 DTO라 부른다.계층 간의 데이터 교환을 위해 사용하는 객체인 것이다.위 예시에서는 서버와 클라이언트가 데이터를 주고받을 때 사용하는 객체라고 표현한 것이고.. 아무튼 정의는 이런데.. 2024. 10. 19.
결제 구현 중 productDetailsList가 empty list를 받아오는 이유 1. 증상 2. 원인 및 해결 방법 2-1. 타이밍 이슈 2-2. 플레이 콘솔에 상품을 제대로 등록했는가? 2-3. 패키지명이 일치하는가? 1. 증상 요즘 구독 결제 기능을 개발하고 있는데 플레이 콘솔에 등록된 상품 정보를 불러오지 못하는 이슈가 있었다. 코드를 정확히 짚어서 말해보자면 private fun querySubscriptionProductDetails() { val params = QueryProductDetailsParams.newBuilder() val productList: MutableList = arrayListOf() for (product in LIST_OF_SUBSCRIPTION_PRODUCTS) { productList.add( QueryProductDetailsParams... 2023. 11. 2.
stateflow가 같은 값을 update 하는 이유 1. 증상 2. 한 번만 update하는 stateflow 예제 3. 여러 번 update하는 stateflow 예제 4. 해결 방법 4-1. state flow 나누기 4-2. state를 관리하지 않고 단발성으로 emit 하기 5. 결론 1. 증상 stateflow는 분명 이전 값과 현재 값이 일치하면 다시 update하지 않는다. 예를 들어 이전 값이 false였고 현재 값도 false면 update 하지 않으며 현재 값이 true가 되면 그때서야 update 함수가 먹힌다. 하.지.만 내 코드에서 stateflow를 collect 하는 부분이 계속 호출되는 문제가 발생했다. 로그를 찍어보니 계속 똑같은 값을 update 하고 있는데 내 머리로는 이해가 가지 않았다. 알고 보니 엄청 허무하고 부끄러.. 2023. 1. 26.
[이펙티브 코틀린] 5장. 객체 생성 1. 생성자 대신 팩토리 함수를 사용하라 2. 기본 생성자에 이름 있는 옵션 아규먼트를 사용하라 3. DSL 1. 생성자 대신 팩토리 함수를 사용하라 (206p ~ ) 1-1. 팩토리 함수란? 객체를 만드는 방법에는 여러 가지가 있다. 다양한 생성 패턴이 있으므로 상황에 맞게 사용하면 된다. 그중 하나인 팩토리 함수에 대해 알아보자. interface HelloMessage { fun hello(name: String): String } class HelloMessageKor : HelloMessage { override fun hello(name: String): String { return "안녕하세요 $name 님" } } 환영 인사를 해주는 HelloMessage라는 interface가 있고 이를.. 2022. 12. 5.
[이펙티브 코틀린] 4장. 추상화 설계 1. 함수 내부의 추상화 레벨을 통일하라 2. 변화로부터 코드를 보호하려면 추상화를 사용하라 3. API 안정성을 확인하라 4. 외부 API를 랩(wrap)해서 사용하라 5. 요소의 가시성을 최소화하라 6. 문서로 규약을 정의하라 7. 추상화 규약을 지켜라 1. 추상화란? (153p ~ ) 추상화를 검색하면 위와 같이 뜬다. 미술에서의 추상화는 구체적인 형상을 그린 것이 아니라 대상의 특징을 뽑아 점, 선, 색 등과 같은 것으로 표현한 것을 의미한다. 즉, 불필요한 것은 그리지 않고, 최소한의 요소를 사용해 그리는 것이 추상화이다. 건축에서의 추상화도 비슷한 의미를 가진다. 집을 구체적으로 그려 설계를 하는 것이 아니라 필요한 부분만 특징을 쏙쏙 뽑아 그리는 것이 설계도이다. 프로그래밍에서의 추상화도 같.. 2022. 11. 25.