본문 바로가기

분류 전체보기59

3장 - 긴 코드 조각내기 for 메서드 다섯 줄 제한(FIVE LINES) 메서드 다섯 줄 제한(FIVE LINES)을 지키위 위한 리팩터링 패턴 3가지 1. 메서드 추출(EXTRACT METHOD) 2. 호출 또는 전달, 한 가지만 할 것(EITHER CALL OR PASS) 3. if 문은 메서드의 시작에만 배치 예제 코드 : https://github.com/wikibook/five-lines 1. 메서드 추출(EXTRACT METHOD) function draw() { let canvas = document.getElementById("GameCanvas") as HTMLCanvasElement; let g = canvas.getContext("2d"); g.clearRect(0, 0, canvas.width, canvas.height); // 맵 그리기 for (let.. 2024. 1. 31.
2장 - 리팩터링 깊게 들여다보기 리팩터링? -> 기능을 변경하지 않고 코드의 가독성과 유지보수가 쉽도록 코드를 변경하는 것 가독성 : 의도를 전달하기 위한 코드의 성질 코드에서 의도를 전달하는 방법 - 컨벤션, 주석, 변수, 메서드, 클래스 및 파일 이름, 공백 사용 등 유지보수성 : 버그를 고치거나 기능을 추가하기 위해 코드를 수정할 후보가 얼마나 많은지 나타냄 시스템이 취약하다 = 시스템에서 A를 수정했는데 B에도 영향이 가는 경우 이때, 취약성의 근원은 일반적으로 전역상태(global state) 때문! 전역상태(global state) : 프로그램이 실행되는 동안 변경될 수 있는 모든 것. ex) 모든 변수, DB의 데이터, 하드디스크 안의 파일 등 특히, 불변속성(invariant) 변수로 인해 시스템의 취약성이 증가한다 불변.. 2024. 1. 29.
1장 - 리팩터링 리팩터링하기 리팩터링? -> 기능을 변경하지 않고 코드의 가독성과 유지보수가 쉽도록 코드를 변경하는 것 리팩터링을 해야 하는 이유 - 코드의 가독성을 높이면 새로운 기능을 구현하기 위한 시간을 확보할 수 있음 - 유지보수가 용이해지면 버그가 줄어들고 수정이 쉬워짐 - 좋은 코드는 생각하기 편함 무엇을 리팩터링 해야하나? 감각적으로 나쁜 코드를 찾아 리팩터링 하기는 쉽지 않음 규칙을 정해두고 규칙을 위반한 코드를 리팩터링 하면 좋지 않을까? ex) '메서드는 한 가지 작업을 수행해야 한다', '메서드는 다섯 줄 제한' 등등 리팩터링에 가장 좋은 방법은 테스트코드를 작성하는 것이지만 테스트코드를 작성하는 방법을 배우는 것 자체가 어려움 리팩터링에 익숙해 지는 방법 4가지 1. 리팩터링 패턴 패턴에 어긋나는 코드를 찾아 .. 2024. 1. 29.
NEXTSTEP TDD, 클린 코드 with Java 후기 2023.11.2에 시작해서 2023.12.14일 까지 약 6.5주 간의 NEXTSTEP TDD, 클린 코드 with Java 후기를 남겨보려고 한다. 지금까지 개발 공부를 하면서 기능 구현에 집중하다 보니 내 코드는 늘 쓰레기 그 자체였다. 클린코드에 대한 욕심이 있었고 배워보고자 하는 생각이 항상 있었지만, 막상 무엇을 공부해야 하는지 몰랐으며, 사실 시작할 용기가 없었다. 그러다 우테코 교육을 전담하는 NEXTSTEP이라는 교육기관이 TDD와 클린코드 강의 별도 유료 강의로 진행하고 있다는 것을 알게 되었다. 'TDD, 클린 코드 with Java' 과정은 '실무 경력이 1~3년차' 대상으로 한 강의이고 수강료가 80만원이나 했기 때문에 취준생 나는 고민이 많았다. 하지만 클린코드와 TDD에 대해 .. 2023. 12. 14.
(mac)H2database - 'Console 응용 프로그램이 예기치 않게 종료되었습니다' 에러 Spring Initializr 스프링 부트 버전 2.x 버전이 사라지고 3.x 버전만 남게 되면서 jdk 버전을 11 -> 17로 업그레이드하고 공부를 하던 중에 잘 작동되던 h2database가 다음과 같은 오류를 뿜으면서 켜지지 않았다. 구글링을 아무리 해봐도 나랑 같은 오류가 있는 사람이 없었는데, 삽질 끝에 해결을 했다. 원인 처음에 jdk17버전을 설치할때 https://tlo-developer.tistory.com/321 이 블로그를 보고 따라했고 설치가 잘 되었다. 하지만 이상하게 이때부터 h2database가 켜지지 않았고 이것저것 시도해 본 결과 brew로 설치한 jdk로는 h2database를 실행할 수 없다는 결론을 내렸다. 해결방법 1. zulu-17 직접 다운로드 https://.. 2023. 12. 10.
PCCP 취득 후기 (Java - Level 2) 9월 10일에 진행되었던 PCCP(Programmers Certified Coding Professional)에 응시했다. 사실 3월에 이미 PCCP를 한번 응시하고 레벨1을 취득했던 적이 있는데, 나름 코딩테스트 공부를 해왔음에도 레벨1을 취득한 거에 약간 충격을 받았었다 ㅋㅋ.. 이번에 진행된 PCCP는 프로그래머스 데브매칭을 신청한 사람들을 대상으로 무료로 해줬다, 굿!(1회 응시료 4만원) 시험의 특징이라고 하면 신청할 때 C++/Python/Java 중 하나를 선택해야 하는데 한번 선택하면 변경 불가이다. 오전 10시 ~ 12시 2시간 동안 4문제를 풀어야 했고 레벨 취득 기준은 다음과 같다. 문제 유형은 구현 DFS/BFS 백트래킹 등등 다양하게 나왔던거 같고, 나는 3번까지 풀고 레벨3이상 .. 2023. 9. 10.