Skip to content

Commit 8b3bfa6

Browse files
committed
feat: 중간작성안 업뎃
1 parent 1c2a2a0 commit 8b3bfa6

File tree

3 files changed

+60
-0
lines changed

3 files changed

+60
-0
lines changed
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
---
2+
title: '파이썬으로 살펴보는 디자인 패턴과 리팩터링'
3+
date: "2025-01-19T18:57:0140.000Z"
4+
template: "post"
5+
draft: false
6+
slug: "/devlog/python/2025-01-19-refactoring-and-design-pattern"
7+
category: "devlog"
8+
tags:
9+
- "python"
10+
- "geultto"
11+
description: '파이썬으로 디자인 패턴과 리팩터링 2판을 읽는 스터디를 시작했습니다. 이를 통해 배운 점을 공유드립니다.'
12+
socialImage: { "publicURL": "./media/sangdo-dong.jpg" }
13+
---
14+
15+
이 글은 글또 10기에서 모집된 디자인 패턴 스터디와, 외부 모임에서 리팩터링 2판 스터디를 따라하면 배운 점을 회고하는 글입니다.
16+
17+
코드 및 해당 내용의 상세한 부분은 아래 경로를 참조 부탁드립니다.
18+
19+
- [GoF의 디자인 패턴](https://github.com/s3ich4n/geultto10_gof)
20+
- [리팩터링 2판](https://github.com/s3ich4n/refactoring-2nd)
21+
22+
# 들어가며
23+
24+
좋은 코드에 대해 좋은 코드는 어떤 무언가 굉장히 고상하고 완성된 코드라는 환상이 있었습니다. 놀랍게도 그런 코드를 만드는 책을 살펴보자 이는 마치 백조처럼 생존을 위해 허덕이는 발버둥의 연속이었다는 걸[^1] 알게 되었습니다.
25+
26+
<img src="https://images.unsplash.com/photo-1588485256313-f021c74731f1" alt="??: 달리 그렇지도 않다는데요!?ㅋㅋ" style="width:60%; height:60%;">
27+
28+
그렇다면 효율적으로 프로젝트를 순항하기 위한 건강한 방안을 살펴봅시다.
29+
30+
## 건강한 코드베이스를 위해
31+
32+
건강한 코드베이스를 위해 어떤 것들이 필요할까요? 우선 마틴 파울러의 유명한 영상[^2]을 가지고 이야기 해보고자 합니다.
33+
34+
### 리팩터링의 중요성
35+
36+
이는 "리팩터링의 중요성" 에 대한 내용이지요. 2014년 7월(영상 업로드 기준) 당시에만 해도 코드베이스의 높은 품질을 유지하기 위해 핵심기술로 자리잡았습니다. 그렇지만 저는 그러한 리팩터링의 워크플로우를 아직 이해하지 못하기도 했지요.
37+
38+
결국 리팩터링의 핵심은 지난 몇년의 실전경험에서 배웠던 것입니다.
39+
40+
> 돌아가는 소프트웨어가 제 1순위다.
41+
42+
그렇다고 해서 돌아만 가면 될까요? 우리의 소프트웨어는 고객에게 유의미한 가치를 계속 주길 원합니다. 그렇다면 계속해서 복잡함이 추가될 수 밖에 없습니다. 손님이 원하는 프로그램은 자꾸만 바뀔테니까요.
43+
44+
### 디자인 패턴의 중요성
45+
46+
디자인 패턴은 물론 다른 쪽에 주안점을 둡니다. 객체지향 소프트웨어 설계는 근본적으로 힘듭니다. 이를 재사용 가능하게 설계하는 것도 마찬가지지요. 그리고 처음부터 제대로 설계하는 것은 저는 그냥 불가능하다고 봅니다. 경험있는 사람들도 손사래를 치는데, 하물며 업계 전반에서는 오죽할까요.
47+
48+
그래서 경험있는 설계자들은 이를 위해 이전에 좋았던 해결책을 "패턴화" 했습니다. 이럴 때 이게 맞을까? 하는 설계에 주안점을 두고 계속 살펴봅니다. 본문에서 설명하겠지만, 각 패턴이 쓰일 상황을 이해하고, 이를 해결하고, 완성품은 어떤 결과이며 이에 따른 트레이드오프는 무엇인지 알아봅니다.
49+
50+
[^1]: [실상은 전혀 그렇지 않다네요!?](https://www.seoul.co.kr/news/society/education-news/2011/06/14/20110614500001)
51+
[^2]: https://www.youtube.com/watch?v=mNPpfB8JSIU
148 KB
Loading

content/retrospect/2024-12-22---2024-retrospect/index.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,15 @@ socialImage: { "publicURL": "./media/under_construction.jpg" }
8181

8282
이것이 올해 배운 가장 중요한 요소입니다.
8383

84+
## 해왔던 것들 - 읽은 책
85+
86+
올해는 개발도서의 비중이 유독 높았던 것 같습니다. 그 외 도서들은 생각보다 많이 읽지 않았네요.
87+
88+
### 개발도서
89+
90+
- 단위 테스트
91+
-
92+
8493
# Look back
8594

8695
오늘까지 총 `1141`번의 커밋을 했습니다. 이슈 뿐 아니라 PR리뷰, 그리고 실제 커밋 등을 다 해낸 결과입니다.

0 commit comments

Comments
 (0)