우아한테크코스 레벨1 백엔드 필독서, 객체지향의 사실과 오해를 읽고 이해한 내용을 저의 언어로 표현해보는 포스팅입니다. 객체지향 프로그래밍 현실 세계 은유로 구조화된 도메인 모델을 자율적 객체들의 협력으로 재창조해내는 것 프로그램을 명령어의 집합이 아니라, 협력하는 객체들의 모임으로 보는 프로그래밍 기법입니다. 사람의 인지 능력에는 한계가 있습니다. 프로그램이 거대해지고 요구사항이 많아질 수록, 내부복잡도는 높아질 수밖에 없고, 이를 개발자가 모두 명령어로 제어하려면 한계가 발생합니다. 이 지점에서 객체들의 책임, 역할, 협력 이라는 개념이 부상합니다. 책임 한 객체가 어떤 메시지를 받을 수 있다면, 그 객체는 그 메시지를 수행할 책임이 있다. A라는 객체에게 doSomething라는 메시지를 보낼 수 ..
인텔리제이의 Analyze 기능을 이용해서, 사용되지 않는 코드를 제거해봅시다 :) 1. Double Shift -> Inspect Code... 2. 인스펙션 스코프 및 프로파일 설정 3. 결과 확인. 사용되지 않는 요소들은 Unused declaration 그룹에 표시됨 4. 사용되지 않는 메서드, 필드 등인 경우, Safe delete 버튼으로 제거 5. Deleted 확인 -> 편 ㅡㅡ 안 소소하게 인텔리제이를 이용한 사용되지 않는 코드 제거 방법을 알아봤습니다 :)
우아한테크코스 웹 백엔드 4기 레벨 1 필독 도서 중 하나인 코딩을 지탱하는 기술을 읽었습니다. 감상 전반적인 감상 다른 필독서와 달리 이 책은 발췌독이 아닌 전체를 읽은 뒤 내용을 정리할 것을 권장하고 있어요. 양이 많지 않고, 비교적 가볍게 읽을 수 있는 내용들이었어요. 책 자체에서 챕터마다 적절한 분할과 요약을 해주셔서 읽고 정리하는 데 아주 수월했습니다. 프로그래밍 언어가 어떻게 발전해와서 현재의 모습을 갖추게 되었는지 이해하는 데 도움이 되었습니다. 또한 제 주력 언어인 Java가 아닌 다른 언어들은 왜 다른 형태를 갖추게 되었는지 등도 조금 더 알 수 있었어요. 이 책의 제목 대로 코딩을 지탱하는 기술을 전달해주는 책이었습니다. 프로그래밍 언어의 역사, 언어 간의 발전 과정에서 목표한 것의 차..
우아한테크코스를 시작한지 벌써 1달이 됐습니다! 어느새 과정 10%를 지나고 있네요! 1레벨의 절반이 지났고, 자동차 경주와 로또 미션을 진행했습니다. 지난 두 가지 미션에서 배운 것들을 요약해봅니다. 🏎️ 자동차 경주 - TDD https://github.com/woowacourse/java-racingcar/tree/hj-rich 제목에서 알 수 있듯, 자동차 경주는 TDD에 익숙해지는 과정입니다. 우테코에서 처음으로 하게되는 미션이자, 첫 페어 프로그래밍을 경험하는 미션이기도 했어요. 그리고 본격적으로 TDD를 처음으로 경험하는 시간이기도 했습니다. 간단히 돌아보자면.. 미션 제목대로 TDD에 상당히 많이 익숙해지는 시간이었던 것 같아요. 요구사항 분석 -> 도메인을 설계 -> 테스트코드 작성 ->..
방어적 복사, unmodifiable, 불변... 너무 어려워서 정리해봅니다! 생성자의 파라미터로 리스트를 받는다면❓ 루피로부터 생성자 내부 검증 및 할당 과정에 대해 피드백을 받았습니다! 실은 피드백을 받았던 당시에는 루피의 이야기가 어떤 의미인지 이해하지 못했어요. 리스트를 선언하고, 그걸 생성자에 전달한 이후에, 생성자에 전달했던 스코프에서 리스트를 변경시킬 경우, unmodifiableList로 할당한 리스트에도 변경이 적용됩니다. 이 내용을 알지 못했어요. 사실 이것만 모르던 게 아니라, 그래서 여러가지 리스트의 복사에 대해 한 번 정리해보기로 했습니다.! 1. = anotherList; 완전히 동일한 컬렉션에 대해 참조변수를 하나 더 만드는 작업입니다. List original = new Ar..