[주간 회고] 2023년 10월 4주

리팩토링 스터디 

3번째 리팩토링 스터디를 참여했다. 이번 주 스터디에서 기이한 이름일 때 이름 바꾸기에 대한 공부를 했다.

  • 리팩토링을 해야 하는 시점 : 켄트백은 이 시점은 냄새나는 시점이라고 말하고 있다.
  • 리팩토링은 원칙이 존재한다.
    • 이제껏 리팩토링은 개발자마다의 감으로 하는 것으로 생각했는데 리팩토링 책에서는 원칙이 존재하고, 원칙대로 해야 한다고 말하고 있다.
  • 리팩토링을 멈춰야 하는 시점은 개발자의 경험에 기반해야 한다.

 

기이한 이름일 때 리팩토링 원칙 
  • 함수 선언 바꾸기
    1. 함수 본문을 새 함수로 추출
    2. 기존 함수 본문에서 새 함수 호출
    3. 예전 함수 쓰는 부분을 새 함수로 호출하도록 수정
    4. 기존 함수 본문 호출하는 곳 없으면 삭제
  • 변수 이름 바꾸기
  • 필드 이름 바꾸기

 

안드로이드 앱 소스 코드 

이번 주에 프로젝트가 진행 중인 사이트에 앱이 있다는 사실을 알게 되었다. 웹에서는 작동이 되는 코드가 앱에서는 작동이 안 된다고 해서 앱 코드를 전달받았다. 안드로이드와 IOS 소스 코드를 받았는데 스위프트로 되어있는 IOS 소스코드는 패키지 구조부터 해서 모든 것이 낯설었다. 다행히 IOS 앱은 이상이 없다고 해서 안드로이드 소스 코드를 살펴보게 되었다. 

결론적으로 문제는 앱 소스 코드에 있지 않아서 잘 해결되었지만 이번 기회에 안드로이드 앱의 구조에 대해 간단한 공부를 하게 된 계기가 되었다.

 

인프런 더 자바, 코드를 조작하는 다양한 방법

백기선 개발자의 인프런 강의 시청을 완료했다. JVM, 리플렉션, 다이나믹 프록시, 애노테이션 프로세서에 대한 강의였는데 다 들은 후 작성한 코드의 흐름, 사용하고 있는 프레임워크, 라이브러리의 구현 방법에 대한 시야가 조금은 생긴 느낌이다.

실제로 리플렉션 API를 사용할 경우는 적겠지만, 작성한 코드가 머릿속에 그려지는 데에는 많은 도움이 될 것 같은 강의였다. 멘토님이 작성한 코드가 머릿속에서 어떻게 돌아가는지 상상이 되어야 한다고 했는데 아직까지 그 부분에서 부족한 점이 많다. 부족한 점을 보완하기 위해 스프링 프로젝트를 진행할 때 작성한 코드가 어떻게 돌아가는지 글로 정리해 보자.

 

Swallow Exception과 좋은 예외 처리

개발자 디스코드에 Swallow Exception이란 질문을 답하게 위해 구글링을 하다가 향로님의 좋은 예외 처리이라는 글을 찾았다.

레이어에 따른 예외처리와 null, -1 같은 값을 리턴하지 말고 예외는 예외로 처리하라는 부분이 인상적이었다. 현재 회사에서는 레거시 코드를 자주 볼 수 있는데 예외처리가 미흡한 부분이 많다. 해당 글을 읽으면서 좋은 예외처리가 어떤 것인지에 대한 가이드라인이 생겼다. 잘 참고해서 개발 시에 사용해보려고 한다.

 

마무리

 

사진: Unsplash 의 Fred Russo

주말에 올림픽 공원에 다녀왔다. 하늘이 맑고 날씨가 선선해서 가을이 왔구나라는 느낌을 받았다. 많은 사람들이 여유롭게 올림픽공원에서 각자의 휴식을 취하고 있었다. 올림픽공원을 걸으면서 이러한 풍경들을 보니 마음이 여유로워졌다. 개인적으로 1년 중 지금이 가장 좋은 날씨라고 생각한다. 이럴 때 많이 돌아다니면서 즐기자.