당시에 존나 고민해서 짜고
다짜고 존나 잘짰다고 혼자 뿌듯해했었던 최강의 코드
일단 for문 풀로 돌고 찾으면 break안 치는 문제도 있음
안드로이드 자바는 아마 스트림함수 사용못해서 이렇게 하고 break시켜야 하는걸로 기억함
쓰레기 언어 안쓴지 너무 오래돼서 잘 기억안남
코틀린 이니까 그냥 한꺼번에 스트림 함수 any로 퉁침
이런식으로 바꿨다가 좀 더 고쳐볼까해서
내부 DB에서 꺼낼 때 pointCardID가 nullable이라서 함수 인자로 넘어온 pointCardID도 String?으로 되었는데
pointCardID가 null일 이유가 없어서 pointCardID가 nullable하지 못하게 수정해서
String으로 넘어오게 수정했음
참고로 원래 nullable로 넘어온 이유는 UserPointCard 테이블에서 select로 가져왔을 때
맵핑클래스가 id를 nullable로 설정해뒀음
애초에 테이블에서 id가 notNull이라 그럴 이유가 없을거 같아서 거기도 수정함
쨋든 이렇게 바꿔봤음
추가로 더 생각해볼건
1-----------------------------
UserPointCardEntity의
"userPointCardId" 라는 프로퍼티 이름이 UserPointCardEntity 안에서
userPointCard라는 의미를 중복으로 표현해주는게 맘에 걸려서
나중에 그냥 id로 바꿔주면 좋을거 같음
하지만 사실 이건 sqlite파일을 서버에서 가져왔는데
첨에 테이블을 만든 놈이 테이블 컬럼 이름을 이렇게 테이블이름이랑 중복되게 지어놓은거임
근데 저희끼리 약속이 컬럼이름을 그대로 property이름으로 카멜케이스로 변경해서 쓰기로 해서
이런 병신같은 property이름이 지어지게 된거임
table에 컬럼 이름 병신같으니까 바꿔달라고 말하면 그런 이유로 바꿔줄까? 싶기도
2------------------------------
return userPointCards.any {
it.userPointCardId == pointCardID
}
이런식으로 바로 리턴 시키기 보다
let isUserPointCard = userPointCards.any {
it.userPointCardId == pointCardID
}
return isUserPointCard
이런식으로 한번 접어주고 리턴시키는게 더 알아보기 좋을거 같음
저랑 같이 하는 형은 바로 리턴시키는걸 더 선호하는데
저는 코드 좀 길어지더라도 알아보기 쉽게 변수명 잘 짓고 하나하나 다 명시해주는게 더 좋음