0902 java

정혜지·2022년 9월 2일

2022.09.02

step06_Exception

[학습]
1. 예외(Exception)
- 사용자 혹은 개발자의 잘못으로 발행하는 오류, 처리 가능한 에러
- 에러 발생시 지속적인 서비스 제공하기 위함
- 종류
- 일반 예외 : 컴파일 체크 계열(Class... , )
- java.lang.RuntimeException 외의 모든 예외 클래스
- 제약조건 : try ~ catch 블록으로 처리 필수

	- 실행 예외
		- java.lang.RuntimeException 상속받는 모든 예외 클래스
		- try ~ catch 옵션
		
- 문법
	- 예외 발생성 가능성이 존재하는 라이브러리 사용시 문법
	- 문법 1
		try {
			예외 발생 가능성 존재하는 코드;
		}catch(발생 가능성 존재하는 예외 Exception변수) {
			예외 처리 코드;
		}
	
	- 문법 2
		try {
			예외 발생 가능성 존재하는 코드;
		}catch(발생 가능성 존재하는 예외 Exception변수) {
			예외 처리 코드;
		}finally {
			예외발생 여부와 무관, 무조건 실행되는 블럭
			**자원 반환 로직
			(ex DB 접속 해제, ...)
		}
	
	
	
	


	// step02 - 예외 처리 순서
	try {
		// NPE
		String str1 = null;

// System.out.println(str1.length());

		// NumberFormatException
		String str2 = "three";

// Integer.parseInt(str2);
} catch() {

	}




/* 관리자 계정 검증
 * - 고려사항
 * 		- 관리자인 경우 : 정상 실행
 * 		- 관리자가 아닌 경우 : 비정상 실행
 * 							-> Exception -> 사용자 정의 예외(Application Exception)
 * - 사용자 정의 예외 이름 : NotAdminException 
 */

public static void checkAdmin(String id) throws NotAdminException {
	if(!id.equals("admin")) {
		// 예외 발생

// System.out.println("관리자 계정 접속 실패");
throw new NotAdminException("관리자 계정 접속 실패");
}else {
System.out.println("관리자 계정 접속 성공");
}
}

step07_API_Collection

1.롬복Lombok
- https://projectlombok.org/
- jar(Java Archive) 파일 IDE 폴더에 다운로드
- 'java -jar lombok.jar'
- Specify 로 IDE 선택
- Install/Update 버튼 클릭
- Quit Installer 버튼 클릭
- IDE 종료 후 재실행

	- 프로젝트 우클릭 - Build-path
	- Ex Jar Library - 해당 Lombok.jar 선택
	
- @어노테이션 기반으로 반복되는 소스 코드를 컴파일 과정에서 생성해주는 라이브러리
- @NoArgsConstructor, @AllArgsConstructor
- @Data

2.컬렉션 프레임 워크
- https://docs.oracle.com/javase/8/docs/technotes/guides/collections/reference.html
- 프로그램 구현에 필요한 자료구조(Data Structure)를 구현한 JDK 라이브러리
- java.util 패키지에 구현
- 최적화된 알고리즘을 사용하며, 개발 소요 시간 절약 가능

- Collection 인터페이스
	- 하위에 List, Set 인터페이스 존재
	
	- List 인터페이스
	 	- 객체를 순서에 따라 저장하고 관리
	 	- 자료구조 리스트의 구현을 위한 인터페이스
	 	- 중복 허용
	 	- ArrayList, Vector, LinkedList...
			
			- ArrayList 
				- 내부 배열에 객체를 저장하여 인덱스로 관리
				- 초기 크기 생성시 지정 가능
			
			- LinkedList
				- Node가 Data와 Poniter를 가지고 한 줄로 연결되어 있는 자료 구조
				- 각 Node들은 연결, 포인터는 노드의 연결을 담당
				- 데이터 변경시 인덱스가 변경되는 것이 아니라 node 참조 링크 주소만 변경하여 관리
				- 초기 크기 생성시 지정 불가능
			 	
	 - Set 인터페이스
	 	- 유일한 값을 관리
	 	- 저장된 순서와 출력 순서 다를 수 있음
	 	- HashTree, TreeSet, ...
	 	- ex. 아이디, 주민번호 등 고유한 값에 적용
	 	
	 - Map 인터페이스
	 	- Key : Value 로 이루어진 객체 관리
	 	- Key 중복 불가능
	 	- HashTable, HashMap, TreeMap, ...
	 	

-javaagent:C:\dev\99.dev\eclipse\lombok.jar
** https://mvnrepository.com/

// HashMap
// HashMap<String, ArrayList>
ArrayList arr3 = new ArrayList<>();
arr3.add("a");
arr3.add("b");
arr3.add("c");
arr3.add("d");

// Ex04 JSON
https://www.json.org/json-en.html

// layered architecture
// https://www.ibm.com/kr-ko/cloud/learn/three-tier-architecture
// https://www.oreilly.com/library/view/software-architecture-patterns/9781491971437/ch01.html

  • presentation Layer
  • Business Layer
  • DB Layer
    - Persistence Layer
    • Database Layer
profile
오히려 좋아

0개의 댓글