분류 전체보기 805

Black _ Code Formatter 회피하는 방법

Black Code Formatter를 사용하는 이유는 일관된 코드 스타일을 유지함으로써 코드 가독성을 높이고 개발자들 간의 원활한 커뮤니케이션을 유도하기 위함이다. Python에서도 포맷팅 라이브러리가 있는데, 그중 Black은 대중적으로 많이 사용하는 Code Formatter 중에 하나이다. Code Formatter는 보통 '파일을 저장할 때'나 혹은 '커밋을 생성할 때' 등 자동 실행되도록 지정한다. 그런데 가끔은 Code Formatter 가 실행되지 않았으면 하는 때가 있다. 예를 들어 아래와 같은 dictionary가 있다고 가정해보자. 이를 포멧팅 하면 다음처럼 스타일이 수정된다. 포맷팅을 적용한 결과 코드라인이 13줄에서 58줄로 늘어났다... 이런 경우에는 포맷팅이 오히려 가독성을 떨..

Python _ Protocol로 인터페이스 만드는 방법

Python에서 인터페이스를 구현하는 방법에는 여러 가지가 있지만 이번 글에서는 Protocol을 이용한 방법을 소개한다. 인터페이스란? 쉽게 말해 외부와 소통하기 위해 필요한 메서드를 정의한것이다. 하위 모듈들은 해당 인터페이스에 맞춰 기능을 구현한다. Protocol 사용법 아래 코드를 보자. from typing import Protocol class 감정(Protocol): def 기쁘다(self) -> str: ... def 슬프다(self) -> str: ... class 사람: def 기쁘다(self) -> str: return "기뻐!" def 화나다(self) -> str: return "화나!" class 사회생활: def 시작(self, 사람: 감정) -> None: self.사람 =..

2022년 33주차 '하고 싶은 것을 실행하는 능력'

클린 코더스 스터디 목표한 대로 30강 까지 정리하여 사내 스터디원에게 공유했다! 객체지향에 대해 다시금 생각해볼 수 있도록 도와준 강의이다. 덕분에 업무에서도 삶에서도 큰 도움이 된 듯. 객체지향을 더 깊게 공부하고 싶다는 생각이 들었다. 고품질의 코드를 더 빠르게 생산해내는 즐거움을 느끼고 싶다! 덕순 프로젝트 service 인터페이스를 3개 구현하기로 했었는데 이번 주는 액세스 토큰에 대한 테스트 코드를 작성했다. TDD로 개발하고 있기 때문에 익숙지가 않더라. 지금은 조금 느리더라도 차근차근 진행하려고 한다. 속도가 중요한 프로젝트가 아니기 때문에 TDD를 연습하기에 제격이라는 생각이 든다. 다음 주에 휴가를 계획해두었는데 휴가기간 동안 좀 더 많이 작업해봐야겠다.! 휴가가 빨리 왔으면~ 알파인사..

pytest _ mock 사용하여 테스트 코드 작성하기

mock이란? 쉽게 말해 ‘가짜’ 데이터라고 이해하면 된다. 예를 들어 테스트 코드를 작성할 때, 실제 모듈과 유사하게 동작하는 가짜 데이터를 만들어 사용할 수 있다. ‘가짜’ 데이터인 ‘mock’을 왜 사용하는 걸까? 테스트하려는 함수가 10초 이상의 연산 시간이 필요한 모듈에 의존하고 있다고 가정해보자. 우리는 해당 함수를 테스트할 때마다 매번 10초를 기다려야 한다. 이는 개발 생산성을 크게 저하시킬 것이다. 의존하고 있는 모듈로 인해 본 코드를 테스트하기 어려울 때, mock을 사용하면 해당 모듈을 실행하지 않고도 해당 테스트를 검증할 수 있다. 우리는 모듈의 응답을 mock으로 대체함으로써 본 코드의 테스트에 집중할 수 있다. 이처럼 성능 저하, 비용 등 불필요한 리소스 발생이 예상될 때, 일반..