웹 개발/클린코드
-
-
-
[클린코드] 8. 경계 - 요약 및 인사이트웹 개발/클린코드 2022. 4. 24. 12:11
인사이트 정리 외부 라이브러리에도 버그가 있다는 것, 외부 라이브러리에 의존한다면 인터페이스가 바꼈거나 버전이 바꼈을 때 우리 코드와 호환되리라는 보장이 없다는 것에 매우 공감하면서 읽은 챕터였다. 이와 관련해 한 가지 경험이 떠올랐는데, 회사 프로젝트를 개발할 때 사용하던 momentjs가 업데이트가 중단되면서 dayjs로 교체하는 과정이였다. dayjs를 모듈화 하지 않고 반환값으로 사용했기 때문에 교체하는데 많은 시간이 걸렸다. 이런 불편함으로 따로 util 함수를 만들어 라이브러리를 노출되지 않도록 했는데 이런 경험으로 외부 라이브러리에 너무 의존하면 안된다는 것을 깨달았다. 학습 케이스라는 개념도 배웠으니 앞으로 외부 라이브러리를 쓸 때 적용해봐야겠다는 생각을 할 수 있게 되었다. 요약 시스템에..
-
[클린코드] 7. 오류 처리 - 요약 및 인사이트웹 개발/클린코드 2022. 4. 18. 21:53
인사이트 정리 어려워서 두 번정도 꼼꼼히 읽은 챕터이다. axios로 api를 호출할 때 api 하나당 try catch 하나로 일관되게 오류를 처리해왔는데 지금의 방식이 책에서 말하는 감싸기 기법이나 특수 사례 객체를 사용하고 있는건지, 더 나은 방법은 무엇인지 답을 내리기가 어려웠다. 오류처리를 프로그램 논리와 분리해야하는 것은 알겠는데.. 객체지향 프로그래밍을 공부해야하는 것일까! 요약 깨끗한 코드와 오류 처리는 확실히 연관성이 있다. 오류처리는 중요하다. 하지만 오류처리로 인해 프로그램 논리를 이해하기 어려워진다면 깨끗한 코드라 부르기 어렵다. 1. 오류 코드보다 예외를 사용하라 - 오류 플래그를 설정하거나 오류 코드를 반환하는 방법은 호출자 코드가 복잡해진다. 함수를 호출한 즉시 오류를 확인하는..
-
[클린코드] 6. 객체와 자료구조 - 요약 및 인사이트웹 개발/클린코드 2022. 4. 17. 15:47
인사이트 정리 요즘 타입스크립트를 공부하기 때문에 더 찔리는(..ㅎ) 챕터였다. 여태까지는 자료구조와 객체, 절차적인 클래스와 객체지향적인 클래스를 고려하지 않고 개발했던 것 같다. 과거를 되돌아볼 때 flutter에서 provider를 사용할 때는 빈 구조의 자료 구조체를 사용했던 것 같고, 타입 스크립트에서는 객체지향적인 클래스를 사용해보려고 한 것 같다. 이유를 묻는다면,, 코드 예시에서 그렇게 사용했기 때문에.,,? 하지만 이번 공부를 통해, 언어마다 정답이 있거나 예시에 있다고 냅다 따라 쓰는 것이 아니라 시스템의 확장성을 고려하여 자료구조와 객체 중 최적의 방법을 선택해야한다는 것을 알게 되었다. 6장까지 읽으면서 느끼는 건, 클린 코드를 만드는 정답이 따로 있는 것이 아니라, 개발자가 협업과..
-
[클린코드] 5. 형식 맞추기 - 요약 및 인사이트웹 개발/클린코드 2022. 4. 10. 16:56
인사이트 정리 클린 코드를 읽고 코드를 짜다보니 더 좋은 코드를 짜고 싶어 머리를 싸매게 된다. 속도가 느려지는 것은 당연.. 이런 고민을 선배 개발자에게 나누니 좋은 코드인지 아닌지는 서비스를 유지보수하고 확장했을 때 명확해지니 너무 고민하지말고 먼저 코드를 짜고 리팩토링을 해보라고 이야기를 해주었다. 클린코드에서도 코드 형식이 너무 중요하기 때문에 맹목적으로 따르면 안된다고 하는 것을 보고 책의 내용에 내 코드를 맞추기보다는, 책의 개념들을 참고해 나(팀)만의 규칙으로 만드는 것이 중요한게 아닌가 하는 생각이 들었다. eslint나 prettier처럼 코드 스타일을 맞춰주는 도구들이 많은데 도구들에 의존하기 보다는 규칙들을 적용해 더 잘 활용해보아야겠다. 요약 프로그래머라면 형식을 깔끔하게 맞춰 코드..
-
[클린코드] 4. 주석 - 요약 및 인사이트웹 개발/클린코드 2022. 4. 7. 21:46
인사이트 정리 주석은 코드가 아니라고 생각해서 대충 입력하고 남겨두는 경우가 많았는데, 나같은 이런 개발자들이 많이 때문에 더욱이 주석을 사용하면 안된다는 것을 알게 되었다. 주석보다는 코드로 최대한 의미를 전달하도록 하고, 소스코드 관리 시스템로 형상관리를 해보자! 요약 - 우리는 코드로 의도를 표현하지 못해, 그러니까 실패를 만회하기 위해 주석을 사용한다. - 코드로 의도를 표현할 방법은 없을까? - 코드는 변화하고 진화한다. 주석이 언제나 코드를 따라가지는 않는다. - 부정확한 주석은 아예 없는 주석보다 훨씬 더 나쁘다. 1. 주석은 나쁜 코드를 보완하지 못한다. - 표현력이 풍부하고 깔끔하며 주석이 거의 없는 코드가, 복잡하고 어수선하며 주석이 많이 달린 코드보다 훨씬 좋다. 2. 코드로 의도를..
-
[클린코드] 3. 함수 - 요약 및 인사이트웹 개발/클린코드 2022. 4. 4. 22:43
인사이트 정리 처음부터 끝까지 반성하면서 봤던 파트이다. 함수의 개수를 적게 만들어야할지 함수의 길이를 적게 만들어야할지 고민이 많았는데, 다른 사람이 어떤 함수인지 바로 파악해서 고민 없이 쓸 수 있을만큼 함수를 최대한 작게 쪼개서 하나의 추상화 개념만 수행하도록 해야한다는 것을 배웠다. 함수의 규칙을 외우고 맞추기보다 다른 사람이 내가 짠 함수를 보았을 때 하나의 시나리오처럼 매끄럽게 읽히는지가 핵심이라는 것을 명심하기 ! 요약 어떤 프로그램이든 가장 기본적인 단위가 함수이다. 1) 작게 만들어라 - 함수를 만드는 첫째 규칙은 '작게'다. 함수를 만드는 둘째 규칙은 '더 작게'다.- 중첩구조가 생길만큼 함수가 커져서는 안 된다는 뜻이다. -> if문 , while 문에 들어가는 블록은 한 줄이어야 한..