SlideShare a Scribd company logo
1 of 30
프로젝트 아스테라
✨ ✨
Contents 2
1
3
프로그래밍 패러다임
┃다양한 프로그래밍 패러다임 살펴보기
클린 코드
┃코드 리뷰를 위한 좋은 코딩 방법
Q&A
┃질의응답
1. 프로그래밍 패러다임
다양한 프로그래밍 패러다임 살펴보기
패러다임의 정의
패러다임(Paradigm)이란 한 시대 또는 순간의
사람들이 무엇인가를 바라보고 대하는 관점
함수형(≒선언형)
절차지향(≒명령형) 객체지향
객체지향 프로그래밍
현실 세계의 사물을 객체로써 모델링하는 패러다임이며,
사물의 특징만을 뽑아 추상화하는 과정을 거친다.
객체지향 프로그래밍의 4대 특성
1. 추상화 (Abstraction)
보편적인 특징만 뽑아내어
간단하게 만드는 작업
객체지향 프로그래밍의 4대 특성
2. 캡슐화 (Encapsulation)
외부에 공개하고 싶지 않은
특성(상태, 행위)들을 숨기는 작업
상태 = 멤버 변수
행위 = 메소드(멤버 함수)
객체지향 프로그래밍의 4대 특성
3. 상속 (Inheritance)
관계 있는 클래스를 부모로 삼아
내부의 특성들을 물려받는 것
객체지향 프로그래밍의 4대 특성
4. 다형성 (Polymorphism)
상황에 따라 다양한
형태를 가질 수 있는 성질
객체지향의 장점
- 사람의 관점에서 현실 세계를 모델링하기에 이해하기 쉽다.
- 객체 단위로 프로그래밍하기 때문에 재사용성, 유지보수하기 좋다.
객체지향의 단점
- 객체가 상태를 가지기 때문에, 예측하지 못해 버그가 발생할 수 있다.
함수형 프로그래밍
코드의 동작 과정을 중요시 하는 것이 아닌,
함수의 결과를 중요시 하는 프로그래밍 패러다임
⬆️ 결과만 정해놓으면 되므로 선언형이라 부르는 것
함수형 프로그래밍 = 순수 함수를 조합한 프로그래밍
1. 인자가 동일하면 항상 결과가 동일해야 한다.
2. 함수 내부에서 외부의 값 또는 인자를 변경해서는 안 된다.
불변성(Immutability)을 지킴으로써 개발자가 예측 가능한 코드 작성
f(g(x))
함수형의 장점
- 순수 함수를 조합해 사용하기 때문에 오류 발생이 낮다.
함수형의 단점
- 순수 함수를 작성하는 것은 쉽지만, 조합하는 것이 어렵다.
2. 클린 코드
코드 리뷰를 위한 좋은 코딩 방법
코드 리뷰는 코드 품질 향상과 개발자 성장을 목표로 하는 작업
그렇기 때문에 효과적인 코드 리뷰를 위해서는
좋은 코드를 작성해야 한다.
좋은 코드 = 클린 코드 (Clean Code)
✨
1. 리뷰할 코드는 최소한으로 제한
2. 기능이 완벽하게 구현되었을 때 PR
3. 컨벤션 & 가독성 > 코드 효율
4. 주석 최소화
5. 네이밍 활용
6. 예외처리 잘하기
7. 중첩 최소화
Q&A
Thank you

More Related Content

Similar to 21.11.08 ASTERA Study

TDD&Refactoring Day 01: Refactoring
TDD&Refactoring Day 01: RefactoringTDD&Refactoring Day 01: Refactoring
TDD&Refactoring Day 01: RefactoringSuwon Chae
 
자바 직렬화 (Java serialization)
자바 직렬화 (Java serialization)자바 직렬화 (Java serialization)
자바 직렬화 (Java serialization)중선 곽
 
프로그래밍 방식의 변천 과정
프로그래밍 방식의 변천 과정프로그래밍 방식의 변천 과정
프로그래밍 방식의 변천 과정중선 곽
 
How to use the Ruby programing language
How to use the Ruby programing languageHow to use the Ruby programing language
How to use the Ruby programing languageJaeYeoul Ahn
 
깨끗한 코드 (클린 코드, Clean Code)
깨끗한 코드 (클린 코드, Clean Code)깨끗한 코드 (클린 코드, Clean Code)
깨끗한 코드 (클린 코드, Clean Code)Jay Park
 
Devon 2011-b-5 효과적인 레거시 코드 다루기
Devon 2011-b-5 효과적인 레거시 코드 다루기Devon 2011-b-5 효과적인 레거시 코드 다루기
Devon 2011-b-5 효과적인 레거시 코드 다루기Daum DNA
 
클린 코드 part2
클린 코드 part2클린 코드 part2
클린 코드 part2Minseok Jang
 
TDD.JUnit.조금더.알기
TDD.JUnit.조금더.알기TDD.JUnit.조금더.알기
TDD.JUnit.조금더.알기Wonchang Song
 
2015 SW마에스트로 100+ 컨퍼런스_오픈스택 Swift로 시작하는 오픈소스 분석 삽질기
2015 SW마에스트로 100+ 컨퍼런스_오픈스택 Swift로 시작하는 오픈소스 분석 삽질기2015 SW마에스트로 100+ 컨퍼런스_오픈스택 Swift로 시작하는 오픈소스 분석 삽질기
2015 SW마에스트로 100+ 컨퍼런스_오픈스택 Swift로 시작하는 오픈소스 분석 삽질기2015 SW마에스트로 100+ 컨퍼런스
 
함수형 프로그래밍
함수형 프로그래밍함수형 프로그래밍
함수형 프로그래밍QooJuice
 
좌충우돌 ORM 개발기 2012 DAUM DEVON
좌충우돌 ORM 개발기 2012 DAUM DEVON좌충우돌 ORM 개발기 2012 DAUM DEVON
좌충우돌 ORM 개발기 2012 DAUM DEVONYounghan Kim
 
PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보
PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보
PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보Young Hoo Kim
 
DDD 구현기초 (거의 Final 버전)
DDD 구현기초 (거의 Final 버전)DDD 구현기초 (거의 Final 버전)
DDD 구현기초 (거의 Final 버전)beom kyun choi
 
DDD 그게 뭔데 (개념 찍먹편)
DDD 그게 뭔데 (개념 찍먹편)DDD 그게 뭔데 (개념 찍먹편)
DDD 그게 뭔데 (개념 찍먹편)명석 고
 
Patterns for effectviely documenting frameworks
Patterns for effectviely documenting frameworksPatterns for effectviely documenting frameworks
Patterns for effectviely documenting frameworksSunuk Park
 
좋은 개발자 되기
좋은 개발자 되기좋은 개발자 되기
좋은 개발자 되기Sunghyouk Bae
 
[강의] OOP 개요
[강의] OOP 개요[강의] OOP 개요
[강의] OOP 개요Nohyun Kee
 

Similar to 21.11.08 ASTERA Study (20)

TDD&Refactoring Day 01: Refactoring
TDD&Refactoring Day 01: RefactoringTDD&Refactoring Day 01: Refactoring
TDD&Refactoring Day 01: Refactoring
 
자바 직렬화 (Java serialization)
자바 직렬화 (Java serialization)자바 직렬화 (Java serialization)
자바 직렬화 (Java serialization)
 
프로그래밍 방식의 변천 과정
프로그래밍 방식의 변천 과정프로그래밍 방식의 변천 과정
프로그래밍 방식의 변천 과정
 
How to use the Ruby programing language
How to use the Ruby programing languageHow to use the Ruby programing language
How to use the Ruby programing language
 
깨끗한 코드 (클린 코드, Clean Code)
깨끗한 코드 (클린 코드, Clean Code)깨끗한 코드 (클린 코드, Clean Code)
깨끗한 코드 (클린 코드, Clean Code)
 
Devon 2011-b-5 효과적인 레거시 코드 다루기
Devon 2011-b-5 효과적인 레거시 코드 다루기Devon 2011-b-5 효과적인 레거시 코드 다루기
Devon 2011-b-5 효과적인 레거시 코드 다루기
 
클린 코드 part2
클린 코드 part2클린 코드 part2
클린 코드 part2
 
TDD.JUnit.조금더.알기
TDD.JUnit.조금더.알기TDD.JUnit.조금더.알기
TDD.JUnit.조금더.알기
 
2015 SW마에스트로 100+ 컨퍼런스_오픈스택 Swift로 시작하는 오픈소스 분석 삽질기
2015 SW마에스트로 100+ 컨퍼런스_오픈스택 Swift로 시작하는 오픈소스 분석 삽질기2015 SW마에스트로 100+ 컨퍼런스_오픈스택 Swift로 시작하는 오픈소스 분석 삽질기
2015 SW마에스트로 100+ 컨퍼런스_오픈스택 Swift로 시작하는 오픈소스 분석 삽질기
 
함수형 프로그래밍
함수형 프로그래밍함수형 프로그래밍
함수형 프로그래밍
 
좌충우돌 ORM 개발기 2012 DAUM DEVON
좌충우돌 ORM 개발기 2012 DAUM DEVON좌충우돌 ORM 개발기 2012 DAUM DEVON
좌충우돌 ORM 개발기 2012 DAUM DEVON
 
The Introduction to Refactoring
The Introduction to Refactoring The Introduction to Refactoring
The Introduction to Refactoring
 
PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보
PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보
PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보
 
DDD 구현기초 (거의 Final 버전)
DDD 구현기초 (거의 Final 버전)DDD 구현기초 (거의 Final 버전)
DDD 구현기초 (거의 Final 버전)
 
Design patterns
Design patternsDesign patterns
Design patterns
 
DDD 그게 뭔데 (개념 찍먹편)
DDD 그게 뭔데 (개념 찍먹편)DDD 그게 뭔데 (개념 찍먹편)
DDD 그게 뭔데 (개념 찍먹편)
 
Patterns for effectviely documenting frameworks
Patterns for effectviely documenting frameworksPatterns for effectviely documenting frameworks
Patterns for effectviely documenting frameworks
 
좋은 개발자 되기
좋은 개발자 되기좋은 개발자 되기
좋은 개발자 되기
 
[강의] OOP 개요
[강의] OOP 개요[강의] OOP 개요
[강의] OOP 개요
 
DDD 준비 서문래
DDD 준비 서문래DDD 준비 서문래
DDD 준비 서문래
 

21.11.08 ASTERA Study