미션1. 자동차 경주 - 단위테스트 회고
·
📝 끄적끄적/TDD, 클린 코드 with Java 17기
포비님이 첫 번째 미션은 쉽다고 말하셔서 할만하겠지 했는데 완전 오산이었다.첫 번째 미션부터 정말 어려웠고, 단기간에 이렇게 많은 블로그를 보고 학습한 적이 있었나 싶을 정도였다.몇 시간 동안 고민하다 손도 못 댈 때도 있고, 진지하게 내 수준이 아닌 것 같아서 그만둬야 되는 거 아닌가 생각했다 😥매 단계마다 엄청나게 많은 리뷰가 쏟아졌고, 계속 리팩토링 하면서 '재밌다!'라고 느끼는 게 신기했다! 1단계 - 학습 테스트 실습1단계는 본 미션에 들어가기 전 워밍업 단계로 String과 Set Collection에 대한 테스트를 구현하는 미션이었다. @DisplayName()에는 테스트 대상의 input과 output에 대한 시나리오를 설명하자처음에는 아래처럼 테스트 이름에 코드 로직을 설명했었다.@Te..
TDD, 클린 코드 with Java 17기를 시작하며
·
📝 끄적끄적/TDD, 클린 코드 with Java 17기
NEXTSTEP에서 진행하는 TDD, 클린 코드 with Java 17기에 합류했다.🙌시작하게 된 이유 이제 구현했다고 손 놓고 좋아하는 연차는 지났다. 점점 연차가 쌓이면서 번아웃이 오는 와중에최근 프로젝트에서 계~속 닦달하는 바람에 거지같이 개발하면서 정말 현타가 왔다.급한 로직을 부탁해서 구현하면 오오 해주지만 이건 진짜 구현만 한건데하고 기분이 더 안 좋았다.그래서 자바 기본서를 사서 다시 읽었고, 클린 코드를 읽으면서 실무에 조금씩 적용하니 개발이 좀 재밌어졌다.근데 코드 리뷰를 받질 않으니 잘 하고 있는건가? 계속 의심이 생겼다. 80만 원은 적지 않은 돈이다.또 수료율이 30%도 안 된다고 하는데, 수료도 못하는데 듣는 게 맞나? 하고 많이 고민했다.결제하기까지 정말 많은 회고록을 읽었고 ..
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테스트 케이스가 없는 코드는 깨끗한 코드가 아니다.아무리 코드가 우아해도,아무리 가독성이 높아도,테스트 케이스가 없으면 깨끗하지 않다. 중복같은 작업을 여러 차례 반복한다면 코드가 아이디어를 제대로 표현하지 못한다는 증거다..