반응형
Flutter 를 개발하면서 사용할 수 있는 상태관리 패키지가 여럿 있지만 엔터프라이즈 레벨에서 사용하기 제일 좋은 패키지는 Bloc 이라는 의견이 주를 이룬다. 본인도 사용해본 결과, 1. 같이 일하는 사람들과 코드 컨벤션이나 구조를 맞추기가 제일 용이하다는게 가장 큰 장점 2. 문서화가 굉장히 잘 되어있다. 개념에 대한 설명과 왜 이런 패턴을 따르는지, 어떤 원리로 동작하는지 설명하고, 예시 코드도 문서에 포함되어 있다. (https://bloclibrary.dev/#/) 3. 성숙한 패키지가 존재 (+ DI 패키지를 또 따로 사용하지 않아도 동일한 패키지에서 제공해준다) 세부적인 사용 예시는 사용하는 사람에 따라서 여러가지가 있을 수 있지만, 문서에 나와있는 예시만으로도 충분히 좋은 practice..
Querydsl 로 db에서 데이터를 가져오는 로직이 있는데, left join 을 여러번해서 데이터를 가져오다보니 쿼리가 10초 이상 걸려서 db 커넥션 타임아웃이 나는 문제가 발생하여... 이를 개선하는 과정에서 querydsl projection 에서 subquery를 사용하기로 했다. NumberPath bCounts = Expressions.numberPath(Long.class, "bCounts"); QAEntity aEntity = QAEntity.aEntity; QBEntity bEntity = QBEntity.bEntity; // left join 한 table Projections.bean( AEntity.class, aEntity.id, aEntity.name, aEntity.age,..
일반적으로 리스트를 생성하고 사용할 때 new ArrayList() 를 관습적으로 사용한다고 들었고 그렇게 사용했다. 왜 그렇게 사용하는지 궁금해서 찾아봄 Array 는 고정 길이 자료구조이지만 ArrayList 는 가변 길이 자료구조 고정 길이 자료구조를 사용할 때는 Array 가 메모리 측면에서 이득이 있다고 한다. ArrayList는 List 인터페이스의 구현체라서 List 의 메소드를 사용할 수 있음 그렇다면 다른 List 구현체보다 ArrayList 를 사용하는 이유는? 일반적으로 비교되는게 LinkedList 인데 LinkedList 는 doubly linked List 이기 때문에 삽입, 삭제가 빠르다 대신 읽는 속도는 ArrayList 보다 느림 ArrayList : O(1) LinkedL..
query dsl을 쓰지 않고 @Query 문으로 특정 값을 업데이트 하는 기능을 작성할 필요가 있었는데 해당 데이터의 status 를 ACTIVE -> DELETED 로 변경하려고 했다. status를 Enum 타입으로 관리를 하고 있었는데 @Query 문을 사용하는 메소드에서 status Enum 값을 전달받아도 되지만, 쿼리문에서 직접 넣어주고 싶어서 적용해보았다. 패키지 내부의 해당 Enum 클래스 경로를 직접 넣어주면 Enum 값을 직접 넣어줄 수 있었다. @Modifying @Query("UPDATE targetTable t SET t.status=com.package.path.EntityStatus.DELETED WHERE ...") void deleteTargetRow();
오늘 작성한 글은 "오늘" 어제 작성한 글은 "어제" 그 이전에 작성한 글은 MM/dd 형식으로 표현해주고 싶었다. 가지고 있는 데이터는 LocalDateTime 이었는데 이를 이용해서 표현해주었다 // 주어진 시간 데이터 LocalDateTime localDateTime // 현재 시간 (서울 기준) LocalDate now = LocalDate.now(ZONE_SEOUL); // 주어진 시간 데이터 서울 기준 변환 LocalDate zonedTime = localDateTime.atZone(ZONE_SEOUL).toLocalDate(); if (now.isEqual(zonedTime)) { return "오늘"; } else if (now.minusDays(1).isEqual(zonedTime)) {..
QueryDsl 로 생성된 Q객체를 import 에서 찾지 못해서 앱을 실행하고 있지 못했다 그냥 계속 찾지 못한다만 나오니.. 이전에도 이런 일이 있어서 IDE 인덱싱에는 바로 나타나지 않았지만 찾으면 나오는 에러들을 가서 찾아서 해결해보았다. 필자같은 경우에는 entity 에서 필드 하나를 바꾸어주었는데 기존 필드 이름을 사용하는 부분이 있어 수정해주었다. 그러니 해결.. 나중에 수정한 부분을 다시 바꿔서 실행해주면 그 부분이 잘못되어 컴파일 하지 못한다고 다시 제대로 알려줌.. 파일이 많아 에러가 인덱싱에서 바로 나타나지 않는 경우 이런 에러가 발생하기도 한다 ㅜㅜ
지도를 연결하는 이유는 대부분 마커를 띄워주고 싶어서 일텐데 [Flutter / 플러터] 구글지도 사용하기 Google Map - Working Dumbo (tistory.com) [Flutter / 플러터] 구글지도 사용하기 Google Map google_maps_flutter | Flutter Package (pub.dev) google_maps_flutter | Flutter Package A Flutter plugin for integrating Google Maps in iOS and Android applications. pub.dev 위 링크의 ReadMe를 잘 따라하면 된다! 하지만 처음 읽어보는 사 dumbokim.tistory.com 저번에 구글 지도를 연결해보았으니 마커를 띄워봅시다..