본문 바로가기

분류 전체보기57

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.
소프티어 역량 진단 취득 후기 (HSAT - Level 3) HSAT(소프티어 역량 진단)은 현대자동차그룹에서 실시하는 코딩역량인증 평가이다. Level 3를 취득하면 현대자동차, 기아, 현대모비스, 현대오토에버, 현대차증권, 현대엔지비 SW 분야 지원 시, 코딩테스트 면제를 해준다. 3시간 동안 두 문제를 모두 맞아야 통과가 되고, 하나라도 틀리면 불합격이다 (너무 빡쎈거 아닌가;;) 8월 11일 금요일에 오후 5시 ~ 오후8시에 시험이 실시되었고, 시험 문제는 결과 발표 당일 소프티어 홈페이지에 올라왔다. 기출문제를 봤는데 너무 어려워서 한 번에 따기 힘들 것 같았지만, 생각보다 문제들이 기출문제처럼 어렵게 나오지 않아서 운 좋게 한 번에 통과했다. 오예! 2023. 8. 26.
함수형 인터페이스(Functional Interface) 함수형 인터페이스(Functional Interface) : 단 하나의 추상 메서드만 선언된 인터페이스 @FunctionalInterface interface SquareFunction() { public abstract int square(int a); } * interface의 추상메서드는 public하면서 abstract이므로 public abstract 생략 가능 * @FunctionalInterface 어노테이션은 안붙여도 상관없지만 붙이면 함수형 인터페이스 사용시 컴파일러가 두 개 이상의 추상 메서드를 만드는 것을 막아줌 함수형 인터페이스를 사용하면 람다식을 참조변수에 담아 사용할 수 있다. (단, 함수형 인터페이스의 메서드와 람다식의 매개변수 개수와 반환타입이 일치해야 한다) @Functio.. 2023. 7. 16.