본문 바로가기

프로그래밍 독서

(16)
7. 예외처리 사실 저는 자바를 거의 공부하지 않았고, 기본서로 딥다이브정도를 읽다가 하차한 상태기 때문에 자바의 try, catch가 익숙하지 않습니다만 예외처리에 관해서 중요하다고 생각합니다. 간단하게 코테공부만 해도 항상 경계값, 임계치 등이 기준이 되도록 잘 설정해서 문제가 틀리지 않도록 하는 것, 혹은 나중에 코드를 수정하다가 여러 예외처리들을 주먹구구식으로 해와서 더러운 코드때문에 처음부터 다시 짜야할 일 이 초반에 꽤 있었기 때문입니다. 여기서도 간단한 몇가지 법칙을 보여주는데, 일단 자바가 아니라도 쓸만한 몇가지가 기억이 나 남겨놓습니다. 1. 메서드로 null을 넘기거나, 예외처리를 null을 통해서 하는 것을 지양하자 2. 오류를 직접 처리하는 것보다, try catch를 사용하자 3. 예외에 의미를..
6. 객체와 자료구조 자료구조와 객체지향에 대해서 이야기 한 챕터입니다. 두개가 서로 정 반대라고 주장하고 용도에 맞게 잘 써야한다고 합니다. 객체지향의 목적은 캡슐화. 쉽게 말하면 사용자가 내부구조를 알 수 없게 잘 숨기는 것이고 자료구조는 구조를 그대로 두고 따로 함수를 제공하지 않는 경우를 말합니다. 도형을 나타내는 코드가 이해하기 쉽고 인상깊어서 아래 남기겠습니다. 자료구조 - 함수를 추가할때 도형 클래스 수정할 필요 없음 - 도형 추가하때는 함수들을 수정해야함 public class Square { public Point topLeft; public double side; } public class Rectangle { public Point topLeft; public double height; public dou..
5. 형식 맞추기 형식은 사실 의사소통의 형식이다. 언어와 똑같이 맞춤법이 엉망인 글은 보기가 어렵다. 남들이 내 코드를 절대 이해하지 못했으면 좋겠다는 악취미를 가지고 코드를 짜는게 아닌이상 형식을 맞추는게 좋다. 읽는 사람은 읽다보면 일정한 형식을 가지고 다음에는 이런 것이 나오겠지 하고 예상을 하면서 읽기 때문에 형식을 맞춰주는게 좋다. 보통 vscode 같은걸 쓰면 사용하게 되는 prettier나 lint 들도 여기에 해당한다고 봐도 될거같다. 더 넓은 범위로 볼 수도 있다. 몇가지 팁을 둘러보자면 - 신문 기사처럼 작성하라 - 개념은 빈 행으로 구분 - 유사한 코드는 서로 가까이 놓기 - 가로로 너무 길게 쓰지 말 것 등이 있다. 사실상 에어비엔비같이 유명한 규율들을 따라도 되고, 자신만의 규율을 따라도 될 것 ..
4. 주석 경력이 정말 짧은 저 임에도 학창시절에 교수님이 예시로 짜준 코드들에서도 많이 보던 실수들 이었습니다. 딱 이 챕터를 다 읽고 드는 생각은 한문장으로 "설명이 필요한 드립은 실패한 드립이다." 였습니다. 주석도 똑같다는 맥락입니다. 설명이 필요한 코드는 실패.. 까지는 아니지만 설명이 필요 없는 코드일수록 좋다는 이야기가 계속 나옵니다. 꼭 필요한 주석만 남기고 다 없애는게 좋다고 주장합니다. 1. 법적인 주석 ex) Copyright (C) 2003,2004,2005 by Object Mentor, Inc. All rights reserved. 2. 정보를 제공하는 주석 ex) 테스트중인 Responder 인스턴스를 반환한다. 다만 정보를 제공하는 주석의 경우에는 함수 이름등으로 정보를 직접 담는게 낫..
번외) 코드포매팅 단축키 요즘 파이썬, 자바, JS 등등 다양한 언어를 찍먹해야 될 일이 생겨서 여러군데서 작업하고 할 때마다 다른 IDE를 써버렸더니 코드 포매팅이 굉장히 불편했다. 단축키를 찾아서 한번에 정리해놓고 필요할때마다 꺼내서 쓸 예정으로 작성한다. 1. Visual Studio Code Windows : alt + shift + K Mac : Option + Shift + F Ubuntu : Ctrl + Shift + I 사용하는 언어에 맞는 Formatter 플러그인을 설치해야 한다고 하는데 js만 써서 그런지 난 안깔아도 잘 됐다.. 만약에 플러그인이 없다면, 친절하게 플러그인 설치를 안내해준다. 2. Eclipse Windows : Ctrl + Shift + F Mac : Command + Shift + F U..
3. 함수 이 장에서는 함수를 예쁘게 작성하는 법에 대해서 나온다. 학교를 다닐때 프로그래밍관련 과목을 들으면서 프로젝트를 할때 소위 '족보'라고 하는 코드를 받아서(운좋게도 본전공이 아니었음에도 컴공친구들이 좀 있었다.) 참고해 가면서 과제를 끝마쳤던게 기억이 난다. 문제는 남이 만든 코드를 받아서 작성하다 보면 input, output과 각 함수가 뭘 하는 녀석인지 이름으로 유추를 하더라도 구조적으로 파악이 꽤 어려웠다는 것이다. 이 장에서는 함수를 작성하면서 가독성을 높이는 방법들을 소개해준다. 제일 중요한 키는 두가지이다. A. 한 함수는 한가지만 해야한다. B. 인수는 적을수록 좋다. 이제부터 아래에 정리할 여러가지 기법들은 이것을 위한 몇가지 테크닉들이다. 1. 작게 만들어라 함수가 크면 클수록 함수를 ..
2. 의미있는 이름 꽃 (김춘수) 내가 그의 이름을 불러주기 전에는 그는 다만 하나의 몸짓에 지나지 않았다. 내가 그의 이름을 불러주었을 때, 그는 나에게로 와서 꽃이 되었다. 내가 그의 이름을 불러준 것처럼 나의 이 빛깔과 향기에 알맞은 누가 나의 이름을 불러다오 그에게로 가서 나도... 그의 꽃이 되고 싶다. 우리들은 모두 무엇이 되고 싶다 너는 나에게 나는 너에게 잊혀지지 않는 하나의 눈짓이 되고 싶다. 아마 작가가 한국인이었다면 이 시를 책에 실었을텐데 아쉽다. 요즘은 많이 없어진 것 같지만, 내가 태어났을 때만 해도 한국에는 '작명소'에서 이름을 지어온 이름을 주곤 했다. 그만큼 이름이 중요했기 때문이다. 일생을 살면서 내가 가장 많이 듣는 말이 무엇일까 생각해보면 단언컨데 내 이름이 아닐까 싶다. 만약 내 이름이..
1. 깨끗한 코드 첫장이라 어렵게 가지 않고, 이 책의 필요성에 관하여 이야기 한다. 깨끗한 코드가 좋다는 것에는 모두가 동의한다. 그렇다면 과연 깨끗한 코드란 무엇일까? 에 대해서 생각해봐야 한다. 작가의 비유가 아주 마음에 든다. '"깨끗한 코드를 짜는 행위는 그림을 그리는 행위와 비슷하다. 대부분의 사람은 잘 그려졌는지 엉망으로 그려졌는지 안다. 그렇지만 잘 그린 그림을 구분하는 능력이 그림을 잘 그리는 능력은 아니다." 다행인것은 나는 내 코드가 엉망인것을 안다. 단순한 코딩테스트 알고리즘 문제를 풀때에도 내가 푼 코드를 되돌아 보면 이해가 되지 않을 정도로 당시의 나만 아는 코드들이 쌓여있다. 프로그래밍 언어도 '언어'라고 생각한다. 그림과 글처럼 누군가가 그것을 봐 줄 거라는 전제를 가지고, 짜야한다. 초고를 ..