본문 바로가기

better code9

Clean Code (5/n) 오늘 계속해서 Clean Code 책을 읽어서 마무리지어 보았다. 13. 동시성 동시성이라는 개념은 구현하기 어려운 개념인 것 같다. 사실 간단한 멀티 쓰레드 프로그램은 hands-on으로 쉽게 구현할 수 있지만, 임계 영역을 설정하고 동시 접근에 대한 깊이있는 고려를 한다면 그 자체가 하나의 연구 주제가 될 정도로 어렵다. 이 챕터에서는 동시성을 어떻게 깔끔하고 올바르게 구현할 수 있을지에 대해 설명하고 있다. 동시성은 꼭 필요한 상황에서만 사용해야 한다 일반적으로 생각했을 때, 동시성을 사용한다면 당연히 성능이 높아진다고 생각할 수 있다. 대기시간이 길어서 여러 스레드 간에 스위칭이 발생해도 괜찮거나, 프로세서가 동시에 처리할 독립적인 계산이 있을 때는 성능이 높아지는 것이 맞다. 하지만, 이는 운영.. 2022. 2. 21.
Clean Code (4/n) 계속해서 Clean Code 책을 읽어 내려갔다. 10. 클래스 자주 쓰이는 대부분의 프로그램이 객체지향적인 프로그램인 것을 감안해 보았을 때, 클래스를 적절하게 구성하고 객체지향적으로 작성하는 것은 상당히 중요하다고 할 수 있다. 하지만 이런 중요성에도 불구하고 소스코드를 보다보면 난잡한 메소드들로 구성된 매우 큰 클래스들을 흔하게 볼 수 있다. 좋은 클래스를 작성하려면 어떤 방법을 사용해야 할까? 클래스를 작게 유지해라 물론 메소드 수를 줄이는 것도 방법일 수 있지만, 단순히 메소드 수를 줄이라는 뜻만은 아니다. 최종적으로 추구하는 것은 클래스가 책임져야 하는 범위를 줄이라는 뜻이다. 그러기 위해서는 메소드를 작게 유지하는 것부터 시작하자. 메소드를 쪼개다 보면 다른 클래스로 분리될 수 있을 만한 지.. 2022. 2. 16.
Clean Code (3/n) 지난번에 이어서 계속해서 Clean Code 책을 읽고 정리해 보았다. 7. 오류 처리 자바를 배우면서, 자바를 사용하면서 깔끔하지 않은 오류 처리들을 많이 보았다. 특별한 이유 없이 무조건적으로 try catch 문을 사용해서 묶인 코드를 보면서 '깔끔하지 않은 코드'라는 생각을 많이 했었다. 하지만, 현대적인 프로그래밍 언어들에서 오류 처리는 필수 불가결한 존재이고, 오히려 오류 처리를 적절하게 한다면 더 깔끔한 코드를 작성할 수 있다. 좀 더 깔끔한 코드로 오류 처리를 할 수 있을까? 확인된 예외가 정답은 아니다 확인된 예외라는 표현이 모호했지만, 검색을 통해 찾아보니 미리 정의된 예외(IOException, SQLException 등)을 말한다고 한다. 사실 기정의된 예외를 사용한다면 의미가 명확.. 2022. 2. 11.
Clean Code (2/n) 계속해서 clean code 책을 읽어가면서 코드 철학을 정리해 보았다. 4. 주석 저자는 주석을 '필요악'으로 규정하고, 좋은 코드라면 주석을 최소화하고 코드를 통해 내용을 설명해야 한다고 주장한다. 나도 이전에는 주석이 아닌, 코드를 통해서 내용을 설명하려고 했었다. 코드의 변화는 직접적인 영향을 끼쳐 동작을 변화시키므로 실제 프로그램의 동작과 잘 맞아떨어지지만, 주석의 변화는 프로그램에 직접적인 영향을 끼치지 않기 때문에 outdate되기 쉽다. 하지만 더 많은 코드를 작성하고 다른 사람의 코드를 읽어보면서 주석이 필요한 경우가 있다고 생각한다. 다른 사람이 코드를 보았을 때 명쾌하게 이해되지 않는 부분(도메인의 부족 등)은 주석을 통해 부연설명을 하면 코드 리뷰나 그 기능을 수정할 때 큰 도움이 .. 2022. 2. 7.