프로젝트 과정 요약 정리
001. 프로젝트 준비
$ gradle init
--> ~/git/study-workspace/board-app에 폴더 설정
002. 리터럴과 콘솔 출력
- UML(Unified Modeling Language)
- Unified: 통합된
- Modeling: 생각한 바를 글과 그림으로 표현
- Language: 문법
- main method는 프로그램의 시작점, entry point이다.
003. 키보드 입력과 변수, 조건문, 반복문
-
아직 App class에 main() method 하나밖에 없음.
-
Scanner 클래스 + System.in을 이용하여 키보드에서 입력을 받음
(1) System.in: 키보드의 입력을 받음
(2) Scanner: System.in이 넘겨준 값을 원하는 형태로 잘라주는 일을 함.
- nextInt() --> int 값을 자름
- nextLine() --> String 값을 자름
(3) 조건문
int meniNo;
if(menuNo == 0) {
...
}else if (menuNo == 1) {
...
}
...
(4) 반복문(for, while)
(5) Method
- Static Method = Class Method
Mathod.abs(값)
Sacnner keyboardInput = new Scanner(System.in);
- new: Scanner 도구함에 들어 있는 도구를 사용하기 전에 필요 정보를 설정한다.
- keyboardInput: 레퍼런스(reference), 설정 정보를 가르키는 변수 = 설정 정보가 들어 있는 메모리의 주소를 다는 변수
04 변수 사용법
- 변수를 선언할 때 먼저 변수에 값을 저장, 설정해주어야 한다. ==> 초기화 해주지 않고 컴파일 하면 오류가 나게 된다. 초기화 하지 않은 변수는 사용될 수 없기 떄문이다.
int i;
System.out.println(i); --> 컴파일 오류
String title = ""; --> 이런식으로 초기 값을 초기화 해주어야 한다.
- SimpleDateFormat 클래스 사용법
- format(): Instance Method
- new Date(createdDate)
005. 배열 사용법
final int SIZE = 3;
- final: 상수 선언, 유지 보수에 유리
- 상수 변수는 상수임을 알아보기 쉽게 하기 위하여 대문자로 선언해준다. -> SIZE
int[] no = new int[SIZE]
- no-> reference, 배열의 주소를 저장하는 변수
- new int[SIZE]-> 배열 instance
- index: 배열 메모리를 가리키는 번호, 0부터 시작
no[0] = 1;
- no: 배열 레퍼런스
- []안의 0: 인덱스
- 1: 값
int[] no = new int[3];
np = new int[5];
- 첫 번째의 new int[3]인스턴스는 garbage가 된다.
==> 이를 Garbage Collector가 CPU가 한가하거나 메모리가 부족할 때 garbage를 없앤다.
006. 메서드 사용법
- main() 메서드에 들어 있는 코드를 기능별로 분리하여 메서드를 정의 -> 이 정의 된 메서드들을 다시 main() 메서드에서 호출
void welcome(){
...
}
main(){
welcome();
}
007. 클래스 사용법
- 역할을 여러개의 클래스로 쪼개어 관리를 더 쉽게 만든다.
- GRASP pattern, General Respeonsible Assignment Software Patterns(객체 지향패턴의 근본적인 가이드, 실무 권고)
- Low Coupling
=> 관련된 Class를 줄여라! -> 다른 클래스의 변경에 따른 영향 최소화
- High Cohesion
=> 한 클래스가 가능한 한 개의 역할을 수행하도록 해라!(응집력, 집중도)를 높여라!