[JavaScript] 리팩토링(refactoring)

2020. 12. 4. 18:49· 프로그래밍언어/JavaScript
목차
  1. 리팩토링(Refactoring)

리팩토링(Refactoring)

공장으로 다시 보낸다. 개선한다.

코딩을 하다보면 코드가 비효율적으로 작성된다. 그 때 코드의 효율성, 가독성을 높여서 유지보수 하기 편리하게 만들고 중복된 코드를 낮추는 방향으로 코드를 다시 개선하는 작업을 리팩토링이라고 한다.

리팩토링을 잘해야 복잡한 프로그램을 만들 때 좋은 프로그램으로 만들 수 있다.

 

조건문 리팩토링

    <input id="night_day" type="button" value="night" onclick="
    if(document.querySelector('#night_day').value === 'night'){
      document.querySelector('body').style.backgroundColor = 'black';
      document.querySelector('body').style.color = 'white';
      document.querySelector('#night_day').value = 'day';
    } else {
      document.querySelector('body').style.backgroundColor = 'white';
      document.querySelector('body').style.color = 'black';
      document.querySelector('#night_day').value = 'night';
    }
    ">

    <input id="night_day2" type="button" value="night" onclick="
    if(document.querySelector('#night_day2').value === 'night'){
      document.querySelector('body').style.backgroundColor = 'black';
      document.querySelector('body').style.color = 'white';
      document.querySelector('#night_day2').value = 'day';
    } else {
      document.querySelector('body').style.backgroundColor = 'white';
      document.querySelector('body').style.color = 'black';
      document.querySelector('#night_day2').value = 'night';
    }
    ">

문제점

1. 버튼을 추가로 넣을 때마다 ID값을 새로 만들어줘야 한다.

2. document.querySelector('body')가 중복으로 사용된다.

 

    <input type="button" value="night" onclick="
     var target = document.querySelector('body');
    if(this.value === 'night'){
      target.style.backgroundColor = 'black';
      target.style.color = 'white';
      this.value = 'day';
    } else {
      target.style.backgroundColor = 'white';
      target.style.color = 'black';
      this.value = 'night';
    }
    ">

    <input type="button" value="night" onclick="
     var target = document.querySelector('body');
    if(this.value === 'night'){
      target.style.backgroundColor = 'black';
      target.style.color = 'white';
      this.value = 'day';
    } else {
      target.style.backgroundColor = 'white';
      target.style.color = 'black';
      this.value = 'night';
    }
    ">

리팩토링

 

1. 자기자신을 가르키는 키워드인 this를 사용한다.

document.querySelector('#night_day') 부분을 this로 수정하고 #night_day를 삭제.

2. 변수를 사용해서 중복을 제거한다.

var target = document.querySelector('body'); 변수를 선언해주고, document.querySelector('body');를 변수명으로 수정해준다.

'프로그래밍언어 > JavaScript' 카테고리의 다른 글

[JavaScript] 함수(Function)  (0) 2020.12.08
[JavaScript] 배열과 반복문  (0) 2020.12.07
[JavaScript] JS 조건문  (0) 2020.12.04
[JavaScript] 이벤트 onclick  (0) 2020.12.03
[JavaScript] JavaScript 변수와 상수  (0) 2020.12.03
  1. 리팩토링(Refactoring)
'프로그래밍언어/JavaScript' 카테고리의 다른 글
  • [JavaScript] 함수(Function)
  • [JavaScript] 배열과 반복문
  • [JavaScript] JS 조건문
  • [JavaScript] 이벤트 onclick
개발원슝이
개발원슝이
꾸준히 개발공부를 합니다.
개발원슝이
꾸준히 개발슝이
개발원슝이
전체
오늘
어제
  • ALL (236)
    • 프로젝트 (34)
      • clone coding (19)
      • mini project (5)
      • Team project(with KIC) (10)
    • 문제 (37)
      • 백준 (7)
      • 프로그래머스 (14)
      • 정보처리기사실기 (16)
    • 설치 (9)
    • 개발 기초 (12)
    • 프로그래밍언어 (120)
      • HTML (16)
      • CSS (17)
      • JavaScript (18)
      • JAVA (13)
      • JSP (10)
      • Python (22)
      • C언어 (24)
    • 프레임워크 (6)
      • Spring (3)
      • Django (3)
    • DB (2)
      • MySQL (2)
    • AWS (1)
    • 오류 (2)
    • 이것저것 (6)
    • 전공자 개발 (2)
    • 비전공자 개발 (5)

블로그 메뉴

  • 네이버블로그(강의노트)
  • GitHub
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 인프런
  • javascript
  • 점프 투 파이썬
  • 홍정모교수님
  • 코딩테스트
  • 파이썬공부
  • 따배씨
  • 홍정모의 따라하며 배우는 C언어
  • 생활코딩
  • 백준

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
개발원슝이
[JavaScript] 리팩토링(refactoring)
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.