Slide 1

Slide 1 text

보일러플레이트 코드가 진짜 나쁜 건가요? Korea Android Gaeun Lee Hey! Ratel super.init(version=6)

Slide 2

Slide 2 text

DRY Don't repeat yourself The DRY principle is a software development concept aimed at reducing repetition of information “Don't Repeat Yourself의 약자로 정보의 반복을 줄이는 것을 목표로 하는 소프트웨어 개발의 원칙”

Slide 3

Slide 3 text

WET Write Everything Twice The WET law is a software development concept aimed at intentionally duplicating code when necessary to enhance clarity, maintainability, and flexibility. “명확성, 유지보수성, 그리고 유연성을 향상시키기 위해 필요한 경우 의도적으로 코드를 중복 작성하는 것을 목표로 하는 소프트웨어 개발 원칙”

Slide 4

Slide 4 text

DRY vs WET Korea Android super.init(version=6)

Slide 5

Slide 5 text

WET? DRY?

Slide 6

Slide 6 text

DRY 각 원칙에서 말하는 상황은 서로 다릅니다 WET 비즈니스 or 개념적 반복 구조적 or 언어적 중복

Slide 7

Slide 7 text

DRY WET Write Everything Twice 비즈니스 or 개념적 반복 WET 구조적 or 언어적 중복 중복되는 코드는 서로 다른 비즈니스 로직에서 같은 모습의 코드를 가지는 것이기 때문에 변경되어야 하는 이유가 서로 다릅니다.

Slide 8

Slide 8 text

같아 보이지만 다른 로직 Korea Android super.init(version=6)

Slide 9

Slide 9 text

나의 명함 다른 사람의 명함 김토끼 나이: 5살 연락처: rabbit@gmail.com 주소: 달나라 김토끼 나이: 5살 연락처: rabbit@gmail.com 주소: 달나라

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

나의 명함 다른 사람의 명함 김토끼 팔로워 2 | 팔로우 8 나이: 5살 연락처: rabbit@gmail.com 주소: 달나라 김토끼 팔로워 2 | 팔로우 8 나이: 5살 연락처: rabbit@gmail.com 주소: 달나라 팔로우

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

나의 명함 다른 사람의 명함 김토끼 팔로워 2 | 팔로우 8 나이: 5살 비공개 연락처: rabbit@gmail.com 공개 주소: 달나라 비공개 김토끼 팔로워 2 | 팔로우 8 연락처: rabbit@gmail.com 팔로우

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

나 다른 사람 김토끼 팔로워 2 | 팔로우 8 나이: 5살 비공개 연락처: rabbit@gmail.com 공개 주소: 달나라 비공개 김토끼 팔로워 2 | 팔로우 8 연락처: rabbit@gmail.com 팔로우 단체 토끼즈 팔로워 11 | 팔로우 5 rabbits_official@gmail.com 팔로우

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

그럼 안 묶는게 좋은 거구나!

Slide 21

Slide 21 text

그럼 안 묶는게 좋은 거구나!

Slide 22

Slide 22 text

토의 자료 Korea Android super.init(version=6)

Slide 23

Slide 23 text

404는 무엇을 의미할까요 네트워크 에러 핸들링 예시 - query param에 해당하는 값이 없습니다. - 잘못된 주소로 요청했습니다. - 해당 주소에 값이 아직 등록되지 않았습니다. - 이 값에 접근할 권한이 없습니다.

Slide 24

Slide 24 text

“없음”의 의미를 어떻게 전달할까 네트워크 에러 핸들링 예시 - 404 Not Found - 204 No Content - Null - Empty list

Slide 25

Slide 25 text

Null은 무엇을 의미할까요 네트워크 에러 핸들링 예시 - 값이 아직 등록되지 않았습니다. - 기획의 변경으로 인해 불가피하게 생긴 값 - 값에 대한 접근 권한이 없습니다. - 개발자가 정의하지 못한 상태값

Slide 26

Slide 26 text

UI 레이어? 도메인 레이어? 비밀번호 검증 로직 - 영어, 숫자, 특수문자 모두가 들어가는 비밀번호를 입력해야 합니다. - 유효하지 않은 비밀번호를 입력하면, 유효하지 않은 사유를 UI에 띄웁니다.

Slide 27

Slide 27 text

같은 로직이라도 사람마다 보는 관점이 다양하며 서로 다른 비즈니스 로직을 가질 수 있습니다.

Slide 28

Slide 28 text

어떤 선택을 해야할까요 Korea Android super.init(version=6)

Slide 29

Slide 29 text

DRY WET DRY & WET 특징 - 코드 가독성 증가 - 유지보수 용이 - 번거로운 수정 작업 - 유연한 코드 수정 가능 - 초기 설계 부담 감소 - 폭발적인 코드량 증가

Slide 30

Slide 30 text

선택 시 고려할 점 - 기획이 안정화 되었는가 - 도메인을 충분히 이했는가 - 다른 기획 시나리오에서도 유연하게 대처할 수 있는가 - 변경했을 경우, 다른 로직에 얼마나 영향을 주는가 - 다른 파트와의 확실하고 명확한 소통이 필요한가 01

Slide 31

Slide 31 text

선택 시 고려할 점 02 비즈니스 or 개념적 반복 구조적 or 언어적 중복

Slide 32

Slide 32 text

결론

Slide 33

Slide 33 text

정답은 없습니다! 상황과 문맥을 충분히 파악하고 최선의 방안을 찾아야 합니다