최종코테 벼락치기..
24시간의 전사가 되기 위해 여기저기서 모은 자료들^^
참고 : https://github.com/orgs/woowacourse-precourse/discussions/1706
MVC 패턴
1) View
2) Controller
- LottoController, MemberController 등
3) Domain
https://heesangstudynote.tistory.com/108
클래스 나누기
- 최대한으로 클래스 분리. 클라스가 하나의 책임을 가지도록
- 분리를 했으면 직접 사용하지 않고 메시지를 전달한다
- 객체에 메시지를 던져서 작업을 해야지, 값을 가져와서 다른 곳에서 작업x
- 메시지를 받는 객체는 자신의 속을 오픈하기보다, 작업을 해주도록 해야함
(한 코드에 점이 둘 이상 있으면 안된다. 단, stream 제외)
일급 컬렉션
- 일급 컬렉션 : collection을 wrapping하면서, 그 외 다른 멤버 변수가 없는 상태
- collection의 값을 변경할 수 있는 메소드가 없는 collection
- 불변 객체 (절대 값이 바뀔일이 없다는 것을 보장) 위해
예시1


예시2

예시3


원시값과 문자열 포장(wrap)

원시 타입 포장 객체를 만들면 해당 객체에 대한 유효성 검사를 객체 내부에서 처리할 수 있다.
https://tecoble.techcourse.co.kr/post/2020-05-29-wrap-primitive-type/
예외처리
1) validate (검증)
- 입력에 대한 검증 -> inputView에서
(ex. inputView에서 예외 던지기)
- 비즈니스 요구사항에 대한 검증 -> 각각의 domain 혹은 service에서
(ex. 클래스 생성할 때 validation)
2) handling (처리)
예외 발생시 재호출 제네릭 사용하여 편하게 하는 법

예시
유효성 검사는 그 객체 안에서 생성과 동시에

정규표현식
- 특정 검색 패턴에 대한 하나 이상의 일치 항목을 검색해서 텍스트에서 정보를 추출
- 유효성 검사, 문자열 파싱 및 대체, 데이터 형식 변환 등에 사용
