티스토리 뷰

학교/졸업작품

코드 리팩토링

사탕맛커피 2011. 8. 30. 17:13

오늘은 새로운 기능 추가보다는 기존의 코드를 리팩토링 하였다.

기존의 코드가 Java의 탈을 쓴 C 스타일로 작성되어 있어서 중복되는 부분이 너무 많고, 보기에도 좋지 않았다.
특히 MySQL에 접근하는 부분들이 그러한데, 각 테이블마다 관리하는 클래스(ArticleTable, C2DMTable, PhotoTable)를 두고 이들이 관리하도록 바꾸었다.

그리고 LIMIT와 WHERE에서의 인덱스를 적절히 활용하여, 전체 테이블을 불러와서 작업하는 것이 아니라, 최대한 작게 불러온다. 나중에 튜플 수 가 무시무시하게 늘어나는 때를 대비해서이다.

클라이언트는 Preference Activity에서 작업 중인데, 다이얼로그 새로 띄워서 뭐 하려고 하면 작업이 상당히 어렵다. 새로 Activity를 만들어서 작업하고 돌아오는 쪽으로 해야겠다.

--------------------------------------------------------------------------------

3일째 리팩토링 중이다. 지금까지 작성해온 코드들이 일관성이 없어서 이를 통일하는 작업이 시간이 꽤 오래 걸리고 있다.

Activity에서 사용하는 Widget 변수들은 static 클래스 Widget를 생성해서 static멤버변수로 넣는다.

그리고 findviewById로 widget을 가져오는 initWidgets()와 이벤트 리스너를 정의하는registerEventListener()함수를 두었다.

클래스 파일들은 비슷한 분류들로 폴더를 생성해서 관리한다.

그리고 앞으로 PC에서 코딩 하는 것은 어려우므로 SVN서버를 로컬에서 구글 코드로 이전하였다.

재미로 보는 현재 프로젝트 규모:

코드 라인 수
클라이언트: 7000여 줄(Facebook SDK 제외)
서버: 1000여 줄

클래스 수
클라이언트
액티비티: 13개
어뎁터: 4개
MySQL Table관리:4개
지도 관련 클래스: 3개
일반 클래스: 7개
기타 및 미분류 : 6개

서버
클래스: 7개

생각보다 프로젝트가 너무 커진 것 같기도 하다. 대략 만줄 근처까지 도달하면 될 것 같기도 하다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함