산 넘어 산 개발일지

Clean Code - 경계 본문

Study/CleanCode

Clean Code - 경계

Mountain96 2021. 3. 1. 14:02

외부 API는 내가 필요한 기능을 쉽고 빠르게 만들 수 있도록 도와주기 때문에 안쓰이는 곳을 찾아보기 힘들다.

그러나 무분별한 사용은 내 프로그램을 외부 API에 지나치게 의존하도록 만들 여지가 있다.

그렇다고 아예 사용을 안할 순 없으니 정말 필요한 부분만 사용하되, 사용하는 부분도 내 프로그램과 호환이 잘 되도록 사용할 필요가 있다.

경계(혹은 경계 인터페이스)란 구현된 클래스 중 외부 API나 다른 클래스에서 사용하면서 그 내부 구조가 바뀌어 시스템 전체에 영향을 미칠 수 있는 부분을 말한다.


내 코드 돌아보기

AndroidStudio의 RecyclerView에서 Glide라는 외부 API를 활용해 그림을 불러오는 코드

 

  1. 학습 테스트의 부재
    • 외부 API를 가져오면서 단순히 메서드에 대해서만 조사를 하고 그대로 사용했다.
    • 외부 API에 대한 어떠한 학습 테스트도 거치지 않았으므로 이에 대한 높은 이해를 바탕으로 사용할 수 없고, 이후 Glide라는 패키지가 업데이트될 경우 변경사항에 대해 무방비하다.
  2. 감싸기 기법의 부재
    • 외부 API를 그대로 불러와서 사용했다.
    • 이 API를 다루는 하나의 새로운 클래스를 만들어서 사용했다면 이후 이 API에서 발생되는 오류나 문제점, 수정사항 등을 한번에 처리하기 편했을 것이다. (물론 위에서는 static 메서드를 사용했으나, static 메서드가 아닌 Glide 객체의 메서드를 사용했다고 가정하자)

고친 코드

외부 API 사용을 위한 하나의 클래스르 만들고, 외부 API에 대한 모든 조작은 이 클래스가 담당한다.

지금은 간단히 외부 함수 하나를 내 커스텀 함수로 감쌌지만, 이후 이에 대한 예외처리나 내부 로직을 이용한 더 복잡한 처리도 가능할 것이다.


포인트

1. 학습 테스트

2. 감싸기 기법

3.  ADAPTER 패턴 (GOF)


느낀점

외부 API는 필요할 때마다 그때 그때 가져다 쓰는 편리한 도구로만 생각했는데, 프로그램의 안정성을 위해서는 한번쯤 고민하고 써야 한다는 것을 느꼈다.

또한 내 코드 안에서도 얼마든지 꼬일 수 있으므로, 감싸기 기법을 항상 유용하게 사용할 수 있도록 노력해야 겠다.

GOF에 대한 정리도 한번쯤 하면 좋을 것 같다.

'Study > CleanCode' 카테고리의 다른 글

Clean Code - 클래스  (0) 2021.03.04
Clean Code - 단위 테스트  (0) 2021.03.03
Clean Code - 객체와 자료구조  (0) 2021.02.21
Clean Code - 형식 맞추기  (0) 2021.02.19
Clean Code - 함수  (0) 2021.02.09
Comments