본문 바로가기

하루정리

2022.08.23 extends 와 implements의 차이와 쿼리문 기타 요소 @SessionAttiibutes

Extends 와 implements의 차이점

 

 

Extends 

implements

-부모의 메소드를 그대로 사용한다. -부모의 메소드를 재정의 하여 사용해야만 한다. 
-일반 class와 abstract class상속에 사용된다.  -interface 상속 받을 때 사용한다. 
  *interface가 interface를 상속받을 때 일반 class가 interface를 상속받을 때.
-한 개의 클래스만 상속받을 수 있다.  -여러 class를 상속 받을 수 있다. 
-부모 클래스의 기능을 사용 -설계를 목적으로 구현이 가능하다. 
-클래스의 확장 -인터페이스의 구현
-추상적으로 만들어지지 않은 메소들을 오버라이딩 없이 그대로 가져다 쓰기 때문에 재정의가 필요가 없다.  -추상적으로 구현된 interface의 메소드를 받아 사용하기에 재정의가 꼭 필요하며, 위에서 말한대로 추상적으로 만들어진 것의 설계를 위함. 

 

 

 

@SessionAttiibutes

컨트롤러 메서드가 생성하는 모델 정보 중에서 

@SessionAttibutes에 지정한 이름과 동일한 이름이 있다면 이를 세션에 저장해준다. 

@SessionAttibutes("A")라고 할 때 A라는 이름을 가진 모델을 세션에 저장해주는 것.

-뷰가 이 모델을 참조해서 기존 사용자 정보를 폼에 뿌려줄 수 있게 하기 위해서 이다. 

 

@ModelAttribute가 지정된 파라미터가 있을 때 이파라미터에 전달해줄 오브젝트를 세션에서 가져온다. 

- 세션에 같은 이름의 오브젝트가 존재하는지 확인. 

-존재한다면 세션에 있는 오브젝트를 가져와 @ModelAttribut파라미터로 전달해 줄 오브젝트를 사용. 

-존재하지 않는다면 새로 오브젝트를 만들어서 사용한다. 

 

*오늘 봤던 코드중에 form에서 action으로 값을 넘겨줄 때 submit가 없이 function으로 가서 유효성 검사를 하고 

서버로 넘어가는 부분이 있었는데, 아무리 찾아도 name 값을 모은 object, List, Arry 을 찾을 수가 없었는데

세션을 통째로 보내는 것으로 코드를 줄인 것이었다. 

 

연속해서 클라이언트로부터 submit가 날아오는 경우 중복 submit를 방지할 때 사용된다. 

 -SessionAttributes를 담은 객체는 SessionStatus의 setComplete()를 호출해주기 전까지 계속 담겨 있다. 

 

 

 

쿼리문

 

insert into tableTest(컬럼명1,컬럼명2,컬럼명3.......)

 

select  데이터 값1, 데이터 값2, 데이터 값3..... from tableTest

같은 쿼리문을 보았는데 이는 사수분께 질문을 드려봐야 할 듯 하다. 

 

다만 insert into select * from 문은 select로 조회된 값을 insert할 때 쓰인다. 

 

 

Batch(배치)란?

시스템의 작업 순환을 말한다. 

동기화의 개념을 생각하면 된다. 

특정 작업을 정해진 시간에 반복하는 것을 

Batch 라고 한다.

 

 

 

아직은 계속 배우는 단계라고 생각한다. 

나는 시작을 si가 아닌 sm으로 했지만

오히려 누군가 만들어 둔 코드를 보고 공부하고 배울 수 있다는 것에

매우 감사하고 있다.  교육원을 나와서 바로 실무에서 신입의 몪을 할 수 있다고는 

전혀 생각치도 않는다. 업무를 보며 공부하고 si로 갔을 때 빠르게 올라가고 싶다.