분류 전체보기 49

[개발방식] TDD (Test Driven Development)

[개발방식] TDD (Test Driven Development) TDD란 테스트가 개발을 이끌어 가는 개발방식을 의미한다. 테스트를 먼저 만들고 테스트를 통과하기 위한 코드를 작성한다. 이를 통해 결정과 피드백 사이에 간극을 조절할 수 있다. 필요이유 에자일과 같은 빠른 프로덕트 개선이 있는 경우 구조가 달라질 가능성이 있음 빠른 커뮤니케이션 핑퐁, 피드백과 협력이 필요할 시 이를 해결하기 위한 방안이 될 수 있음 사용 적절한 상황 요구사항이 빈번히 변경되는 경우 테크니컬 스펙, 비즈니스 로직이 빈번하게 변경되는 경우 코드 인수인계가 필요한 경우 단점 개발시간 증가 TDD의 어려움 일반적 개발방식과 반대인 순서 (개발 -> 테스트) => (테스트 -> 개발) '프레임워크, 툴을 사용해야한다'는 인식으로..

공부/기타 2022.04.08

[Android/Kotlin] Room 이용 로컬 DB에 사용자 정의 자료형 및 리스트 추가(@Embed, @TypeConverter)

Room 이용 로컬 DB에 사용자 정의 자료형 및 리스트 추가(@Embed, @TypeConverter) 안드로이드에서는 로컬 DB로 sqlite를 사용한다. 보통 Room 라이브러리를 통해 이를 사용하는데 기본 자료형 외 사용자 정의 자료형이나 리스트 자료형 등을 저장할 때 아래와 같이 오류가 발생한다. 이를 해결하고 로컬 DB에 저장할 수 있는 방법을 알아보자. 발생 오류 error: Cannot figure out how to save this field into database. You can consider adding a type converter for it. 사용자 정의 자료형 추가 (@Embeded) 사용자 정의 자료형을 로컬 DB에 추가하려 할 때, 해당하는 필드 앞에 @Embeded를..

[Android/Kotlin] Kotlin 코드에서 LinearLayout에 동적으로 Custom Layout(<include />) 추가

안드로이드 개발 중에 코틀린 코드 상에서 LinearLayout에 동적으로 Custom Layout을 추가해야했다. 이 때 사용한 코드를 기술한다. 먼저, AppCompatActivity.getSystemService()를 통해 LayoutInflater를 얻어온다. val layoutInflater = this.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater 얻어온 LayoutInflater를 통해 추가(include)할 커스텀 레이아웃을 얻어온다. val customLayout = layoutInflater.inflate(R.layout.custom_layout, null) 커스텀 레이아웃 내부 뷰는 findViewById를 통..

[디자인패턴] 팩토리 매서드 (Factory Method Pattern)

팩토리 매서드 패턴 (Factory Method Pattern) 의도 : 객체 생성을 위한 인터페이스를 정의하지만, 어떤 클래스의 인스턴스를 생성할지에 대한 결정은 서브클래스가 내리도록 한다. 팩토리 메서드는 객체를 생성하고 반환하는 메서드이다. 하위 클래스에서 이를 오버라이딩하여 사용한다. 활용 어떤 클래스가 자신이 생성해야 하는 객체의 클래스를 예측 할 수 없을 경우 생성할 객체를 기술하는 책임을 자신의 서브클래스가 지정했으면 할 경우 객체 생성의 책임을 몇 개의 보조 서브클래스 가운데 하나에게 위임하고 어떤 서브클래가 가운데 하나에게 위임하고, 어떤 서브클래스가 위임자인지에 대한 정보를 국소화시키고 싶을 경우 구조 Product : 팩토리 매서드가 생성하는 객체의 인터페이스 정의 ConcretePr..

[모의경매] 춘천시 후평동 석사2아파트 (매각)

사건번호 : 2021타경2635 물건기본정보 전유면적 : 51.66$m^2$ 감정평가액 : 1억 600만원 최저매각가격 : 7420만원 (70%) 실거래가 (매매가 / 전세가) 1억 800만원 ~ 1억 2000만원 / 9000만원 (국토교통부 실거래가 공개 사이트, 링크) 1억 1000만원 / 9000만원 (KB 리브온, 링크) 매각물건명세서 (권리분석) 점유자의 전입신고 일자 보다 최선순위 설정이 빠르므로 대항력 없음으로 판단된다. 그러므로 임차인의 보증금 같은 경우 신경을 쓰지 않아도 될 것 같다 희망 가격 예상 인테리어 가격을 700만원 정도로 잡고 이를 포함하여 실거래 전세가격인 9000만원 보다는 저렴한 가격에 낙찰받는게 좋아보인다. 8150만원 정도면 괜찮지 않을까 싶다. 매각 가격 3월 28..

투자/부동산 2022.03.27

[디자인패턴] 빌더 패턴 (Builder Pattern)

빌더 패턴 (Builder Pattern) 의도 : 객체 생성 방법과 표현 방법을 정의하는 클래스를 분리하여 서로 다른 표현이라도 동일한 절차를 제공할 수 있도록 하는 패턴 활용 객체 생성 알고리즘이 조립 방법에 독립적인 경우 합성할 객체 표현이 다르더라도 생성 절차에서 표현 과정을 지원해야하는 경우 장점 제품 내부 표현 다양화 생성과 표현 코드 분리 복합 객체 생성 절차의 세밀화 구조 Builder : Product객체 일부 요소를 생성하기 위한 추상 인터페이스 정의 ConcreateBuilder: Builder에 정의된 인터페이스 구현, 제품(Product) 구현 및 제공 Director: 제품 생성 절차를 담당하며 필요에 따라 Builder 인터페이스를 요청하여 제품 생성 Product: 생성된 복..

[모의경매] 강릉시 미라보 아파트 (일정 변경?)

유튜브를 보다 경매에 관심이 생겨 모의로 경매를 해보려 한다. 대상 경매는 아래와 같다. 사건번호 : 2020타경3160 물건기본정보 전유면적 : 71.98$m^2$ 공용면적 : 27.47$m^2$ 감정평가액 : 1억 1500만원 최저매각가격 : 1억 1500만원 (100%) 실거래가 1억 1500만원 (국토교통부 실거래가 공개 사이트, 링크) 1억 100만원 (KB 리브온, 링크) 1억 300만원 (복덕방 아저씨 피셜) 매각물건명세서 (권리분석) 권리 분석을 하기 위해 매각물건 명세서를 확인해보았다. 먼저 초록색 박스를 확인하여 이상이 없는지 확인하였다. 해당사항 없음으로 문제없는 것으로 판단된다. 빨간색 박스 표시의 최선순위 설정이 2018.7.3일 근저당권이다. 파란색 박스로 표시된 점유자의 전입신..

투자/부동산 2022.03.24

[디자인패턴] 추상 팩토리 패턴 (Abstract Factory Pattern)

추상 팩토리 패턴(Abstract Factory Pattern) 의도 : 구체화된 서브클래스 정의 없이 서로 관련 있는 객체 군 생성을 위한 인터페이스를 제공한다. 활용 객체 생성, 구성 · 표현 방식 무관한 시스템을 독립적으로 만들 경우 여러 제품군 중 하나만을 선택해 시스템을 설정해야 하며 이를 나중에 다른 것으로 대체할 수 있어야 하는 경우 관련 객체들이 함께 사용되도록 설계되었고 이 제약이 지켜지도록 하고 싶을 경우 제품의 라이브러리를 제공하고 제품의 구현이 아닌 인터페이스만을 노출시키고 싶을 경우 장점 구체적인 클래스 분리 제품군의 쉬운 교체 제품군 일관성 증진 단점 제품 추가의 어려움 제품 추가가 될 시 팩토리를 모두 수정해주어야 함 예시 한 소비자가 삼성과 애플 두 핸드폰 판매 브랜드의 핸드..

[알고리즘/재귀호출/Python] 백준 2747 - 피보나치 수

문제 : 2747번: 피보나치 수 (acmicpc.net) 2747번: 피보나치 수 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 사용언어 : Python 3 시간제한 : 1초 메모리 제한 : 128 MB 문제 설명 n 번째 피보나치 수를 구하는 문제이다. 피보나치 수의 0과 1번째 피보나치 수는 각각 0과 1이다. 이후 n번째(n>1) 피보나치 수는 바로 앞 두 피보나치 수의 합이 된다. $F_{n} = F_{n-1} + F_{n-2}$ (n > 1) 입력 첫째 줄에 n이 주어진다. n은 45보다 ..

공부/알고리즘 2022.03.16

[알고리즘/계수정렬/Python] 백준 10989 - 수 정렬하기 3

문제 : 10989번: 수 정렬하기 3 (acmicpc.net) 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 사용언어 : Python 3 시간제한 : 5초 메모리 제한 : 8 MB 문제 설명 수의 범위가 제한적이나 많은 수의 데이터를 정렬하는 문제이다. 제한 시간 내에 정렬을 수행 완료해야 한다. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. 예제 입력 10 5 2 3 1 4 2 3 5 1 7 출력 첫째..

공부/알고리즘 2022.03.16
반응형