일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 |
- Postman
- Spring
- thymeleaf
- Spring Boot
- H2 설치
- 프로젝트 생성
- 롬복
- 클린코드
- golang
- 기초100제
- 알고리즘
- MySQL
- 서블릿
- Git
- 어노테이션
- 코드업
- mariadb
- java
- 스프링
- spring security
- JPA
- Codeup
- 클린 코드
- GitHub
- 파이썬
- Vue.js
- Python
- springboot
- Annotation
- go
- Today
- Total
목록Books (10)
nyximos.log
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bip2E2/btrLufrRbrc/6wQbVEJGOKuBp6Me22EB8K/img.jpg)
클린코드, 애자일 소프트웨어 장인정신 Robert C. Martin 클래스 체계 추상화 단계가 순차적으로 내려간다. 변수 목록 : 정적 공개 상수 -> 정적 비공개 변수 -> 비공개 인스턴스 변수 함수 : 공개 함수 -> 비공개 함수 캡슐화 변수와 유틸리티 함수는 공개하지 않는 편이 낫지만 반드시 숨길 필요가 없다. 때로는 변수나 유틸리티 함수를 protected로 선언해 테스트 코드에 접근을 허용하기도 한다. 그러나 캡슐화를 풀어주는 결정은 언제나 최후의 수단이다. 클래스는 작아야한다! 클래스의 크기가 중요하다. 작아야 한다. 클래스의 크기는 클래스가 맡은 책임을 센다. 단일 책임 원칙 Single Responsibility Principle 클래스나 모듈을 변경할 이유가 하나, 단 하나뿐이어야 한다는..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/CYkyH/btrLhtb7xOn/hHQeLIFjYa3DC8OJ6z6A80/img.jpg)
클린코드, 애자일 소프트웨어 장인정신 Robert C. Martin TDD 법칙 세 가지 첫째 : 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다. 둘째 : 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다. 셋째 : 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다. 깨끗한 테스트 코드 유지하기 테스트 코드가 복잡할 수록 실제 코드를 짜는 시간보다 테스트 케이스를 추가하는 시간이 더 걸리기 쉽다. 테스트 코드는 실제 코드 못지 않게 중요하다. 테스트 코드는 사고와 설계와 주의가 필요하다. 실제 코드 못지 않게 깨끗하게 짜야한다. 테스트는 유연성, 유지보수성, 재사용성을 제공한다. 버팀목 = 단위 테스트 테스트 커버리지가 높을수록 공포는 줄어든다. 깨..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/o6XnN/btrIJ6QWCub/a0bkt4yFNwWP9jH4AUAPz1/img.jpg)
클린코드, 애자일 소프트웨어 장인정신 Robert C. Martin 들어가며 어떤 식으로든 외부 코드를 우리 코드에 깔끔하게 통합해야만 한다. 이 장에서는 소프트웨어 경계를 깔끔하게 처리하는 기법과 기교를 살펴본다. 외부 코드 사용하기 인터페이스 제공자 : 적용성 최대한 넓히고자 노력 인터페이스 사용자 : 자신의 요구에 집중하는 인터페이스 기대 → 시스템 경계에서 문제 발생 java.util.Map은 다양한 기능을 제공한다. 장점 : 기능성, 유용성 단점 : 원하지 않는 기능을 사용자가 사용하여 의도와 다른 상황이 발생할 가능성 有 클린 코드 경계 인터페이스인 Map을 Sensors 안으로 숨긴다. Sensor 클래스가 객체 유형을 관리하고 변환하므로, Map 인터페이스가 변하더라도 나머지 프로그램에 영..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/vn2w1/btrubL7ElpX/vgkjWAAKCAFkq0rCPUk1Q0/img.jpg)
클린코드, 애자일 소프트웨어 장인정신 Robert C. Martin 들어가며 깨끗한 코드와 오류 처리는 확실히 연관성이 있다. 상당수 코드 기반은 전적으로 오류 처리 코드에 좌우된다. 이 장에서는 깨끗하고 튼튼한 코드에 한걸음 더 다가가는 단계로 우아하고 고상하게 오류를 처리하는 기법과 고려 사항 몇 가지를 소개한다. 오류 코드보다 예외를 사용하라 이전에는 오류 플래그를 설정하거나 호출자에게 오류 코드를 반환하는 방법이 전부였다. → 함수를 호출한 즉시 오류를 확인해야 하기 때문에 호출자 코드가 복잡해짐 오류가 발생하면 예외를 던지는 편이 좋다. → 논리가 오류 코드와 섞이지 않기 때문에 호출자 코드가 더 깔끔해짐 Try-Catch-Finally문 부터 작성하라 try 블록에 들어가는 코드를 실행하면 어..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bkB2jq/btrt3fN8o7k/JUb2upOOxliqk6DiSum8Ik/img.jpg)
클린코드, 애자일 소프트웨어 장인정신 Robert C. Martin 들어가며 왜 많은 프로그래머가 조회get 함수와 설정set 함수를 당연하게 공개해 비공개 변수를 외부에 노출할까? 자료 추상화 구현을 감추려면 추상화가 필요하다. 추상 인터페이스를 제공해 사용자가 구현을 모른 채 핵심을 조작할 수 있어야 진정한 의미의 클래스다. 자료를 세세하게 공개하기보다는 추상적인 개념으로 표현하는 편이 좋다. 아무 생각 없이 조회/설정 함수를 추가하는 방법이 가장 나쁘다. 구체적인 Point 클래스 직교좌표계 사용 계별적으로 좌표값을 읽고 설정하게 강제 구현을 노출한다. 변수를 private로 설정해도 각 값마다 get/set 함수를 제공한다면 구현을 외부로 노출하는 셈 public class Point{ publi..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cTK3ZS/btrtGh038vU/7zuVVCtplmP8wBfVPtSge0/img.jpg)
클린코드, 애자일 소프트웨어 장인정신 Robert C. Martin 들어가며 프로그래머라면 형식을 깔끔하게 맞춰 코드를 짜야 한다. 코드 형식을 맞추기 위한 간단한 규칙을 정하고 그 규칙을 착실히 따라야 한다. 형식을 맞추는 목적 코드 형식은 중요하다! 코드 형식은 의사소통의 일환이다. 의사소통은 전문 개발자의 일차적인 의무다. 오늘 구현한 코드의 가독성은 앞으로 바뀔 코드의 품질에 지대한 영향을 미친다. 맨 처음 잡아놓은 구현 스타일과 가독성 수준 → 유지보수 용이성, 확장성에 영향 원래 코드는 사라질지라도 개발자의 스타일과 규율은 사라지지 않는다. 적절한 행 길이를 유지하라 대다수 자바 소스 파일은 크기가 어느 정도일까? 500줄을 넘지않고 대부분 200줄 정도인 파일로도 커다란 시스템을 구축할 수 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/A29I9/btrtmfQEXfR/oJEkB704U1Kc64pjNlnzXK/img.jpg)
클린코드, 애자일 소프트웨어 장인정신 Robert C. Martin 들어가며 나쁜 코드에 주석을 달지 마라. 새로 짜라. - Brian Wilson Kernighan, Phillip James Plauger 주석이 필요한 상황에 처하면 곰곰이 생각하기 바란다. 상황을 역전해 코드로 의도를 표현할 방법은 없을까? 코드로 의도를 표현할 때마다 스스로를 칭찬해준다. 주석을 달 때마다 자신에게 표현력이 없다는 사실을 푸념해야 마땅하다. 부정확한 주석은 아예 없는 주석보다 훨씬 더 나쁘다. 코드만이 자기가 원하는 일을 진실되게 말한다. 그러므로 우리는 (간혹 필요할지라도) 주석을 가능한 줄이도록 꾸준히 노력해야 한다. 주석은 나쁜 코드를 보완하지 못한다 표현력이 풍부하고 깔끔하며 주석이 거의 없는 코드가 복잡하고..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/xjqRb/btrs4MVkNlX/vxXOgX5qKbq6YVumMwLDXk/img.jpg)
클린 코드, 애자일 소프트웨어 장인정신 Robert C. Martin 들어가면서 어떤 프로그램이든 가장 기본적인 단위가 함수다. 이 장은 함수를 잘 만드는 법을 소개한다. 작게 만들어라! 일반적으로 다음 코드보다 짧아야 한다. public static String renderPageWithSetupAndTeardowns( PageData pageData, boolean isSuite ) throws Exception { boolean isTestPage = pageData.hasAttribute("Test"); if(isTestPage){ WikiPage testPage = pageData.getWikiPage(); StringBuffer newPageContent = new StringBuffer();..