티스토리 뷰
리팩토링 이란?
나쁜 디자인의 코드를 좋은 디자인 코드로 변경하는 과정
리팩토링 상황 예시
1. 아래와 같은 getUserInfoFromServerA() 라는 함수를 작성
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | public void getUserInfoFromServerA(String userID) { new CustomAsyncTask().execute(userID, new CallBackListenerA() { @Override public void onSuccess(Result rst) { // Success Code } @Override public void onFailed(String failedMsg) { // Failed Code } }); } class CustomAsyncTask extend AsyncTask<.......... | cs |
작성당시 개발자는 이번 한번만 연결할 예정이니 작업중인 Class 에 Inner Class 로 선언 후 서버 주소를 하드코딩하여 유저정보를 얻어왔다.
2. 며칠 뒤 getUserFriendFromServerB() 라는 함수 작성
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | public void getUserFriendFromServerB(String userID) { new CustomAsyncTaskB().execute(userID, new CallBackListenerB() { @Override public void onSuccess(Result rst) { // Success Code } @Override public void onFailed(String failedMsg) { // Failed Code } }); } class CustomAsyncTaskB extend AsyncTask<.......... | cs |
3. 중복된 코드에 대한 의심이 들기 시작함
4. CustomAsyncTask 에 Server Info 를 인자로 넘기고 Result 값을 Generic type T 로 받아 각 Callback Listener 에서 변환후 이용
5. 코드 감량!!
위와 같은 과정을 거치는 것을 리팩토링이라고 함.
'Computer > ETC..' 카테고리의 다른 글
Github 용 ssh 생성 (for MAC) (0) | 2022.11.07 |
---|---|
영단어..모르는 영단어 다 적어놓고 출퇴근할때마다 보기 (0) | 2019.01.09 |
OS X) 맥용 텍스트 편집기 UTF-8 저장법 (0) | 2017.10.09 |
Turn (Relay) Server 를 이용할때의 Delay 현상 (0) | 2017.07.21 |
( 네트워크 ) OSI 7계층 (0) | 2017.07.21 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 배열
- Android
- 스위프트
- 서버
- 안드로이드
- node.js
- mysql
- Kotlin
- xcode
- IOS
- C언어
- Node
- 뉴스룸
- BBC 가쉽
- Phaser
- php
- 점유율
- CentOS
- nodejs
- 리눅스
- C
- 노드
- git hub
- 깃헙
- GIT
- 손석희
- linux
- Asterisk
- 앵커브리핑
- Swift
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함