본문 바로가기

분류 전체보기86

[Clean-Code] Chapter. 7-10 Clean-Code_week3_yerimi11 오류 처리 [Try-Catch-Finally 문부터 작성하라] try-catch 구조로 범위를 정의한 후 TDD를 사용해 필요한 나머지 논리를 추가한다. [미확인(unchecked) 예외를 사용하라] 지금은 안정적인 소프트웨어를 제작하는 요소로 확인된(checked) 예외가 반드시 필요하지는 않다는 사실이 분명해졌다. C#와 C++, 파이썬, 루비는 확인된 예외를 지원하지 않는다. 그럼에도 불구하고 해당 언어들은 안정적인 소프트웨어를 구현하기에 무리가 없다. 그러므로 확인된 오류가 치르는 비용에 상응하는 이익을 제공하는지 따져봐야 한다. 확인된 예외는 OCP(Open Closed Principle)를 위반한다. 메서드에서 확인된 예외를 던졌는데 catch 블.. 2023. 6. 22.
[Clean-Code] Chapter. 4-6 Clean-Code_week2_yerimi11 [주석] 나쁜 코드에 주석을 달지 마라. 주석은 나쁜 코드를 보완하지 못한다. 새로 짜라. 코드로 의도를 표현해라. ex) if (employee.isEligibleForFullBenefits()) 주석으로 달려는 설명을 함수로 만들어 표현해도 충분하다. 부정확한 주석은 아예 없는 주석보다 훨씬 더 나쁘다. 주석을 가능한 줄이도록 꾸준히 노력해야 한다. 주석이 적절한 예제는 다음과 같다. public static SimpleDateFormat makeStandardHttpDateFormat() { // SimpleDateFormat은 스레드에 안전하지 못하다. // 따라서 각 인스턴스를 독립적으로 생성해야 한다. SimpleDateFormat df = new.. 2023. 6. 21.
[Clean-Code] Chapter. 1-3 Clean-Code_week1_yerimi11 [코드의 존재] 앞으로 프로그래밍 언어에서 추상화 수준은 점차 높아지리라 예상된다. 어떤 언어를 사용하든 코드는 기계가 이해하고 실행할 정도로 엄밀, 정확, 상세, 정형화 되어야 한다. 제대로 명시한 요구사항은 코드만큼 정형적이며, 테스트 케이스로 사용해도 좋다. [재설계] 일단 일정에 맞춰 급하게 짜고 나중에 리팩토링..? 나중은 결코 오지 않는다. 새 시스템이 기존 시스템 기능을 100% 제공하지 않는 한 관리층은 기존 시스템을 대체하지 않을 것이다. -> 시간을 들여 클린코드를 만드는 노력이 비용 절감 뿐만 아니라 전문가로서 살아남는 길이다. [클린 코드?] 의존성을 최대한 줄여야 유지보수가 쉬워진다. 오류는 명백한 전략에 의거해 철저히 처리한다. 효율.. 2023. 6. 20.
[JAVA] template method패턴 Template Method 패턴은 객체지향 디자인 패턴 중 하나로, 알고리즘의 구조를 정의하고 일부 단계를 서브클래스에서 구체화하는 방법이다. 이 패턴은 알고리즘의 공통 구조를 부모 클래스에서 정의하고, 일부 단계를 서브클래스에서 오버라이딩하여 구체화한다. Template Method 패턴은 다음과 같은 구성 요소로 구성된다. 1) Abstract Class (추상 클래스) 알고리즘의 공통 구조를 정의하는 추상 클래스이다. 이 클래스에는 Template Method라는 이름의 메서드가 포함되며, 이 메서드는 알고리즘의 구조를 정의하는데 사용된다. Template Method는 일련의 단계를 순서대로 호출하며, 일부 단계는 추상 메서드나 기본 구현 메서드로 정의된다. 2) Concrete Classes .. 2023. 6. 19.
[JAVA] BUILD-OPERATE-CHECK 패턴 BUILD-OPERATE-CHECK (또는 Arrange-Act-Assert) 패턴은 소프트웨어 테스트의 구성 방식 중 하나이다. 이 패턴은 테스트 케이스를 구성하는 단계와 테스트를 실행하고 결과를 확인하는 단계로 나누어져 있다. 패턴의 각 단계는 다음과 같이 정의된다. 1) BUILD 또는 ARRANGE 테스트 환경을 설정하고 테스트에 필요한 객체, 데이터 또는 상태를 준비한다. 이 단계에서는 테스트에 필요한 사전 조건을 설정한다. 2) OPERATE 또는 ACT 준비된 테스트 환경에서 실제로 테스트 대상을 실행하거나 상호작용한다. 테스트 대상에 대한 동작을 수행한다. 3) CHECK 또는 ASSERT 실행된 결과를 검증하여 예상된 동작과 일치하는지 확인한다. 테스트 결과를 평가하여 기대한 결과와 일치.. 2023. 6. 17.
[JAVA] given-when-then 관례 given-when-then은 행위 주도 개발(Behavior-Driven Development, BDD)에서 사용되는 테스트 관례이다. 이 관례는 테스트 케이스를 작성할 때 구조화와 가독성을 높여주는 방식으로 테스트를 구성한다. given-when-then의 각 부분은 다음과 같이 정의된다. 1) given 테스트를 위한 사전 조건을 설정하는 단계이다. 테스트 환경을 준비하고, 초기 상태를 설정한다. 이 단계에서는 테스트에 필요한 객체, 데이터, 상태 등을 사전에 정의한다. 2) when 테스트 대상의 동작을 실행하는 단계이다. 주로 어떤 이벤트나 동작을 수행하는 부분이며, 테스트 대상이 실제로 실행되는 시점이다. 3) then 실행된 결과를 검증하는 단계이다. 테스트 대상의 동작에 대한 예상 결과를 .. 2023. 6. 16.