소개
안녕하세요.
저는 카카오에서 백엔드 개발자로 일하고 있는 클린 코더입니다.
평소 객체지향, 소프트웨어 공학, 클린코드, 리팩토링 같은 주제에 많은 관심을 갖고 고민해왔습니다. 이런 저의 고민과 실무에서 개발하며 경험한 지식을 제가 걸어왔던 길을 걷고 계시는 취업 준비생, 예비/신입 개발자 여러분과 공유하려고 합니다.
저의 지식이 여러분에게 작게나마 도움이 되길 바랍니다. :D
강의
전체 1수강평
- 당신을 함께 일하고 싶은 개발자로 만들어 줄 클린 코드 작성법
- 당신을 함께 일하고 싶은 개발자로 만들어 줄 클린 코드 작성법
- 당신을 함께 일하고 싶은 개발자로 만들어 줄 클린 코드 작성법
게시글
질문&답변
2024.01.13
예시코드 누락
안녕하세요 말씀 감사합니다 🙂 예시코드누락된곳 말씀해주시면 바로 개선해보겠습니다 :)
- 1
- 2
- 259
질문&답변
2023.11.27
이해가 잘 안됩니다.ㅠ
코드 길이가 매우 긴 함수: 길이가 긴 함수라는 것은 그만큼 하는일이 많고 변수도 많고 복잡하다는 뜻입니다. 코드를 보다가 이 변수는 어디서 선언된 변수지? 어떤 값으로 설정 변수였지? 하시면서 위아래로 스크롤을 계속하실텐데 그러다보면 기존에 코드를 어디까지 봤는지, 다른 변수는 어떤 값으로 설정되었는지 등등 혼란을 느끼게 됩니다 호출자 함수(내부 함수를 호출한 코드 라고 생각하시면 됩니다)로부터 너무 멀리 떨어져 있는 내부 함수가 코드 이해에 어렵다는 것은 내부 함수를 살펴본 후 다시 호출자 코드로 돌아가는 과정에 스크롤이 많을 수록 주의가 산만해지고 그만큼 코드이해가어렵다 라고 생각하시면 됩니다. ide 사용하면 호출자 코드로 바로 돌아갈수있지않느냐 할 수 있겠지만 호출된 내부 코드를 여러 곳에서 사용할경우 적절한 호출자 코드를 찾아 돌아가기가 쉽지 않은 경우들이 종종 있습니다.
- 0
- 2
- 310
질문&답변
2020.10.28
질문드립니다
안녕하세요 하령님 :) 조금 더 구체적으로 어느부분이 궁금하신지 알 수 았을까요??
- 1
- 1
- 166
질문&답변
2020.10.25
질문있습니다.
임시변수와 관련된 소주제에 다룬 내용이라고 보시면 되겠네요 :) 예로 보여주신 코드에서는 굳이 뭐가 더 나은지를 결정하고 싶지는 않습니다만 꼭 하나를 골라야한다면, 굳이 itemName 변수를 쓸 필요가 있나 싶습니다. (저런 임시 변수가 굳이 필요한 경우는 강의 내용에) 힌트>> item.getName()을 itemName이라는 변수로 표현한다고 더 가독성이 좋아진다고 볼 수 없겠습니다.
- 1
- 2
- 168
질문&답변
2020.10.25
이해가 안되는 부분이 있어서 질문드립니다.
아닙니다 :) 충분히 오해하실만합니다. 이게 사실, 코드의 추상화 수준을 일관성있게 하라는 소주제에 넣었다가 소주제 '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
- 1
- 202