Programing 55

단위 테스트와 통합 테스트, 언제 어떤 걸 써야 할까?

단위 테스트와 통합 테스트, 언제 어떤 걸 써야 할까?개발을 하다 보면 "테스트를 왜 해야 하지?", "어떤 테스트가 더 중요한가?" 같은 고민이 생긴다.이번에 직접 테스트를 작성하면서, 단위 테스트와 통합 테스트에 대해 정리해봤다.✅ 단위 테스트(Unit Test)란?실제 데이터 없이, 로직 자체의 흐름과 메서드 호출 여부를 검증하는 테스트주로 mock 객체를 사용하여 의존성 분리빠르고, 내부 구현이 바뀌면 바로 확인 가능💡 예를 들어특정 메서드가 호출되었는지if/else 조건 분기가 잘 작동하는지특정 입력에 대해 정확한 출력을 내는지✅ 통합 테스트(Integration Test)란?실제 데이터(DB 등)를 사용하여 기능이 전반적으로 잘 동작하는지를 검증사람이 수동으로 하던 QA를 자동화한 느낌예: ..

플러터 설치 방법

1. 플러터 SDK 설치https://flutter.dev/docs/development/tools/sdk/releases?tab=windows Flutter SDK archiveAll current Flutter SDK releases: stable, beta, and master.docs.flutter.dev 2. Android Studio 설치 및 셋팅SDK Tools 탭으로 들어가서 Android SDK Command-line tools 부분체크하고 적용플러그인 검색, Flutter 설치 3.환경변수 등록내 PC -> path 편집 -> 플러터 설치경로 bin 폴더 지정 4. CMD 창에서 플러터 검사flutter doctor   출저: 코딩애플 강의

Programing/Flutter 2024.07.15

안드로이드 live data repository viewModel 실시간 데이터 바인딩

repository 데이터 보관소 class MyMemberRepository { // MutableLiveData를 사용하여 이미지 URL을 저장하는 LiveData private val _imageUrl = MutableLiveData() // 외부에서 이 Repository에 저장된 이미지 URL을 가져올 수 있는 LiveData fun getImageUrl(): LiveData { return _imageUrl } // 이미지 URL을 업데이트하고 LiveData에 알림을 보내는 메서드 fun setImageUrl(newImageUrl: String?) { _imageUrl.postValue(newImageUrl) // postValue를 써야 UI부분 Main쓰레드에서 변경을 보장 } // 싱글..

Programing/Android 2024.03.12

Spring Boot 다국어(i18n) 처리 및 MessageSource 활용

Spring Boot에서 다국어(i18n)를 적용하는 방법과 MessageSource를 이용하여 다국어 메시지를 가져오는 유틸 클래스를 정리해보겠습니다. 1. 다국어 메시지 처리 유틸 (MessageUtils)다국어 메시지를 코드 기반으로 가져올 수 있도록 도와주는 MessageUtils 클래스입니다.🔹 MessageUtils.javaimport lombok.RequiredArgsConstructor;import org.springframework.context.MessageSource;import org.springframework.context.i18n.LocaleContextHolder;import org.springframework.stereotype.Component;/** * 메시지 정보를 ..

안드로이드 notification 뱃지 제거하기, 카운트 수정하기

기기홈 noti는 푸시를 받았을때 뱃지 카운트를 달 수 있다. 이 뱃지 카운트를 수정하고 싶을때는 //수정하고 싶은 숫자를 넣고 호출 0은 안된다 noti를 제거해야함 private fun updateHomeBadgeCount(badgeCount:Int) { Intent("android.intent.action.BADGE_COUNT_UPDATE") .putExtra("badge_count", badgeCount) .putExtra("badge_count_package_name", packageName) .putExtra("badge_count_class_name", getLauncherClassName(this)) .run { sendBroadcast(this) } } private fun getLaun..