코드 리뷰 #1 by 놀이의발견

Ed Park·2022년 3월 2일
0
post-custom-banner

코드 리뷰 #1

놀이의발견 인턴 생활 중 사수분이 해주신 코드 리뷰를 정리해봤습니다.

 

1. 함수 반환 타입 (TypeDict) 작성

함수에서 반환하는 타입을 명확하게 하기 위하여 TypeDict로 반환 타입을 정의합니다.

class AddressSearchResult(TypeDict):
  address: str
  road_address: str
  latitude: str
  longitude: str

2. 함수 타입힌트 작성

놀이의발견이 지향하는 컨벤션에 맞추기 위하여 함수 타입 힌트 작성합니다.

def get_address(self, keyword):

def get_address(self, keyword: str) -> List[AddressSearchResult]

3. 정적 메서드 사용

인스턴스가 불필요한 메서드의 경우 정적 메서드로 정의합니다.

class NcpSearch:th
@staticmethod
def get_address(self, keyword: str) -> List[AddressSearchResult]

4. 인증 정보 코드 외부에 관리

버전 관리 시스템에 인증 정보가 기록으로 남지 않도록 코드 외부에서 관리합니다.

NCP_ID = os.getenv("NCP_ID")
NCP_KEY = os.getenv("NCP_KEY")

5. 예외처리

JSON 등으로 외부에서 받은 dict 처리할 때 KeyError도 예외처리합니다.

try:
do-someting-with-dict
except KeyError:
...

6. 함수에서 예외처리 하지 않는 경우 기본 값 반환

함수안에서 예외를 처리하지 않는 경우 기본 값을 반환 해줍니다.

try:
do-someting
...
return some-value

except requests.exceptions.Timeout as err_t:
print("Timeout Error : ", err_t)

except requests.exceptions.ConnectionError as err_c:
print("Error Connecting : ", err_c)

except requests.exceptions.HTTPError as err_h:
print("Http Error : ", err_h)

except requests.exceptions.RequestException as etc:
print("AnyException : ", etc)

return []

7. 여러 예외가 같은 예외를 상속 받은 경우 상위 예외로 처리

try:
  do-someting

except requests.exceptions.RequestException as err_t:
print("RequestException Error : ", err_t)

 

profile
Simple is the best
post-custom-banner

0개의 댓글