Academy Program

Home > > 전체교육일정

SW 개발

리펙토링으로 배우는 클린코드

교육일정
교육기간
1일
교육금액
400,000원(면세)
SW 개발전체일정보기 수강신청

교육개요

클린 코드의 기본 사항을 깊이 파고드는 우리 과정에 참여하여 코딩 습관을 날카롭게 만들어보세요. 이해하기 힘든 이름, 중복 코드, 긴 메서드와 같은 방해 요소를 인식하고 이러한 문제들을 개선하는 방법을 배우게 됩니다. 데이터 처리 최적화부터 지저분한 코드와 클래스의 구조 재정비에 이르기까지, 이 과정은 여러분이 소프트웨어에 생명력을 불어넣는 리팩토링 기법을 마스터할 수 있는 무대를 마련해줍니다. 지속 가능한 효율적인 코드를 작성하는 여정을 우리와 함께 시작하세요.



교육목표

이 과정을 통해 학습자는 클린 코드 원칙을 이해하고, 복잡한 코드를 더 읽기 쉽고 유지보수하기 쉬운 형태로 변환할 수 있는 능력을 배양합니다. 코드 스멜을 인식하고 수정하는 방법, 데이터 관리 최적화, 코드 구조 및 클래스 설계 개선을 중점적으로 학습합니다.



강의내용

[Chapter 1: 코드의 첫인상 개선하기]
· 학습 목표:
코드의 가독성을 해치는 요소를 식별하고 개선하는 방법을 배웁니다.
· 주요 내용:
1. 이해하기 힘든 이름: 함수 선언 변경, 변수 이름 바꾸기, 필드 이름 바꾸기
2. 중복 코드: 함수 추출하기, 코드 정리하기, 메소드 올리기
3. 긴 함수: 매개변수 객체 만들기, 객체 통째로 넘기기, 함수를 명령으로 바꾸기 등
4. 긴 매개변수 목록: 플래그 인수 제거, 여러 함수를 클래스로 묶기

[Chapter 2: 데이터 관리 최적화]
· 학습 목표:
데이터 관리를 개선하여 코드의 안정성과 유지보수성을 높입니다.
· 주요 내용:
1. 전역 데이터: 전역 변수 접근 제한하기, 캡슐화 적용하기
2. 가변 데이터: 불변성 적용, 상태 변경 추적하기
3. 뒤엉킨 변경: 관심사 분리, 모듈화 적용하기
4. 산탄총 수술: 기능별로 모듈 분리하기, 책임 할당 명확히 하기
5. 기능 편애: 기능의 적절한 위치 찾기, 응집도 높이기

[Chapter 3: 구조적 문제 해결하기]
· 학습 목표:
코드 구조의 문제를 해결하고, 유연하고 확장 가능한 설계로 개선합니다.
· 주요 내용:
1. 데이터 뭉치: 관련 데이터 묶기, 데이터 클래스 사용하기
2. 기본형 집착: 객체 지향적인 타입 적용하기, 기본형을 객체로 변환하기
3. 반복되는 switch문: 다형성 적용하기, 상태 패턴 적용하기
4. 반복문: 반복문을 컬렉션 연산으로 리팩토링하기, 고차 함수 활용하기
5. 성의없는 요소: 책임이 명확한 클래스와 메서드 정의하기

[Chapter 4: 클래스와 상속 관리]
· 학습 목표:
클래스와 상속을 적절히 사용하여 코드의 복잡성을 줄이고 명확성을 높입니다.
· 주요 내용:
1. 추측성 일반화: 실제 사용 사례에 맞게 클래스 계층 정리하기
2. 임시 필드: 클래스 일관성 강화하기, 선택적 속성 관리하기
3. 메시지 체인: 데메테르 법칙 적용하기, 중재자 패턴 사용하기
4. 중재자: 클래스 간의 직접적인 의존성 줄이기, 메시지 중재자 정의하기
5. 내부자 거래: 모듈 간 정보 은닉 강화, 의존성 관리하기

[Chapter 5: 크기와 상속 포기 문제]
· 학습 목표:
거대한 클래스를 쪼개고, 적절한 상속 구조를 만들어 코드를 개선합니다.
· 주요 내용:
1. 거대한 클래스: 클래스 분할하기, 책임 주도 설계 적용하기
2. 서로 다른 인터페이스의 대안 클래스들: 전략 패턴 적용, 인터페이스 분리 원칙 적용하기
3. 데이터 클래스: 데이터를 캡슐화하는 행동 중심 클래스 정의하기
4. 상속 포기: 구성 사용하기, 더 간단한 상속 체인 만들기

[Chapter 6: 주석과 리팩토링의 이해]
· 학습 목표:
주석의 올바른 사용법을 이해하고, 코드 자체의 명확성을 높여 주석에 의존하지 않는 방법을 배웁니다.
· 주요 내용:
1. 주석: 주석의 필요성과 적절한 사용 사례 학습하기
2. 리팩토링 카탈로그: 리팩토링 기법의 종류와 적용 방법 탐색하기