코드 리팩토링 (1) - 확장성을 고려하여 개발하기

2023. 6. 22. 11:02개발 공부/리팩토링

확장성을 고려한 코드를 짜기

개발할 때 항상 확장성을 고려해야 유지보수 시 어려움을 겪지 않을 수 있다.

그런 의미에서 업무를 진행하면서 구성했던 부분들을 간단하게 정리하고자 한다.

다른 주니어 개발자 분들에게 도움이 되었으면 좋겠다.

 

일단 첫번째 주제는 정말 간단하지만, 놓치기 쉬운 부분으로 정리했다.

처음엔 단순한 조건이었지만, 분명 운영 쪽에서 추가 요청이 있을 것이야...........

 

요청사항:  계절이 SUMMER(여름) 일 경우에만 '따뜻하다'라는 문자열을 RETURN해줘

변경 전

const getWeather = () => {
	String season = '';		
	if (season === 'SUMMER' ) {
		 return '따뜻하다'
	}
}

 

몇 달 후...

 

- 추가 요청사항1 :  계절이 Spring(봄) 일 경우에도 '따뜻하다'라는 문자열을 RETURN해줘

const getWeather = () => {
	String season = '';		
	if (season === 'Summer' || season === 'Spring' ) {
		 return '따뜻하다'
	}
}

 

 

이렇게 추가 요청사항이 100번째가 되면 (그럴 가능성은 현저히 적지만,,)

위 코드로 진행하면 요청이 100개, 10개가 들어오면 계속 IF 조건을 추가해야하고, 혹시나 다른 개발자가 유지보수를 진행해야할 때에도 어떤 조건이 있는지 파악이 힘들 수 도 있다.

 

필자는 아래 코드로 리팩토링을 진행했고, 

유지 보수 시 가독성이 좋게 하기 위해 노력했다.

 

변경 후

 

변경 후 
const WEATHER_LIST = ['SUMMER'] 

const getWeather  = () => {
	String season = '';
	if(WEATHER_LIST.includes(season)) {
			return "따뜻하다"
	}
}

 

이렇게 하면 좋은점은,

 

몇 달 후...아래와 같이 요청이 들어왔을 때

 

- 추가 요청사항1 :  계절이 Spring(봄) 일 경우에도 '따뜻하다'라는 문자열을 RETURN해줘

const getWeather = () => {
	String season = '';		
	if (season === 'Summer' || season === 'Spring' ) {
		 return '따뜻하다'
	}
}

변경 후 코드로 진행하면, 아래와 같이 배열에 데이터 추가해주면 된다.

변경 후 
const WEATHER_LIST = ['Spring', 'Summer'] 

const getWeather  = () => {
	String season = '';
	if(WEATHER_LIST.includes(season)) {
			return "따뜻하다"
	}
}

요청사항이 10개, 100개가 들어와도 배열에 값만 추가해주면 되고, 다른 개발자가 유지보수할 때에도 조건을 추가하기 비교적 수월할 수 있다.

 

개발을 계속 하면서 어떻게 하면 더 효율적으로, 가독성있게 할 수 있을까? 라는 지속적인 고민이 필요한 것 같다..

 

다른 개발자 분들이 이해하기 쉬운 코드로 개발하는 것을 항상 소소한 목표로 개발하고 있다.

앞으로도 이런 소소한 리팩토링들을 정리하며 내 코드의 성장일기? 로 남기고 싶다