📅 2023-12-21, 11일차
🤔 WiseSaying 클래스에 명언 등록부분 코드가 이해가 잘 안된 것 같아
일단 메모장 열어서 코드한줄 한줄 해석하면서 메모장에 적어보았다.
그냥 머리속으로 생각하는 것 보다 생각하는 걸 적어내려가니
훨씬 정리가 잘 된다! 앞으로 구현 할 코드들은 이보다도 더 길어진텐데
내 생각을 그대로 적는 것이 도움이 많이 될 것 같다.
WiseSaying 클래스에서 명언 등록 부분 코드 이해하기:
명언 등록 후
WiseSaying (데이터 조립 후 저장하기 위한 클래스) 만들고,
lastId 명언 작가를 조립하기 위해 객체를 생성자로
(번호 명언 작가가 들어갈 자리를 한번에 만들어서) 하나 만듬
등록 될 때마다 객체변수에 저장이되고
그 변수안에 들어있는 걸
ArrayList 변수에 넣는다
이때 = 를 사용하지않고
ArrayList변수명.add(객체변수명); 으로 넣는다
그럼 이제 저장 완료
App 클래스
기능용 설계도
리팩토링
외부에서 보는 프로그램의 기능은 바꾸지 않고 내부구조를 개선하는 것
- 구현 해놓은 걸 정리하는 과정
- 구현 -> 리팩토링 -> 구현 -> 리팩토링
- 구현 시 코드들을 마구마구 쌓아놓은 후
패키지마다 이관하여 정리하는 행위를 리팩토링이라고 한다.
건축 (개발) -> 운영 (유지보수)
개발을 할 때 유지보수 하기쉬운 상태로 만들어야 한다.
다수의 데이터를 구조적으로 만들 필요가 있다
💡 통신채널이 적을 수록 좋다
💡 명령의 흐름은 수직적일수록 좋다
가독성
자바는 코드의 중복을 최소화하기 위해 맞춰진 언어이다
프로그램의 구조 (3등분)
- 종료
- 데이터 처리기능:
(C R U D )
CREATE
READ
UPDATE
DELTE
- 빌드
intit
- 공통적으로 사용되는 자원들은 모아두는 공간 초기화
- 명언앱만들기에서 init / close를 main 클래스에 미리 넣어두는 이유는?
- Container.init 안에 scanner을 넣었으니
- 프로그램이 시작되자마자 scanner를 바로 공공자원으로 사용할 수 있도록하기 위해서!
close
- 공통적으로 사용되는 자원들은 모아두는 공간 자원 해제
parsing
- 구문 분석
- 문장이나 데이터를 분해하고 분석하여 조립하고 다시 빼내는 것
명언앱, Container 클래스 도입
- 공공자원을 보관하는 역할
- 여기저기서 가져다 쓸 수 있게
- 예) scanner 기능을 container 클래스에 넣어서 여기저기서 scanner 기능을 사용 할 수 있게 함
명언앱, Rq 클래스 도입
- Rq 클래스는 라우터 역할을 해준다
- 길안내
- 커맨드에 따라 어떤 switch문으로 가서 어떤 일을 할건지 안내해줌
강사님 says
- 신입에게 바라는건 commnunication
- 그러나 학습능력이 더 중요하다
TO DO
- "생성자 심화 및 ArrayList, 제네릭" 강의영상
- static 블록 복습
- 생성자 return 값에 대해서. return값이 없으면 void로 표기한다.
- Scanner 공유자원만들기 부분 복습
- "8단계, Container 를 도입하여 구조 개선" 영상
- init / close
- container
- parsing
- "9단계, 명령어 파싱"
- "10단계, Rq 클래스 도입, 명령어 분석 기능 요청"
- 강사님 parsing부분만 깃허브에서 띄어서 글로 해석하고 출력결과 적는 연습 혼자 해보기
- Rq 클래스 생성
- "11단계, Rq를 전체 명령어에 도입, 라우팅 코드를 간결하게"
- split() 메타문자 어쩌구(?) 찾아보기
🤔 깃허브 사용법을 배웠는데도 은근히 깃허브 익숙해지데에 시간이 걸리는 것 같다. 매일매일 업데이트 하면서 잔디 열심히 심어야겠다!