일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Compose
- 알고리즘
- g 단위테스트
- Kotlin
- 병렬프로그래밍
- 알게되는
- 코루틴
- 책
- Rxjava
- 안드로이드스튜디오
- android
- k8s
- 커스텀상태
- 테스트
- kotlin강좌
- 자바
- 안드로이드강좌
- 병럴프로그래밍
- Gradle
- Coroutine
- mockito
- viewmodel
- 회고
- 코틀린
- 스레드
- 안드로이드
- 디자인패턴
- theming
- ReactiveProgramming
- 글또
- Today
- Total
목록분류 전체보기 (154)
선생님, 개발을 잘하고 싶어요.
서문 자바 프로젝트를 한다면 응당 빌드 문제를 겪게 됩니다. 자바 코드를 컴파일하고 컴파일한 파일을 묶어서 실행 파일을 내보내는 간단하고 매번 하는 작업부터 실제 프로덕션 환경에 배포하는 작업까지 정말 다양한 일들을 처리해야 하죠. 그리고 어느샌가부터 최근 IDE에서 프로젝트를 생성할 때 자동으로 이런 빌드 문제를 해결하기 위해서 gradle을 선택하고 있는 것 같습니다. 안드로이드 공부를 처음 시작해서 안드로이드 스튜디오를 봤을 때 항상 자동으로 구성되는 gradle을 사용하고 있었습니다만 그 세부내용은 이해하지 못하고 있었습니다. 혹시 저와 같은 사람들이 있을까 하여 gradle 관련 학습내용을 공유합니다. 이번 포스팅을 잘 따라오려면 다음과 같은 걸 알고 있으면 좋습니다. 커맨드 라인 명령어와 함께..
4장 - 좋은 단위 테스트의 4대 요소 다루는 내용 좋은 단위 테스트의 관점 간 차이점 모색 이상적인 테스트 정의 테스트 피라미드 이해 블랙박스 테스트 및 화이트박스 테스트 사용 가치 있는 테스트를 작성하기 위해서는 가치 있는 테스트를 식별할 줄 알아야 한다. 이 장에선 그 방법을 알아본다. 4.1 좋은 단위 테스트의 4대 요소 자세히 살펴보기 총 네 가지 특성이 있다. 회귀 방지 리팩터링 내성 빠른 피드백 유지 보수성 4.1.1 첫 번째 요소: 회귀 방지 회귀: 코드를 수정한 후 기능이 의도한 대로 작동하지 않는 경우(소프트웨어 버그) 회귀 방지 차원에서 가치있는 테스트란 다음 사항을 고려해야 한다. 테스트 중에 실행되는 코드의 양 (많을 수록 회귀 방지 가능성 ⤴️) 코드 복잡도 (단순한 코드는 실수..
왜 단위 테스트를 해야할까? 모든 소프트웨어 개발 방법론의 목표는 무엇일까? 확장성 있고 지속 가능한 소프트웨어를 만드는 것이다. 단위 테스트를 해야하는 이유도 다르지 않다. 그렇다면 단위 테스트만 작성하면 지속 가능한 소프트웨어가 되나? 단위 테스트를 운영하는 프로젝트는 새로운 기능을 추가해도 회귀 문제가 발생하지 않나? 당연히 그렇지 않다. 단위 테스트는 지속 가능한 소프트웨어를 만들기 하나의 도구일 뿐이다. 우리는 이 도구를 잘 사용하는 법을 배워야 한다. 단위 테스트의 목적이 지속가능성에 있는 만큼 테스트를 작성할 때 불필요한 코드를 버려야한다. 단순하게 100% 코드 커버리지를 달성한다고 좋은 테스트가 아니라는 뜻이다. 좋은 테스트라고 하면 다음 세가지 속성을 만족해야 한다. 개발 주기에 통합 ..
성능에 대해 성능을 높인다? 👉 더 적은 자원으로 더 많은 일을 하도록 한다. 자원 👉 CPU, 메모리, 네트웍 속도, 디스크 속도, DB 속도, 디스크 용량 … 멀티 스레드에 내제된 성능상 비용 스레드 간 작업 조율 시 오버헤드 (락 걸기, 신호 보내기, 메모리 동기화) 컨텍스트 스위칭 스레드 생성 및 제거 여러 스레드를 효율적 스케줄링 더 나은 성능을 위해 병렬 프로그래밍 한다면 프로그램이 확보할 수 있는 자원 최대한 활용 가능한가 체크 남는 자원이 생길 때, 그 자원 역시 최대한 활용 가능한가 체크 🌟 부족한 리소스는 무엇인가? 성능 대 확장성 얼마나 빠르냐, 얼마나 많은 양의 일을 하냐 두 가지 관점에서 생각하기 얼마나 빠르냐 👉 서비스 시간, 대기 시간 얼마나 많은 👉 용량, 처리량 🌟 확장성 ..