inflearn logo
강의

講義

知識共有

あなたを一緒に働きたい開発者にしてくれるクリーンコードの書き方

その他、良いコードを書くためのTip6

이해가 안되는 부분이 있어서 질문드립니다.

311

Tomi

投稿した質問数 2

1

안녕하세요 좋은 강의 잘 듣고 있습니다!

제가 지식이 얕아서 아래와 같은 말을 이해 할 수가 없었던 부분이 있어 질문드립니다.

"로우 레벨 클래스를 사용할 때는 Don’t reinvent the wheel을 꼭 기억하세요."

로우 레벨 클래스는 하이 레벨 클래스를 도와주는 클래스들 이네요. 근데 로우 레벨 클래스를 사용하는데 있어서 이미 개발된 기능을 다시 만드는 데 시간을 쓰지 말라는 말씀의 의도를 파악을 하지 못했습니다.

바쁘신 와중에 죄송하지만 확인 부탁드립니다.

refactoring

回答 1

0

seunghx3368

아닙니다 :) 

충분히 오해하실만합니다. 

이게 사실,

코드의 추상화 수준을 일관성있게 하라는 소주제에 넣었다가 

소주제 'Don't reinvent the wheel'로 변경하게 된 케이스인데요, 

Don't reinvent the wheel과도 연관이 있고

추상화 수준 관련 내용이 먼저 나와 이해에 어려움이 없을 것이라고 생각했네요.

자바 언어에서, System.out.println() 이라는 (표준 출력)메서드의 코드를 예로들어 답변 드려보겠습니다.

위 메서드의 코드를 보니 print(), newLine() 등이 메서드를 사용하고 있네요.

print() 메서드 코드도 한 번 봐보겠습니다.

print() 메서드는 write()라는 보다 저수준 메서드를 호출하고 있네요

더 들어가보니까 flush(), flushBuffer() 같은 메서드 호출 코드가 보입니다.

이 정도로 추적을 끝내고 답변 드려보겠습니다.

 flush(), flushBuffer() 같은 메서드 이름만봐도 System.out.println() 와 그 추상화 수준이 다른 것을 바로 알 수 있을 거에요

만약 이렇게 서로 다른 추상화 수준의 코드가 혼재되어 있다,

그러면 (저수준 기능으로 구현된)이미 만들어진 기능이 있는 것은 아닌지 생각해보라는 의미입니다 :)

뷰 관련해서 질문이 있습니닷

1

397

1

안녕하세요

1

435

1

DB 값 질문

1

465

1

spring boot3에서 kotlin 사용할때 jdk 버젼 선택

1

2261

1

v1/ v2 v1은 실행이 잘되는데 v2는 실행이 안됩니다!

2

504

1

수업내용을 개인 블로그에 정리하여 게시해도 될까요?

1

646

2

library-app-complete 코드 실행방법

1

528

1

필드를 감추는 것이 중요한 이유?

0

568

1

안녕하세요!

0

268

1

자바 Private 관련 문의

1

306

1

예시코드 누락

1

409

2

질문드립니다

1

255

1

질문있습니다.

1

276

2

정적 팩토리 메서드 강의 보고 질문드립니다.

1

284

1

좋은 naming이란에서

1

387

1

그 밖의 좋은 코드 작성을 위한 Tip2 에서..

1

297

2

안녕하세요. 이해가 안되는 부분이 있습니다.

1

254

1

그밖의 좋은 코드 작성을 위한 Tip3: 오타 제보

1

279

2

그밖의 좋은 코드 작성을 위한 Tip2: 오타 제보

1

274

2

그냥 지나가려 했는데 뭐가 자꾸 보이네요..

2

230

1

그밖의 좋은 코드 작성을 위한 Tip2 : Tell, Don't ask 설명이 누락된 것 같습니다

1

295

3

그밖의 좋은 코드 작성을 위한 Tip2 오타 있는것 같습니다.

1

179

1

안녕하세요 강의 자료관련해서 질문드립니다.

1

198

2

pdf 교재 제공

1

173

1