2020-12-18

jsbak·2020년 12월 18일
0

jquery validation pluin 이용

Exception

Throwable ( 호출스택에 쌓여서 B에서 발생한 에러가 A로 전달 되고 A에서 Main으로 보내기
때문에 Main 쓰레드가 멈출 수 있었다.)

  • Error : 개발자가 처리하지 않고 VM 이 제어권을 가져가는 비정상
  • Exception : 처리할 수 있는 비정상
    • Checked Exception(Exception) : 예외 발생 가능 코드에 대해 적극적 예외 처리 필요
    • Unchecked Exception(Exception->RuntimeException) : 직접 처리하지 않더라도 호출 구조에 따라 throw 가 되는 예외, 최종적으로 VM 이 제어권 획득.

throws(수동적 처리, 호출자에게 제어권 전달), try~catch~finally(능동적 처리, 해당 메소드 내에서 적극 처리)

예외 발생
throw new 예외 객체

명시적으로 호출자에게 넘겨주는지, 자동으로 넘기는지 차이

public class ExceptionDesc {
	public static void main(String[] args) throws IOException {
	 try {
		 method1();
//		} catch (IOException e) {
//			// e 는 throw 된 IOException 에서 부터 나온 녀석
//			System.err.println(e.getMessage());
		} catch (IllegalArgumentException | IOException e) {
			// multi-catch
			System.err.println(e.getMessage());
			
			throw e; // 다시 예외가 발생한 것과 마찬가지니까 에러가 난다.	// VM에게 넘기기 위해서 했다.
			// IllegalArgumentException | IOException 둘중하나이다.
			// 하지만 throws를 IOException
			// 언체크드는 호출자에게 알아서 넘기기 때문에 throws 하지 않아도 된다.
		}
	}
	
	private static void method1() throws IOException {
		if(1==1) {
			// Unhandled exception type IOException
			// 예외 처리가 안되고 있다. 잡아서 처리해야한다.
//			throw new IOException("강제 발생 예외");			
			throw new IllegalArgumentException("강제 발생 예외");
		}
	}
}

CustomException


다른 예외로
체크드를 언체크드로 , 언체크드를 체크드로 바꿀수 있다.
예외끼리 서로 매핑이된다?
모든 예외는 서로 어댑팅할 수 있다.

mybatis에서는 SQLException을 언체크드로 바꿈

체크드 캐치하나, 언체크드 캐치하나

public class ExceptionDesc {
	public static void main(String[] args) {
		try {
			method1();
//		} catch (IOException e) {
//			// e 는 throw 된 IOException 에서 부터 나온 녀석
//			System.err.println(e.getMessage());
//		} catch (IllegalArgumentException | IOException | CustomException e) {
		} catch (RuntimeException e) {
			// multi-catch
			System.err.println(e.getMessage());
			
//			throw e; // 다시 예외가 발생한 것과 마찬가지니까 에러가 난다.	// VM에게 넘기기 위해서 했다.
			// IllegalArgumentException | IOException 둘중하나이다.
			// 하지만 throws를 IOException
			// 언체크드는 호출자에게 알아서 넘기기 때문에 throws 하지 않아도 된다.
			
			// 추가 하지않고 CustomException을 런타임이나, IOE로 바꾸면된다.
//			throw new IOException();	// 성질을 변경해서 다른것이된다.
//			throw new IOException(e);	// e 내용은 유지하는데 IOE로 변경, throws IOException 지우니 에러남
//			throw new RuntimeException(e);
			throw e;
		} catch(Exception e) {
			System.err.println(e.getMessage());
			throw new RuntimeException(e);
			// Checked에서 Unchecked로 변경
		}
	}
	
//	private static void method1() throws IOException, CustomException {
	private static void method1() throws IOException {
		if(1==1) {
			// Unhandled exception type IOException
			// 예외 처리가 안되고 있다. 잡아서 처리해야한다.
//			throw new IOException("강제 발생 예외");			
//			throw new IllegalArgumentException("강제 발생 예외");
			throw new CustomException("강제 발생 예외");
		}
	}
}

예외 이름 안에 40% 정보 포함
, 예외 내용 20%
, 그 다음이 스택 구조를 확인해야한다.

예외 자체를 받아서 내 로직의 일부분으로 사용할 수 있어야한다.

배치처리

  1. 멀티 스레드
  2. 스케줄링

페이지 이동 중복을 어떻게 처리할거냐
프론트 컨트롤러 패턴, 커맨트 패턴

로그인 정책에 따라 코드가 계속 바뀜.

포스트-리다이렉트-갯 방식
P.R.G 방식
비슷하게 동작하기 때문에 이뤄진다.

맨처음에 해야하는게 memberdaoimpl 이었네 ㅋㅋㅋ..... ㅠ

memberform에서 input태그의 class=‘ editable‘ 를
설정, 수정할때도, 가입할때도 필요한 녀석들에다가만 넣어둠, 이 클래스를 가지냐 안가지냐
입력제한 UI설정, ID 중복체크 부분도 못쓰게하고 숨겨버림

편하게 하려면 가입과 수정 jsp를 분리하는 방법도 있겠다.

어떤 비즈니스를 처리하는가에 따라 코드가 달라져야한다.
다음주 2가지 프레임워크
1. Mybatis
2. Hibernate-validator

벨리데이터를 어떻게 사용하는지
에러메시지를 어떻게 처리하는지
비즈니스 로직이 그룹?? 뭐?

페이징 필수는 제네릭 타입!

미션

  1. 메시지를 alert가 아닌 다른 방식으로 띄우고 플러그인을 써보던 뭐하던
    노티인가 뭔가?

  2. jquery의 벨리데이션이라는 플러그인
    jquery validation
    벨리데이션을 해주고 , 해당하는 메시지를 띄워준다. 커스텀도 가능 (최프에서 쓰면 쓸한만 것으로 할수 있다.)

  3. 거래처에서도 우편번호 검색해야하니까
    우편번호 부분 jquery플러그인으로 만들기? 모듈화 시키기?

profile
끄적끄적 쓰는곳

0개의 댓글