목록Development (13)
재 현
일단 개인적인 후기 먼저 요구사항을 분석하고 기능 목록과 예외 사항을 작성했다. 이를 통해 예외 사항을 처리하면서 기능 목록을 잡으려고 했다. 그랬더니 자연스럽게 역할 설계로 이어졌다. 내가 만들어낸 코드를 빠르게 피드백받고 리팩터링 할 수 있다는 점이 TDD의 장점인 것 같다. 테스트가 개발을 주도한다. 그리고 지속적으로 코드 정리하면서 너무 지저분해지는 걸 막는다. 빠른 피드백을 받을 수 있어서, 바로 내가 완성된 코드가 올바른지 알 수 있다. 중요한 점은 테스트를 통과할 만큼만 코드 작성하는 거다. 처음 하면 어렵다. 단위 테스트 작성하는 것도 어색하고 어려운 내게, 테스트로 개발을 시작하는 건 어려웠다. 하지만 TDD의 장점을 알게 되고 연습하고자 마음먹었던 것 같다. 테스트 테스트란 무엇일까? ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/sP0Oa/btszYFVrvUq/nmWkSoCKy44x4m67uE5Rg1/img.png)
getter 쓰지 말라고요? 이유 1: 객체의 내부 구조를 외부에서 직접 조작하게 되면 캡슐화, 모듈화가 깨지면서 코드의 안정성이 심각하게 무너진다. 이유 2: 객체의 필드가 public이라면, 필드를 private로 하고 getter 메서드를 사용하더라도, 필드를 public으로 공개하는 것과 다를 바가 없는 구조라면 결국 똑같은 문제가 일어난다. getter가 그냥 머릿속에서 지우면 되나요? 사실상, getter가 문제인 게 아니라, 객체의 구성 요소를 외부에서 조작하게 만드는 설계 구조가 문제를 일으키는 것이다. 우리는 왜 getter가 필요한지 알아야 한다. 우리는 보통 클래스 안에 있는 필드 값을 사용하기 위해 getter를 찾는다. 그럼 왜 그 값이 필요한지 의문을 던져야 한다. 가져온 값을 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/RPazN/btszKIEr7v9/l5SwoWP2pY71ePGUWIKSLk/img.png)
의존성이란? 소프트웨어 개발에서 한 요소나 컴포넌트가 다른 요소나 컴포넌트에 의존하는 관계를 가리킨다. 어떤 요소나 모듈이 다른 요소의 기능, 데이터, 또는 서비스를 필요로 하는 경우 그것을 "의존성"이라고 한다. 쉽게 말해서 그냥 "나, 너 알고 있어"다. 의존성의 핵심은 '변경'이다. 같이 변경되는 코드를 같은 곳에 넣어야 한다. 그게 의존성이라고 할 수 있다. 의존성은 다양한 관계를 이루고 있다. 클래스 간의 관계: 클래스 A가 클래스 B를 사용하면 클래스 A는 클래스 B에 의존성을 가진다. 이것은 클래스 A가 클래스 B의 메서드나 속성을 호출하거나 클래스 B의 객체를 생성하거나 사용할 때 발생한다. 모듈 간의 의존성: 소프트웨어 시스템이 여러 모듈로 구성되어 있을 때, 모듈 X가 모듈 Y의 기능을..
미션을 진행하면서 원시값 포장을 고려한다면?이라는 리뷰를 받았다. 그럼 원시값 포장이란 무엇일까? 원시값이란 우리가 잘알고 있는 것처럼, 기본 데이터 타입의 값을 가리키는 용어이다. 예를 들면 int, double, float, boolean 값이다. 그렇다면 이걸 포장하는 건 무슨 의미일까? 포장(Wrapping)이란 말그래도 감싸는 것이다. 그래서 기존의 함수나 모듈을 수정하지 않고 새로운 동작을 추가하거나 변경할 수 있다. 도대체 무슨 말일까? 코드를 예시로 들어보자. int number = 0; Number number = new Number(0); 우리는 두 방법을 사용해 생성할 수 있다. 1번은 단순히 int값에 넣는 것이고, 2번은 Number란 클래스로 값을 포장한 것이다. 그렇다면 2번 ..