3. 함수
·
📝 끄적끄적/📖 Clean Code
작게 만들어라!함수는 작을수록 좋다.20줄도 길다.들여쓰기(indent)는 1단이나 2단을 넘어가면 안 된다. 한 가지만 해라!함수의 추상화 수준은 하나여야 한다.지정된 함수 이름 아래에서 추상화 수준이 하나인 단계만 수행한다면 그 함수는 한 가지 작업만 하는 것이다. 서술적인 이름을 사용하라!코드를 읽으면서 짐작했던 기능을 각 루틴이 그대로 수행한다면 깨끗한 코드라 불러도 되겠다. 함수가 작고 단순할수록 서술적인 이름을 고르기도 쉬워진다.길고 서술적인 이름이 짧고 어려운 이름보다 좋다.IDE에서 이런저런 이름을 시도한 후 최대한 서술적인 이름을 골라도 좋다. 또한 이름을 붙일 때는 일관성이 있어야 한다. 모듈 내에서 함수 이름은 같은 문구, 명사, 동사를 사용한다.ex)`includeSetupAndTe..
자바의 신 개정판이 출간되었다.
·
📝 끄적끄적/후기 및 회고
연차가 쌓이면서 기본기의 중요성을 나날이 깨닫는 요즘 기본서를 찾던 와중에 자바의 신을 알게 되었다. 하지만.. 절판돼서 도저히 구할 수가 없었다. 중고장터에 글도 안 올라오고 있어도 다 판매완료였다.. 흐ㅠㅠ 🎉 10월 16일 자로 자바의 신 3판이 출간되었다.🎉 9월 중으로 리뉴얼된다는 소식을 듣고 네이버 카페에 가입해 매일 보고 있었는데 드디어!! (출간됐는데도 카페에 여전한 새 글 : 0을 보고 내가 올렸다는...) 2권 다 목차만 봤을 때는 구판과 내용상 큰 차이점은 없어 보인다. (책 안에 내용은 다를 수도 있다) 구판과의 차이점 jshell로 실습하는 과정이 추가되었다. 구판에는 각 목차가 '정리하며'에서 끝난다. 개정판에서는 Java 9부터 지원되는 jshell을 통해 예제를 실행해 보는 ..
2. 의미 있는 이름
·
📝 끄적끄적/📖 Clean Code
의도를 분명히 밝혀라변수, 함수, 클래스의 주석이 필요하다면 의도를 분명히 드러내지 못했다는 말이다.// Badpublic List getThem() { List list1 = new ArrayList(); for (int[] x : theList) { if (x[0] == 4) { list1.add(x); } } return list1;}// Goodpublic List getFlaggedCells() { List flaggedCells = new ArrayList(); for (int[] cell : gameBoard) { if (cell[STATUS_VALUE] == FLAGGED) { fl..
1. 깨끗한 코드
·
📝 끄적끄적/📖 Clean Code
깨끗한 코드는 ‘보기에 즐거운’ 코드다.책의 서두에서 핵심이 나온 거 아닐까, 어렵게 접근하지 않기로 했다.신입이 실무 프로젝트에 투입됐을 때 제일 먼저 하는 것은 코드를 보며 업무 프로세스를 파악하는 것이다.이때 주석이 없어도 책처럼 읽을 수 있어야 한다. (일부의 주석은 필요하겠지만) 철저한 오류 처리세세한 사항까지 꼼꼼하게 신경 쓰라는 말이다.프로그래머들이 대충 넘어가는 부분 중 하나가 오류 처리다. 가독성깨끗한 코드는 잘 쓴 문장처럼 읽혀야 한다.다른 사람이 고치기 쉽다. TDD테스트 케이스가 없는 코드는 깨끗한 코드가 아니다.아무리 코드가 우아해도,아무리 가독성이 높아도,테스트 케이스가 없으면 깨끗하지 않다. 중복같은 작업을 여러 차례 반복한다면 코드가 아이디어를 제대로 표현하지 못한다는 증거다..
스프링 부트와 AWS로 혼자 구현하는 웹 서비스 후기
·
📝 끄적끄적/후기 및 회고
읽게 된 이유 주로 레거시 위주로 수행하다 보니, AWS랑 git action CI/CD를 해보고 싶어서 추석에 읽었다. 느낀 점 테스트, 빌드, 배포를 자동화하니 정말 개발에 집중할 수 있겠다는 생각이 든다.. 나중에 꼭 실무 프로젝트에서 CI/CD를 사용해 보거나, 직접 구축해보고 싶다. 입사 후 첫 프로젝트에서 젠킨스를 사용했었는데, 그땐 완전 병아리 때라 배포하는 거 구경만 해봤다는..😅 2019년 책이다 보니 현재랑 Java, JUnit 버전 차이도 있고, 순탄히 진행되진 않았다. 검색하면서 최근 버전에 맞게 마이그레이션하는 과정도 필요했다. 아래 링크는 꼭 참고하는걸 추천한다. 스프링 부트와 AWS로 혼자 구현하는 웹서비스 후기 (1/2) 해당 github repository의 issues 또..
[자바의 정석] - 인터페이스(interface)
·
📝 끄적끄적/🖥️ 자바의 정석
인터페이스(interface) 인터페이스를 이해하려면 추상화, 다형성에 대한 이해가 필수적이다. ❓인터페이스란 ⭐ 추상 메서드의 집합 핵심 구현된 것이 전혀 없는 설계도, 껍데기(모든 멤버가 public) interface 인터페이스이름 { public static final 타입 상수이름 = 값; public abstract 메서드이름(매개변수목록); } 인터페이스는 변수를 가질 수 없다. 무조건 상수만 가질 수 있다. 메서드는 전부 다 추상메서드 = 추상메서드의 집합 interface PlayingCared { public static final int SPACE = 4; final int DIAMOND = 3; //public static final int DIAMOND = 3; static int..