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. 리팩토링 카탈로그: 리팩토링 기법의 종류와 적용 방법 탐색하기