Recommended
PPS
PPT
Coding Standards & Best Practices for iOS/C#
PPTX
PPTX
PPTX
C# coding standards, good programming principles & refactoring
PPTX
PPTX
PPTX
PPTX
PPTX
Unit testing & TDD concepts with best practice guidelines.
PDF
C# conventions & good practices
PDF
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022
PDF
Test Driven Development (TDD)
PPTX
Clean Code - The Next Chapter
PDF
Introduction to JADE (Java Agent DEvelopment) Framework
PPTX
Refactoring legacy code driven by tests - ENG
PPTX
PDF
DOCX
Mongoose getting started-Mongo Db with Node js
PDF
PDF
An Introduction to Test Driven Development
PDF
PPTX
PPTX
PPTX
Domain Driven Design Introduction
PDF
PPT
PDF
PPTX
2015 나는 프로그래머다 컨퍼런스 (11) 염산악 - 가독성에 대하여
PPTX
More Related Content
PPS
PPT
Coding Standards & Best Practices for iOS/C#
PPTX
PPTX
PPTX
C# coding standards, good programming principles & refactoring
PPTX
PPTX
PPTX
What's hot
PPTX
PPTX
Unit testing & TDD concepts with best practice guidelines.
PDF
C# conventions & good practices
PDF
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022
PDF
Test Driven Development (TDD)
PPTX
Clean Code - The Next Chapter
PDF
Introduction to JADE (Java Agent DEvelopment) Framework
PPTX
Refactoring legacy code driven by tests - ENG
PPTX
PDF
DOCX
Mongoose getting started-Mongo Db with Node js
PDF
PDF
An Introduction to Test Driven Development
PDF
PPTX
PPTX
PPTX
Domain Driven Design Introduction
PDF
PPT
PDF
Similar to 리팩토링
PPTX
2015 나는 프로그래머다 컨퍼런스 (11) 염산악 - 가독성에 대하여
PPTX
PPTX
깨끗한 코드 (클린 코드, Clean Code)
PPTX
Code complete chapter 19, 20 organize
PPTX
Refactoring Tutorial 1주차[ Refactoring 개요]
PPTX
Refactoring Tutorial 1주차[ Refactoring 개요]
PPTX
PPTX
Refactoring tutorial 1주차[refactoring 개요]
PDF
The Introduction to Refactoring
PDF
PDF
PPTX
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규
PDF
PPT
PDF
Javascript refactoring workshop
PDF
읽기 좋은 코드가 좋은코드다
PDF
TDD&Refactoring Day 01: Refactoring
PDF
The art of readable code ch4 ch8
PDF
PPTX
More from Wonjun Hwang
PPTX
20260130_연결에서 상호운용성까지 디바이스 네트워킹의 진화.pptx
PDF
Kit-Works Team Study_20260130_Feature-Sliced Design_유현주.pdf
PDF
Kit-Works Team Study_20260126_EyeDropper,Share api.pdf
PDF
Kit-Works Team Study_20260123_레디스_김경수.pdf
PDF
Kit-Works Team Study_20260116_업무효율을 조금 늘려줄지도 모르는 생체 최적화전략.pdf
PPTX
Kit-Works Team Study_20260116_Headless UI_ 효율적인 UI 개발을 위한 ᄌ.pptx
PDF
Kit-Works Team Study_20260109_Gossip-Protocol-2.pdf
PPTX
20260103_Kit-Works Team Study_visitor 진화.pptx
PPTX
20260103_Kit-Works Team Study_나노바나나.pptx
PDF
20251212_Kit-Works Team Study_COCOS CREATOR.pdf
PPTX
20251212_Kit-Works Team Study_RDBMS 내부와 유지보수 전략.pptx
PPTX
20251205_Kit-Works Team Study_IaC_팀스터디.pptx
PPTX
20251205_Kit-Works Team Study_서버드리븐UI.pptx
PPTX
20251128_Kit-Works Team Study_binding.pptx
PDF
Kit-Works Team Study_Processor-Memory Gap & Project Valhalla.pdf
PDF
20251121_Kit-Works Team Study_토스 컨퍼런스.pdf
PDF
책 리뷰 - 주니어 백엔드 개발자가 반드시 알아야 할 실무 지식 .pdf
PDF
Kit-Works Team Study_우아콘 2025_20251114.pdf
PDF
Kit-Works Team Study_AI의 농담은 왜 재미가 없을까.pdf
PPTX
Kit-Works Team Study_EcmaScript 2025.pptx
리팩토링 1. 2. “컴퓨터가 이해할 수 있는 코드는 어느 바보나 다 짤 수 있다.
좋은 프로그래머는 사람이 이해할 수 있는 코드를 짠다.”
- 마틴 파울러( Martin Fowler)
3. 4. 리펙토링을 해야하는 이유 Why?
소프트웨어 설계가 좋아진다.
=> 소프트웨어를 이해하기 쉬워진다.
=> 버그를 쉽게 찾을 수 있다.
프로그래밍 속도를 높일 수 있다.
대부분 개발보다 분석하는데 시간을 많이 투자함.
5. 6. 저는 이렇습니다.
• 전날 본인이 개발한 코드도 갸우뚱거림
• 남에게 코드 설명하기 힘들다.
• 기능 추가 및 수정할 때 생각하기 싫다 (머리 싸매고)
코드에 자신을 얽매이게 하지마
7. 8. 9. 10. 소프트웨어 설계의 원칙
• 구현에 드는 수고보다 유지 보수에 드는 수고를 줄이는 게 더 중요
• 유지 보수에 드는 수고는 시스템 복잡성에 비례
참고도서: 심플소프트웨어 (맥스 카넷-알렉산더 지음)
11. 언제 해야할까? 리펙토링
1. 기능을 새로 추가하기 직전
2. 코드를 이해하기 어려울 때
3. 불필요한 코드를 발견 했을 때
4. 코드 리뷰
읽기 힘들다
복잡하다
12. 13. 14. 복잡성의 단서
• 약간의 꼼수를 써야만 코드가 잘 작동한다.
• 다른 개발자들이 코드 작동 방식을 계속 물어본다.
• 다른 개발자들이 코드를 잘못 사용해 버그가 계속 발생한다.
• 그 코드를 수정할 생각을 하면 두렵다.
• 관리자가 업무 하나에 여러 개발자를 붙이려 한다.
• 기능 추가 방법을 알아내기 어렵다.
• 그 코드에 어떤 사항을 구현하는 방법을 두고 자주 논쟁한다.
참고도서: 심플소프트웨어 (맥스 카넷-알렉산더 지음)
15. 16. 17. 19. 20. 22. 네이밍
가장 적절한 명칭이 뭘까? 고민을 해야한다.
변수, 상수, 함수, 클래스, enum등
명칭에 대해 주석을 다는 것 =>
스스로가 부정확함을 알고 있다는 것
(예외. 특정 업무 용어, 영어 해석이 다의어가 되는 경우 등등)
23. 24. 25. 네이밍을 잘 지켜야 할까?
컨벤션을 지키는 이유
lint를 써서 코드 규격을 하는 이유
결국, 가독성과 소통
쉽게 읽고, 다른 개발자와 소통하기 위함
26. 27. 28. 중첩 if 자제 합시다.
• 중첩 if 를 남용한 순간,
• If 키워드 하나 당 적어도 2배 이상 복잡도가 증가
29. 코드가 상태에 의존되게 하지마
• If 블록을 나눌 수 있는지
• 저는 상태 분기점(if)는 두 개만 중첩되도 과하다고 생각합니다.
30. 31. 32. 33. 34. 조건문 내 상태는 간결하게
Enum 값은 명시 및 관리 해줍시다.
BAD CASE GOOD CASE
35. 36. for
• For loop 쓰지마…
• Index 관리
For(let I = 0; I < n; i++) {
console.log(list[i])
}
list 내 몇 번째 값을 어쩌구…
List.forEach(item => {
console.log(item)
})
37. 38. For 대신 다른 함수는 속도 이슈가 있다??
속도가 느리다는 핑계 =>
그 정도의 많은 데이터를 어플리케이션에서 루프를 돌면서 다루는
거 자체가 문제임
JS는 예외. 속도가 크게 차이가 안 남.
개발자들이 하도 그렇게 쓰니까
V8엔진에서 자체 최적화를 해버림…
39. JS 개발자면 mdn에 자주 들어갑시다
https://developer.mozilla.org/ko/docs/Web/JavaScript
40. 41. 42. 43. 44. 45. [토론]중복된 코드 제거가 무조건
정답일까?
https://github.com/qkraudghgh/clean-code-javascript-ko#중복
된-코드를-작성하지-마세요
46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 59. 60.