flutter로 프로젝트를 만들면서 대부분의 키워드 같은 경우는 잘 사용한다고 생각했는데, mixin과 with는 헷갈리는 부분이 있어서 다시 정리를 해보려 해요. 1. extends extends는 흔히 우리가 다른 언어에서 상속으로 사용하는 키워드예요. dart 언어에서는 다중 상속이 불가능하고, 모든 속성과 메소드들을 상속받기 때문에 특별한 구현 없이 바로 사용이 가능해요. ※ 당연한 이야기 이지만 abstract class를 상속받으면 구현을 해주어야 해요. 하지만 abstract class 도 함수 몸체를 구현해 놓았다면, 따로 구현할 필요는 없어요! class CheesePizza extends Pizza { String name() { return "나는 치즈 피자에요"; } } class ..
해당 포스팅은 인프런 플러터 상태관리 블락 마스터 코드 강의를 들으며 내용을 정리 한거에요. Bloc 과 Cubit 둘중 어떤걸 사용하는게 좋을까요? 블록 공식 문서에 따르면 https://bloclibrary.dev/#/coreconcepts?id=cubit-vs-bloc "무엇을 사용해야 할지 아직 확신이 서지 않는 경우 시작하여 Cubit나중에 필요에 따라 리팩터링하거나 확장할 수 있습니다 Bloc" 라고 설명이 되어 있어요. 요약하면 그냥 필요에 맞게 사용해라 정도가 될듯 해요. 그렇다면 Bloc 과 Cubit은 어떤 차이가 있을까요? 아래 그림을 보면 좀더 쉽게 이해가 될듯 해요. 그림 1 에서 보듯이 Cubit은 Bloc에 포함되어 있어요. 그럼 좀더 자세하게 Cubit에는 없고 Bloc에는 ..
해당 포스팅은 인프런 플러터 상태관리 블락 마스터 코드 강의를 들으며 내용을 정리 한거에요. 1. BlocProvider Bloc + Provider , 블럭을 제공하는 위젯 특징 : 지연생성 옵션(lazy) 하위 계층 위젯들에서 접근 가능 Bloc 생성후 메모리 반환의 경우 자동으로 해준다. 2. MultiBlocProvider blocProvider 다중 등록 3. BlocBuilder BlocProvider로 생성된 bloc을 사용할때 쓰는 Widget bloc 옵션을 사용하지 않고 사용시 현 context로 부터 bloc을 찾아 변화 감지를 한다. bloc을 지정하는 케이스의 경우 특별한 케이스에서 사용하라고 권장한다. buildWhen 옵션을 통해 필요한 조건일때만 변화를 줄 수 있다. 4. ..
해당 포스팅은 인프런 플러터 상태관리 블락 마스터 코드 강의를 들으며 내용을 정리 한거에요. 왜 bloc 을 사용해야 하는가? 1. 뷰 영역과 비즈니스 영역을 쉽게 구분할 수 있다. 2. 테스트 하기 쉽고, 재사용을 가능하게 해준다. 3. 이벤트 트레킹을 통합적으로 관리할 수 있다. 4. 많은 개발자들의 하나의 코드 베이스로 일을 처리 할 수 있다. (이직시에도 이직한 회사가 bloc을 사용하고 있다면 적응이 쉬움!) 5. Github에서 가장 높은 star수 ? 출처 : https://www.inflearn.com/course/%ED%94%8C%EB%9F%AC%ED%84%B0-%EC%83%81%ED%83%9C%EA%B4%80%EB%A6%AC-%EB%B8%94%EB%9D%BD-%EB%A7%88%EC%8A..
값 타입을 하나 이상 저장할 때 사용 @ElementCollection, @CollectionTable 사용 데이터베이스는 컬렉션을 같은 테이블에 저장할 수 없다. 컬렉션을 저장하기 위한 별도의 테이블이 필요함 값 타입 컬렉션의 제약사항 값 타입은 엔티티와 다르게 식별자 개념이 없다. 값은 변경하면 추적이 어렵다. 값 타입 컬렉션에 변경 사항이 발생하면, 주인 엔티티와 연관된 모든 데이터를 삭제하고, 값 타입 컬렉션에 있는 현재 값을 모두 다시 저장한다. 값 타입 컬렉션을 매핑하는 테이블은 모든 컬럼을 묶어서 기본키를 구성해야함 : null입력 x, 중복 저장 x 값 타입 컬렉션 대안 실무에서는 상황에 따라 값 타입 컬렉션 대신에 일대다 관계를 고려 일대다 관계를 위한 엔티티를 만들고, 여기에서 값 타입..