분류 전체보기(93)
-
3장 입츨굼 내역 분석기 확장판 ( 전반부 )
목표코드베이스에 유연성을 추가하고 유지보수성을 개선하는 데 도움을 주는 개방/폐쇄 원칙(OCP) 을 배워보자언제 인터페이스를 사용해야 좋을지를 설명하는 일반적인 가이드라인과 높은 결합도를 피할 수 있는 상황도 배워보자예제// 특정금액 이하 입출금내역 조회하기public List findTransactionsGreaterThanEqual(final int amount) { final List result = new ArrayList(); for(final BankTransaction bt: bankTansactions) { if(bt.getAmount() >= amount) { result.add(bt); } } return result;}..
2024.10.09 -
2장 입출금 내역 분석기 후반부 내용
결합도한 기능이 다른 클래스에 얼마나 의존하고 있는지를 가늠한다. 결합도는 어떤 클래스를 구현하는데 얼마나 많은 다른 클래스를 참조했는가로 설명할 수 있다.더 많은 클래스를 참조했다면 기능을 변경할 때 그만큼 유연성이 떨어지고, 어떤 클래스의 코드를 수정하게 되면 이 클래스에 의존하는 모든 클래스가 영향을 받게 된다.비유 예시시계를 생각해보아라, 시계가 어떻게 동작하는지 몰라도 시간을 알아내는 데 문제가 없다.사람은 시계 내부 구조에 의존하지 않기 때문이다. 이는 두 가지 임무인 인터페이스와 구현이 서로 결합되지 않았기 때문이다.코드 예시public interface BankStatementParser { BankTransaction parseFrom(String line); List pars..
2024.10.08 -
2장 입출금 내역 분석기
final 변수지역 변수나 필드를 final로 정의하기 때문에 이 변수에 값을 재할당 할 수 없다.코드에서 가능한 많은 변수를 final로 표시하면 어떤 객체의 상태가 바뀔 수 있고, 어떤 객체의 상태가 발쓀 수 없는지 명확하게 구분할 수 있다.자바 언어에서 final 키워드가 쓸모없는 상황도 있다. 추상 메서드(인터페이스 내)의 메서드 파라미터에 final을 사용하는 상황이다. 자바 10에서 var 키워드가 등장하고 final 유용성이 크게 감소되었다.갓 클래스한 개의 파일에 모든 코드를 구현해서 거대한 클래스가 탄생되는 클래스.기존 코드의 로직을 갱신해야 한다면, 어떻게 이 코드를 찾아서 바꿀 수 있을까? 이런 문제를 갓 클래스 안티 패턴이라 부른다.단일책임원칙(SRP)쉽게 관리하고 유지보수하는 코드..
2024.10.06 -
In-memory 왜써? TestContainer쓰자!
What is TestContainer??Testcontainers is a testing library that provides easy and lightweight APIs for bootstrapping integration tests with real services wrapped in Docker containers. Using Testcontainers, you can write tests talking to the same type of services you use in production without mocks or in-memory services.번역Testcontainers는 실제 서비스를 도커(Docker) 컨테이너로 감싸 부트스트래핑 통합 테스트를 위한 쉽고 가벼운 API를 제..
2024.07.11 -
8장 코틀린에서 함수를 다루는 방법
해당 내용은 인프런 최태현님의 자바 개발자를 위한 코틀린 입문 강의에서 발췌한 내용입니다. 목차 함수 선언 방법 default parameter named argument (parameter) 같은 타입의 여러 파라미터 받기(가변인자) 함수 선언 방법 두 정수를 받아 더 큰 정수를 반환하는 예제 JAVA public int max(int a, int b) { if (a > b) { return a; } return b; } Kotlin fun max(a: Int, b: Int): Int { if ( a > b) { return a } return b } ⏬️ (expression 적용) ==================================================================..
2024.01.14 -
7장 코틀린에서 예외를 다루는 방법
해당 내용은 인프런 최태현님의 자바 개발자를 위한 코틀린 입문 강의에서 발췌한 내용입니다. 목차 try catch finally 구문 Checked Exception과 Unchecked Exception try with resources try catch finally 주어진 문자열을 정수로 변경하는 예제 JAVA private int parseIntOrThrow(@NotNull String str) { try { return Integer.parseInt(str); } catch (NumberFormatException e) { throw new IllegalArgumnetException(String.format("주어진 %s는 숫자가 아닙니다.", str)); } } Kotlin fun parseI..
2024.01.14