본문 바로가기

전체 글190

클린 코드 - 단위테스트에 대하여 클린코드의 [단위 테스트] 부분에 대해 정리해보았다. 코드에서 테스트는 매우 중요한 부분이다. 테스트 작성에서 준수해야 할 것은 매우 많이 있으나, 클린코드의 기준에서 테스트를 정리한 책의 내용을 정리하였다. 테스트 당 개념하나 테스트에서도 코드에 작성하는 규칙을 준수하는 것처럼 다른 사람이 보았을 때 이해하기 쉬운 코드를 작성해야 한다. 예를 들어 함수가 지나치게 길거나 비슷한 개념이여도 연속으로 테스트하는 긴 함수는 피해야 한다. 개념마다 테스트를 분리하는 것이 좋으며 독자적인 개념마다의 테스트 갯수로 쪼개야 마땅하다. 아래는 위와 같은 긴 코드의 예시인데 클린 코드 p.166을 참조하면 좋겠다. Public void testAddMonths(){ SerialDate d1 = SerialDate.cr.. 2024. 2. 2.
개발 일상 - 소소한 리팩토링 -섞인 로직 분리 정리 (테스트 가능성 높이기) 소소한 리팩토링- 섞은 로직 분리( 테스트 가능성 높이기) 로직을 테스트 하고 싶은데 realPeriod, expectedPeriod, today 값에 따라 사용할 period와 type이 달라짐 단위 테스트를 방해하는 요소 중간에 섞여있는 DB 연동 RestBuilder 코드 분리 DB에서 InputPeriod 읽어오는 코드 realPeriod, expectedPeriod, today로 사용할 period와 type 구하기 코드 분리 위한 타입 추가 두 InputPeriod를 값으로 갖는 타입 추가 Public class InputPeriods{ private InputPeriod real; private InputPeriod expected; …생성자 } DB에서 읽어오는 코드를 분리 ResultBu.. 2024. 1. 11.
개발 일상, 소소한 리팩토링 정리 업무 배치와 푸시 배치 구분하는 작업 진행 reason 두 기능의 변경 빈도, 실행주기가 다름 조만간 푸시 기능 개선이 있었음 기존 배치 프로젝트에서 푸시 관련 코드를 별도 프로젝트 발라냄 기존 코드를 복붙해서 새 프로젝트 이관 이 과정에서 기존 코드를 일부 리팩토링하는 작업도 병행 분리 통지 코드를 별도 클래스로 분리 정적 메서드 -> 객체 JobResultNotifier에 대한 단위 테스트 용이해짐 역할 분리 통지 여부 판단 로직 분리 파일 백업 기능 별도 클래스로 분리 리팩토링과 테스트! 상속보단 조립 com.google.android.gcm.server.Sender 클래스를 상속 불필요하게 Sender의 모든 메서드 노출 조립을 하기 위한 구조로 변경 Sender 클래스를 상속한 클래스 분리 Se.. 2024. 1. 11.
로드밸런서 - L4, L7 인프라단에서 구분해서 사용하는 로드밸런서인 용어를 정리해보았습니다. 결국 웹에서 OSI 7계층과 연관된 것인데요, 해당 부분과 연관지어 기억하면 어떤 의미인지, 왜사용해야하는지 알 수 있습니다. 이는 L4와 L7이라고 보통 많이 부르며 이를 다시 Network LB와 Appplication LB 라고 합니다. 좀더 디테일 하게는 아래와 같이 정의할 수 있습니다.어플리케이션 로드밸런서는 Application LBOSI 7 Layer 중에서 에플리케이션 레이어에서 로드밸런싱 동작한다HTTP/HTTPS 프로토콜의 URL의 PATH 기반으로 전송할 타겟을 지정할 수 있다.ALB는 SSL 적용이 가능하다NLB보다 성능적으로는 느릴수는 있어도 요청에 따른 패킷에 따라 다양한 전송 규칙을 가질 수 있다 네트워크 로드.. 2024. 1. 11.