https://ko.wikipedia.org/wiki/SOLID_(객체_지향_설계) SOLID (객체 지향 설계) 위키백과, 우리 모두의 백과사전. ko.wikipedia.org 의 저자인 로버트 C.마틴이 소개한 좋은 객체 지향 설계의 5가지 원칙이다. 1. SRP : 단일 책임 원칙(Single Responsibility Principle) - 하나의 클래스는 하나의 책임만.(변경이 있을 때 파급효과가 적어야 한다.) 2. OCP : 개방-폐쇄 원칙(Open/Closed Principle) - 소프트웨어 요소는 확장에는 열려 있으나, 변경에는 닫혀 있어야 한다. -> 다형성 활용! 3. LSP : 리스코프 치환 원칙(Liskov Substitution Principle) - 프로그램의 정확성은 유지하..
함수를 만드는 첫번째 규칙, 작게 만들어라. 두번째 규칙, 함수를 한 가지를 잘 하도록 만든다. = 작게 만든다. = 들여쓰기를 많이 하지 않는다. 세번째 규칙, 추상화 수준을 동일하게 해라. 네번째 규칙, 위에서 아래로, 이야기를 읽듯이 흘러가게 해라. 다섯번째 규칙, 이름을 붙일 때, 서술하듯이 붙인다. 여섯번째 규칙, 가능한 인수의 개수를 줄여라. (객체 이용) 일곱번째 규칙, 오류코드보다 예외를 사용해라. 여덟번째 규칙, 반복을 피해라. 저자의 함수 짜는 법 1. 우선 작성한다. (단위 테스트 케이스도 작성한다.) 2. 코드를 다듬고, 함수를 만들고, 이름을 바꾸고, 중복을 제거한다. 메서드를 줄이고 순서를 바꾼다. 클래스를 쪼개기도 한다. (이 과정에서 단위 테스트는 항상 통과한다.)
개인적으로 코드를 작성할 때 가장 기본이 되는 건 의미 있는 이름을 붙여주는 것이라고 생각한다. 아무리 간단한 코드를 짜더라도 그냥 a, b, 혹은 list1, temp 이런 이름을 붙이는 걸 지양하고 있다. 의미 있는 이름을 붙이려면 어떻게 해야 할까. 이름을 붙이는 이유는 그 역할을 명확히 하기 위해서이다. 왜 존재하고, 어떤 기능을 하는지 등을 명확하게 나타내기 위해서이다. 그렇기 때문에 이름을 붙일 때에는 역할을 명확하게 밝힐 수 있는 이름을 붙이는 것이 좋다. 클린 코드 2장의 내용을 간단하게 요약해보자면 아래와 같다. 1. 유사한 개념별로 유사한 표기법을 사용한다.(= 한 개념에는 하나의 표기법을.) 2. 비슷한 이름을 사용하지 않도록 한다. 3. 코드는 다른 개발자들과 의사소통하기 위한 도구..
협업을 위해서나 나를 위해서나 깨끗하게 코드를 쓰는 것이 중요하다고 생각해서 클린코드를 읽고 있는데 정리가 필요할 것 같아서 간단히 내용을 요약한다. 최소한의 내용만을 담고 있으니, 더 많은 내용을 원하는 분은 책을 사서 읽으셨으면 좋겠다. 1. 깨끗한 코드가 왜 중요한가? 코드가 사라질거라고 하는 사람들도 있지만, (저자가 생각하기엔) 앞으로 코드가 사라질 일은 없다. 요구사항은 사람으로부터 나오고, 그런 사람들이 개떡같이 말해도 찰떡같이 동작하는 기계는 나오기 어렵기 때문이다. 그럼 앞으로도 코드를 계속 작성해야하는데, 왜 코드를 깨끗하게 작성해야할까? 기한이 촉박하다고, 제대로 짤 시간이 없다고 생각해서 코드를 먼저 작성하고 나중에 정리해야겠다고 다짐하지만 결코 그 나중은 오지 않는다.(르블랑의 법..
오늘 프로젝트를 하다가 서버에 저장해놓은 파일 삭제에 문제가 생겼는데 알고 보니 내가 A폴더에 서버를 잡았어야 했는데, B폴더에 잡고 있었다. 그동안 프로젝트를 하면서 별 문제도 없었는데(심지어 이제 프로젝트 끝나가는 중) 갑자기 저 경로가 org.eclipse.wst.server.core/tmp0/wtpwebapps/ 정확하게 어떤 의미의 것인지 궁금해졌다. 물론 이클립스가 톰캣을 구동하면서 jsp를 컴파일해서 가상의 폴더에 두고 사용한다는 것은 알고 있었다. dololak.tistory.com/156 [이클립스] 이클립스 웹 어플리케이션 프로젝트 배포 경로 이클립스 개발한 웹 어플리케이션 배포 경로 이클립스에서는 톰캣등의 WAS를 연동하여 가상의 WAS를 통해 개발을 하게 됩니다. 실제 톰캣의 경우에..
ko.wikipedia.org/wiki/YAML YAML - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. YAML은 XML, C, 파이썬, 펄, RFC2822에서 정의된 e-mail 양식에서 개념을 얻어 만들어진 '사람이 쉽게 읽을 수 있는' 데이터 직렬화 양식이다. 2001년에 클라크 에반스가 ko.wikipedia.org YAML이라는 이름은 "YAML은 마크업 언어가 아니다(YAML, Ain't Markup Language, "야믈"이라고 보통 읽고, yml이라고도 쓴다.)라는 재귀적인 이름에서 유래되었다. '사람이 쉽게 읽을 수 있는' 데이터 직렬화 양식이다. 오늘날 XML과 JSON이 데이터 직렬화에 주로 쓰이기 시작하면서, 많은 사람들이 YAML을 '가벼운 마크업 언어'로..
요즘 Servlet과 JSP를 배우고 있는데, 이해할 겸 내 나름대로 내용을 정리해본다. (혹시 정정할 내용이 있다면 댓글 부탁드립니다.) Servlet Servlet은 JSP가 나오기 전에 웹페이지(HTML)를 동적으로 생성하는 기술로 제공되었다. Servlet은 자바 클래스의 일종으로, Servlet 클래스를 선언할 땐 Servlet 인터페이스를 구현하는 방법과 HttpServlet 클래스를 상속하는 방법이 있는데, 전자는 복잡하므로 후자를 선호한다. Servlet은 자바의 여러 장점들을 누릴 수 있지만 HTML, CSS, 웹디자인과 함께 사용하기엔 많은 단점이 있다. 그래서 1999년에 Sun에서는 JSP(JavaServer Pages)를 내놓았다. Servlet의 경우, 웹페이지의 form에서 들..