안녕하세요!
About Me
2018. 11. 24. 12:16
리펙토링의 기술, 무엇이 무엇이 똑같을까.
2018. 11. 22. 22:04
서비스의 결제 로직을 담고 있는 3000 줄 짜리 코드를 헤집어가며 버그를 찾아내야 한다면? 아마 나라면 곳곳에 퍼져 있는 똑같은 일을 하고 있는 코드들을 함수화 하는 것 부터 시작할 것이다. 존재하는 코드를 함수로 감싸고, 원래 코드가 있던 자리를 함수 호출 하나로 대체하는 건 간단하다. 수정하기 전의 코드와 정확히 똑같이 동작할 것도 보장된다. 줄줄이 쌓인 코드를 3~4줄 짜리의 함수로 만들면 읽기도 나름 쉬워진다.
def func():
# do a
# do b
# do c
pass
def func_a():
pass # do a
def func_b():
pass # do b
def func_c():
pass # do c
def func():
func_a()
func_b()
func_c()
그러나 단순히 함수화로만 리펙토링이 끝나는 것은 아니다. 새로운 클래스를 생성하고, 로직을 캡슐화 해야 한다면? 새로운 클래스를 싱글턴으로 해야 할지 말아야 할지 고민하는 상황이라면? A 클래스를 상속하는 B 클래스에 새로이 생성자를 만들어주고 싶다면? 과연 이전과 똑같이 코드가 동작할 것을 보장할 수 있을까? 아리까리한 상황을 확실히 정리해 보자 한다.
개발환경 세팅
2018. 5. 25. 14:30
저는 다음과 같은 개발환경을 씁니다.
파이썬 (3) 다운로드: https://www.python.org/downloads/
파이참 다운로드: https://www.jetbrains.com/pycharm/download/#section=windows
대학생은 학교 이메일은 인증 받으면 1년 단위로 professional 버전을 사용할 수 있습니다. 1년짜리 학생 라이센스가 만기되면 다시 학교 이메일을 사용해서 갱신할 수 있습니다.
기본 프로젝트 만들기:
설치 완료 후에는
최신 파이참은 프로젝트 마다 가상환경을 자동으로 설치해 줍니다 (우왕 굳)