반응형

오버라이딩(Overriding)이란 상위 클래스가 가지고 있는 메서드를 하위 클래스가 재정의 하는 것입니다. 즉 상속 관게에 있는 클래스 간에 같은 이름의 메서드를 정의 하는 것을 말합니다.

 

오버로딩(Overloading)이란 같은 이름의 메서드 여러개를 가지면서 매개변수의 유형과 개수가 다르도록 하는 기술입니다.

 

-오버라이딩 예제

public class Overriding1 {
	String name;
	int speed;
	
	public void OverringCarTest() {
		System.out.println("차의 이름은" + name + "이고, 속도는 평균 " + speed +"km 입니다.");
	}
}

 

public class OverridingTest extends Overriding1 {
	int as;
	
	public void OverridingCarTest() {
		System.out.println("차종의 이름은 " + name + " 이고, 평균 속도는 " + speed +"km 입니다.");
		System.out.println("as보증기간은 " + as + "년 입니다.");
	}
}

 

public class OverridingMain {
public static void main(String[] args) {
	OverridingTest ort = new OverridingTest();
	
	ort.name = "테슬라3";
	ort.speed = 100;
	ort.as = 5;
	
	ort.OverridingCarTest();
}
}

 

-오버로딩 예제

public class Overloading {
	void test() {
		System.out.println("매개변수 없음");
	}
	void test(int a, int b) {
		System.out.println("나의 키는" + a + "이고, 몸무게는" + b + "입니다.");
	}
	void test(double c) {
		System.out.println("점프력은" + c + "입니다");
	}
}
public class OverloadingTest {
	public static void main(String[] args) {
		Overloading ol = new Overloading();
	
		ol.test();
		
		ol.test(170, 70);
		
		ol.test(53.7);	
	
	}
	
	
}

반응형
블로그 이미지

꽃꽂이하는개발자

,
반응형

며칠전 면접을 보았는데 거기 필기문제에 Page, Reqest, Session, Application 의 Scope에 관한 문제가 나오더군요.

 

1. (JSP) Page scope

실제 선언된 JSP페이지 내에서만 사용할 수 있습니다.

  • PageContext추상 클래스를 사용하며,
  • JSP페이지에서 pageContext라는 내장객체로 사용이 가능합니다.
  • pageContext이름.setAttribute(), pageContext이름.getAttribute()등의 방법으로 바로 사용이 가능합니다.
  • forward가 될 경우 해당 Page scope에 지정된 변수는 사용할수가 없습니다. 어떤 페이지로 요청이 들어온 뒤, 다른 페이지로 forward될 경우 이전 page scope내에 있던 변수는 forward된 page scope내에서 사용할 수가 없습니다.
  • 그러나 Request는 forward와 상관없이, 한번 요청 후 응답할 때까지 계속 유지 됩니다.
  • 마치 지역변수처럼 사용된다는 것이 다른 Scope들과 다른 점입니다.
  • pageScope는 지역변수와 별 차이가 없기 때문에 많이 쓰이지는 않지만, 종종 필요한 경우가 있습니다. JSP에서 pageScope에 값을 저장한 후 해당 값을 EL 표기법 등에서 사용할 때, 지역 변수처럼 해당 JSP나 Servlet이 실행되는 동안에만 정보를 유지하고자 할 때 사용됩니다.

2. Request scope

  • 클라이언트로부터 하나의 요청이 들어와서 서버가 일을 수행한 후 응답을 보낼때까지, 계속 사용할수 있는 scope입니다.
  • Web container 안에 있는 Servlet에 대한 http요청을, WAS가 받아서 웹 브라우저에게 응답할 때까지 변수 값을 유지하고자 할 경우 사용합니다. 모든 요청이 들어올 때마다, WAS는 request 객체와 response 객체를 만듭니다. forward여부 등과 상관없이, 하나의 요청이 들어와서 응답이 나갈 때까지 계속 유지됩니다.
  • Servlet의 service() 메소드가 끝날 때 Request Scope가 끝납니다.(request객체가 없어집니다.)
  • JSP에서는 request 내장 변수를 사용합니다.
  • Servlet에서는 HttpServletRequest 객체를 사용합니다.
  • 값을 저장할 때는 request 객체의 setAttribute() 메소드를 사용합니다.
  • 값을 읽어 들일 때는 request객체의 getAttribute() 메소드를 사용합니다.
  • 사용목적은 forward시 값을 유지하고자 사용합니다.
  • forward 하기 전에 request 객체의 setAttribute()메소드로 값을 설정한 후, Servlet이나 JSP에게 결과를 전달하여 값을 출력하도록 하였는데, 이렇게 forward되는 동안 값이 유지되는 것이 Request scope를 이용한 것입니다.

3. Session scope

  • session 객체가 생성되고 소멸 될 때까지 request는 하나의 요청과 응답이 나갈때까지이지만, Session scope는 session객체가 만들어 져서 소멸될 때까이므로, 하나가 아닌 여러개의 요청이 들어와도 계속 남아 있습니다.
  • 웹 브라우저 별로 변수를 관리하고자 할 경우 사용하며, 보통 웹 브라우저를 클라이언트라고 지칭하는데, 이는 여러 개가 있을 수 있습니다. Session scope는 하나의 클라이언트마다 객체를 만들어서 관리하는 것입니다. 따라서 session scope는 한 클라이언트 내의 여러 개의 request들을 다 커버합니다.
  • 웹 브라우저 탭 간에는 세션정보가 공유되기 때문에, 각각의 탭에서는 같은 session정보를 사용할 수 있습니다.
  • Request scope와 달리, 하나의 session scope내에서는 하나의 request가 끝난다고 해도 session객체는 계속 유지될 것입니다. 미리 지정해 놓은 시간이 초과되거나, 탭이 닫히는 경우에 session이 종료됩니다. 즉 request보다는 정보를 오래 유지하게 되는 것입니다.
  • HttpSession 인터페이스를 구현한 객체를 사용합니다.
  • JSP에서는 session 내장 변수를 사용합니다.
  • Servlet에서는 HttpServletRequest의 getSession() 메소드를 이용하여 session 객체를 얻습니다.(여기서 Request의 메소드를 사용하는 이유는, session 객체가 어떤 클라이언트의 요청인지 알아야 하기 때문입니다.)
  • 값을 저장할 때는 session객체의 setAttribute()메소드를 사용합니다.
  • 값을 읽어 들일 때는 session객체의 getAttribute()메소드를 사용합니다.
  • 쇼핑몰 장바구니처럼 사용자 별로 유지되어야 할 정보가 있을 때 사용합니다.

4. Application scope

  • 하나의 application이 생성되고 소멸될 때까지 계속 유지합니다.
  • Eclipse에서 하나의 Project가 하나의 Application이라고 생각하면 되고, 하나의 Server에는 여러 개의 Web application이 존재할 수 있습니다.
  • 웹 어플리케이션이 시작되고 종료(혹은 다시 시작)될 때까지 변수를 사용할 수 있습니다.
  • ServletContext 인터페이스를 구현한 객체를 사용합니다.
  • JSP에서는 application 내장 객체를 이용합니다.
  • Servlet의 경우는 getServletContext() 메소드를 이용하여 application 객체를 이용합니다.
  • 웹 어플리케이션 하나당 하나의 application 객체가 사용됩니다.
  • 값을 저장할 때는 applciation객체의 setAttribute() 메소드를 사용합니다.
  • 값을 읽어 들일 때는 application객체의 getAttribute() 메소드를 사용합니다.
  • 모든 클라이언트가 공통으로 사용해야 할 값들이 있을 때 사용합니다. 하나의 application scope는 여러 클라이언트들이 사용할 수 있기 때문입니다.

 

 

참고 사이트

https://starkying.tistory.com/entry/Servlet-JSP%EC%9D%98-4%EA%B0%80%EC%A7%80-Scope

반응형
블로그 이미지

꽃꽂이하는개발자

,
반응형

Q. Servelt, JSP

A.

Servlet - Container가 이해할 수 있도록 구성된 자바코드로 이루어진 Html in JAVA

JSP(Java Server Page) - Html기반에 자바코드를 블록화하여 삽입한 것(JAVA in Html)

 

Q. Get과 Post차이

A. 

1. GET방식

  • 클라이언트에서 서버로 데이터를 전달할 때, 주소 뒤에 "이름"과 "값"이 결합된 쿼리 스트링 형태로 전달
  • 주소창에 쿼리 스트링이 그대로 보여지기 때문에 보안성이 떨어진다.
  • 길이에 제한이 있다.
  • Post방식보다 상대적으로 전송 속도가 빠르다.

2.POST방식

  • 일정 크기 이상의 데이터를 보내야 할 때 사용한다.
  • 서버로 보내기 전에 인코딩하고, 전송 후 서버에서는 다시 디코딩 작업을 한다.
  • 주소창에 전송하는 데이터의 정보가 노출되지 않아 Get방식에 비해 보안성이 높다.
  • 속도가 Get방식보다 느리다.
  • 쿼리 스트링(문자열)데이터 뿐만 아니라. 라디오 버튼, 텍스트 박스 같은 객체들의 값도 전송이 가능하다.

3. GET, POST차이

  • Get은 주로 웹 브라우저가 웹 서버에 데이터를 요청할 때 사용
  • Post는 웹 브라우저가 웹 서버에 데이터를 전달하기 위해 사용
  • GET을 사용하면 웹 브라우저에서 웹 서버로 전달되는 데이터가 인코딩되어 URL에 붙는다.
  • POST방식은 전달되는 데이터가 보이지 않는다
  • GET방식은 전달되는 데이터가 255개의 문자를 초과하면 문제가 발생할 수 있다.
  • 웹 서버에 많은 데이터를 전달하기 위해서는 POST방식을 사용하는 것이 바람직하다.

Q. Session가 Cookie

A.

1. Session과 Cookie 사용이유

  현재 우리가 인터넷에서 사용하고 있는 HTTP 프로토콜은 연결 지향적인 성격을 버렸기 때문에 새로운 페이지를 요청할 때마다 새로운 접속이 이루어지며 이전 페이지와 현재 페이지 간의 관계가 지속되지 않는다. 이에 따라 HTTP프로토콜을 이용하게 되는 웹사이트에서는 웹페이지에 특정 방문자가 머무르고 있는 동안에 그 방문자의 상태를 지속시키기 위해 쿠키와 세션을 이용한다.

 

2. Session

  • 특정 웹사이트에서 사용자가 머무르는 기간 또는 한 명의 사용자의 한번의 방문을 의미한다.
  • Session에 관련된 데이터는 Server에 저장된다.
  • 웹 브라우저의 캐시에 저장되어 브라우저가 닫히거나 서버에서 삭제시 사라진다.
  • Cokkie에 비해 보안성이 좋다.

3. Cookie

  • 사용자의 정보를 유지할 수 없다는 HTTP의 한계를 극복할 수 있는 방법
  • 인터넷 웹 사이트의 방문 기록을 남겨 사용자와 웹사이트 사이를 매개해주는 정보이다.
  • Cookie는 인터넷 사용자가 특정 웹서버에 접속할 때, 생성되는 개인 아이디와 비밀번호, 방문한 사이트의 정보를 담은 임시파일로써, Server가 아닌 Client에 텍스트 파일로 저장되어 다음에 해당 웹서버를 찾을 경우 웹서버에서는 그가 누구인지 어떤 정보를 주로 찾았는지 등을 파악할 때 사용된다.
  • Cookie는 Client PC에 저장되는 정보이기 때문에, 다른 사용자에 의해서 임의로 변경이 가능하다.

Q. 보안성이 낮은 Cookie대신 Session을 사용하면 되는데 안하는 이유?

A. 모든 정보를 Session에 저장하면 Server의 메모리를 과도하게 사용하게 되어 Server에 무리가 가게된다.

 

Q. MVC패턴

A.

1. MVC?

  • 객체지향프로그래밍에서, MVC란 사용자 인터페이스를 성공적이며 효과적으로 데이터 모형에 관련 시키기 위한 방법론 또는 설계 방식중 하나이다. MVC방식은 자바 Smalltalk
  • MVC패턴은 목적 코드의 재사용에 유용한 것은 물론, 사용자 인터페이스와 응용프로그램 개발에 소요되는 현저하게 줄여주는 형식이라고 많은 개발자들이 평가

2.MVC 구성요소

  • Model - 소프트웨어 응용과 그와 관련된 고급 클래스 내의 논리적 데이터 기반 구조를 표현, 이 목적 모형은 사용자 인터페이스에 관한 어떠한 정보도 가지고 있지 않다.
  • View - 사용자 인터페이스 내의 구성요소들을 표현(사용자에게 보여지는 화면)
  • Controller - Model과 View를 연결하고 있는 클래스를 대표, Model과 View 내의 클래스들 간의 정보교환 하는데 사용
반응형
블로그 이미지

꽃꽂이하는개발자

,
반응형

1. Framework

  • 특정 형태의 소프트웨어 문제를 해결하기 위해 상호 협력하는 클래스 프레임과 인터페이스 프레임의 집합
  • 특정한 틀을 만들어 놓고 거기에 내가 만든 부품을 조립하여 작업시간을 줄여주는 것
  • 특정 개념들의 추상화를 제공하는 여러 클래스나 컴포넌트로 구성
  • 추상적인 개념들이 문제를 해결하기 위해 같이 작업하는 방법을 정의
  • 프레임워크는 좀 더 높은 수준에서 패턴을 조작
  • 프레임워크가 중요한 이유는 객체지향 개발을 하게 되면서 개발자의 취향에 따라 다양한 프로그램이 나오게 되었다. 프로그램 개발에 투입되는 개발자도 점점 늘어남에 따라 전체 시스템의 통합성, 일관성이 부족하게 되었기 때문이다. 그래서 개발자의 자유를 제한하기 위해 프레임워크를 도입했다.

 

  • 프레임워크가 가져야 할 특징
  • - 개발자들이 따라야할 가이드라인을 가진다
  • - 개발할 수 있는 범위가 정해져 있다.
  • - 개발자를 위한 다양한 도구들이 지원된다.

 

  • 프레임워크의 장단점
  • 장점 - 개발 시간을 줄일 수 있고 오류로부터 자유로울 수 있다.
  • 단점 - 프레임워크에 너무 의존하면 개발 능력이 떨어져서 프레임워크 없이 개발하는 것이 불가능해진다.

 

2. Spring Framework(스프링 프레임워크)

  • 자바(JAVA)플랫폼을 위한 오픈소스 애플리케이션 프레임워크이다.
  • 자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크
  • 자바 개발을 위한 프레임워크로 종속 객체를 생성해주고, 조립해주는 도구
  • 자바로 된 프레임워크로 자바 SE로 된 자바 객체(POJO)를 자바 EE에 의존적이지 않게 연결해주는 역할

3. 스프링의 특징

  • 가볍다
  • 제어 역행(IoC)이라는 기술을 통해 애플리케이션의 느슨한 결합을 도모
  • 관점 지향 프로그래밍(AOP)을 위한 풍부한 자원
  • 애플리케이션 객체의 생명주기와 설정을 포함하고 관리한다는 점에서 일종의 컨테이너(Container)라고 할 수 있다.
  • 간단한 컴포넌트로 복잡한 애플리케이션을 구성하고 설정할 수 있다.

4. 스프링의 특징

  • 경량 컨테이너로써 자바 객체를 직접 관리한다. 각각의 객체 생성, 소멸가 같은 라이프 사이클을 관리하며 스프링으로부터 필요한 객체를 얻어 올 수 있다.
  • 스프링은 POJO(Plain Old Java Object)방식의 프레임워크이다. 일반적인 J2EE 프레임워크에 비해 구현을 위하여 특정한 인터페이스를 구현하거나 상속을 받을 필요가 없어 기존에 존재하는 라이브러리등을 지원하기에 용이하고 객체가 가볍다.
  • 스프링은 제어의 역행(IoC : Inversion of Control)을 지원한다. 컨트롤의 제어권이 사용자가 아니라 프레임워크에 있어서 필요에 따라 스프링에서 사용자의 코드를 호출한다.
  • 스프링은 의존성 주입(DI: Dependency Injection)을 지원한다. 각각의 계층이나 서비스들 간에 의존성이 존재할 경우 프레임워크가 서로 연결시켜준다.
  • 스프링은 관점 지향 프로그래밍(AOP: Aspect-Oriented Programming)을 지원한다. 따라서 트랜잭션이나 로깅, 보안과 같이 여러 모듈에서 공통적으로 사용하는 기능의 경우 해당 기능을 분리하여 관리할 수 있다.
  • 스프링은 영속성과 관련된 다양한 서비스를 지원한다. MyBatis나 Hibernate등 이미 완성도가 높은 데이터베이스 처리 ㄱ라이브러이와 연결할 수 있는 인터페이스를 제공한다.
  • 스프링은 확장성이 높다. 스프링 프레임워크에 통합하기 위해 간단하게 기존 라이브러리를 감싸는 정도로 스프링에서 사용이 가능하기 때문에 수많은 라이브러리가 이미 스프링에서 지원되고 있고 스프링에서 사용되는 라이브러리를 별도로 분리하기도 용이하다.

5. Spring MVC 구조의 처리과정

  • DispatcherServlet: 어플리케이션으로 들어오는 모든 Request를 받는 관문이다. Request를 실제로 처리할 Controller에게 전달하고 그 결과값을 받아서 View에게 전달하여 적절한 응답을 생성할 수 있도록 흐름을 제어한다.
  • HandleMapping: Request URL 각각 어떤 Controller가 실제로 처리할 것인지 찾아주는 역할
  • Controller: Request를 직접 처리한 후 그 결과를 다시 DispatcherServlet에게 돌려준다.
  • ModelAndView: Controller가 처리한 결과와 그 결과를 보여줄 View에 관한 정보를 담고있는 객체이다.
  • ViewResolver: View관련 정보를 갖고 실제 View를 찾아주는 역할을 한다.
  • View: Controller가 처리한 결과값을 보여줄 View를 생성한다.

참고 사이트

https://sas-study.tistory.com/58?category=774876

반응형
블로그 이미지

꽃꽂이하는개발자

,
반응형

Database 용어정리

 

1. Database

 다수의 사용자들이 공용으로 사용하기 위해 저장된 데이터의 집합

 

2. Database Language

  • DDL(Data Definition Language) : 데이터베이스 구조를 정의, 수정, 삭제하는 언어(create, alter, drop)
  • DML(Data Manipulation Language): 데이터베이스 내의 자료 검색, 삽입, 갱신, 삭제를 위한 언어(select, delete, update, insert)
  • DCL(Data Control Language): 데이터에 대해 무결성을 유지, 병행 수행 제어, 보호와 관리를 위한 언어(commit, rollback, grant, revoke)

3. Schema(스키마)

  • 데이터베이스의 전체적인 구조와 제약조건에 대한 기술 정의

4. 무결성

  • 개체 무결성: 기본키는 Null값이 올 수 없으며, 중복될 수 없다.
  • 참조 무결성: 외래키는 Null값이 올 수 있으며, 부모 테이블의 기본키에 종속되어야 한다.
  • 도메인 무결성, 고유 무결성, null무결성, 키 무결성

5. View

  •  하나 이상의 테이블로부터 유도되어 만들어진 가상테이블, 실제로 기억공간을 차지하지 않으며 논리적 독립성을 제공하고 데이터 접근 제어로부터 보안성을 향상시킨다.
  • 정의된 기본 테이블이 삭제되면 뷰 또한 삭제된다.
  • 한번 정의된 뷰는 변경할 수 없으며, 삭제한 후 다시 생성해야 한다.(replace)
  • 검색은 일반 테이블과 동일한 방식으로 한다.
  • 뷰에 대한 삽입, 삭제, 갱신에 대한 제약이 따른다. 컬럼에 기본키가 포함되어 있지 않으면 삽입, 갱신, 삭제가 되지 않는다.

6. 인덱스 생성시 고려할 사항

  • 테이블의 전체 데이터 중 적은 양을 조회할 때 사용한다.
  • 테이블에 데이터가 적을수록 인덱스의 효율은 떨어진다.
  • 데이터의 유일성이 높을수록, 데이터의 범위가 넓을수록 인덱스의 효율이 올라간다.
  • Null이 적은 컬럼이 인덱스 효율이 좋다.
  • 결합 인덱스의 경우 자주 사용되는 컬럼을 앞쪽에 배치한다.

Database Q/A

Q. SELECT문은 무엇입니까?

A. SELECT문은 사용자들이 데이터베이스 내 테이블에서 값들을 선택할 수 있도록 합니다. 데이터베이스 테이블에서 어떤 값들을 선택하는 가는 SQL질의 내 다양한 조건에 달려 있습니다.

 

Q. 전체 이름이 아닌 이름의 일부로 값을 비교할 수 있는 방법은 무엇입니까? (LIKE절)

A. SELECT * FROM user WHERE name LIKE '%희%';  

(name에 문자열 희를 포함하는 name레코드들을 가진 레코드 셋을 반환합니다.)

 

Q. Insert문은 무엇입니까

A. Database에 정보를 삽입하는 문입니다.

EX) INSERT INTO 테이블명 (INSERT할 컬럼) VALUES (데이터);

 

Q. Database에서 레코드는 어떻게 삭제합니까? (DELETE문)

A. DELETE문은 데이터베이스에서 레코드 또는 특정 컬럼의 값을 삭제합니다.

EX) DELETE FROM 테이블명 WHERE 조건

 

Q. 테이블에서 어떻게 중복이 없는(뼐개) 항목을 얻을 수 있습니까?(DISTINCT)

A. DISTINCT는 중복된 결과를 제거하고 하나만 원하고자 할 때 쓰이는 문법입니다. Database table에 특정 값 a,b,a,c가 있으면 a,b,c만 나오게 할 수 있습니다. 그러나 distinct를 사용시 temp tablespace에 임시로 저장하고 작업하는 방식이라 시스템에 부하를 줄 수 있다.

EX) SELECT DISTINCT 테이블명 WHERE 조건

 

Q. 특정 기준을 통하여 정렬된 결과를 얻는 방법은 무엇입니까? (ORDER BY)

A. 프로그램에서 ORDER BY 키워드를 사용하여 정렬하고 정렬된 결과를 반환하여 정렬을 수행할 수 있습니다.

ORDER BY만 하면(Default) 오름차순 정렬이되고 DESC 값을 주게 되면 내림차순 할 수 있습니다.

 

Q. 테이블의 전체 레코드 수를 어떻게 얻을 수 있습니까?

A. SELECT COUNT(*) FROM user WHERE age > 40 에서 count키워드를 사용하게 되면 카운트 수를 얻을 수 있습니다.

 

Q. GROUP BY는 무엇입니까?

A. GROUP BY는 집계함수로 컬럼의 데이터들을 그룹화하여 집계할 수 있습니다.

EX) SELECT 선택 FROM 테이블명 WHERE 조건 GROUP BY 그룹화할 콜럼

 

Q. 테이블을 DROP하는 것과 Truncate, 그리고 테이블 내 모든 레코드를 Delete하는 것의 차이점은 무엇입니까?

A.

1. DELETE 명령어는 데이터는 지워지지만 테이블 용량은 줄어들지 않습니다. 원하는 데이터만 지울 수 있습니다. 삭제 후 RollBack이 가능합니다.

2. DELETE TABLE은 로그되는 작업이기 때무넹 삭제되는 각 행은 트랜젝션 로그에 기록되고 이것은 작업을 느리게 합니다.

 

3. TRUNCATE 명령어는 용량이 줄어들고, 인덱스 등도 모두 삭제됩니다. 테이블 삭제하지 않고 데이터만 삭제합니다. 한꺼번에 다 지워야 하며, 삭제후 절대 되돌릴 수 없습니다.

4. Truncate table역시 테이블 내 행들을 삭제하지만 삭제되는 각 행을 기록하지 않고 대신 테이블의 데이터베이스 할당 해제를 기록하여 작업이 빠릅니다. TRUNCATE TABLE은 롤백 할 수 없습니다.

 

5. DROP명령어는 테이블 전체를 삭제, 공간, 객체를 삭제합니다. 삭제 후 되돌릴 수 없습니다.

 

Q. WHERE절과 HAVING절의 다른 점은 무엇입니까?

A. Having절은 그룹함수의 그룹의 조건으로 사용되고, where절은 select할 데이터에 조건을 주는 역할을 합니다.

 

Q. 기본키(Primary Key)와 유일키 (Unique Key)의 차이점은 무엇입니까

A. 기본키는 널을 허용하지 않지만 유일키는 모든 컬럼 중 유일하게 하나에 대한 NULL을 허용합니다. 그래서 UNIQUE키는 개체 하나하나를 구분할 기본키가 될 수 없습니다.

 

Q. 쿼리 순서

A. SELECT -> FROM -> WHERE -> GROUP BY -> ORDER BY

 

참고사이트

https://sas-study.tistory.com/56

반응형

'2020 > 신입 개발자 면접 질문 모음' 카테고리의 다른 글

신입개발자 면접 질문 #JSP  (0) 2020.03.16
신입개발자 기술면접 #Spring framework  (0) 2020.03.16
iBatis 란  (0) 2020.03.15
DI 와 AOP의 대해 설명하시오.  (0) 2020.03.12
면접 질문 spring  (0) 2020.03.12
블로그 이미지

꽃꽂이하는개발자

,
반응형

1. Java에서 DataBase를 편하게 Handling 할 수 있게 해주는 프ㅔ임 워크

2. 특징 : 

  • SQL문과 Java코드와의 분리 만으로도 Java개발자는 Query문을 신경쓰지 않아도 됨. SQL문이 변경되더라도 파라미터 값만 변경 되지 않는 다면 Java소스에서 수정할 부분이 없기 때문.

3. MVC 모델에서 커버하는 부분 : Model 지원

4. 실행 순서(실행 구조) : 

  • 자바 코드 내에서 특정 궈리문을 실행하기 원할 때, 파라미터아 필요한 조건을 넘기기 위한 객체를 생성
  • SQLMaps를 실행하기 위해 쿼리의 객체와 이름을 넘겨줌.
  • 쿼리가 실행되었을 때 SQLMaps는 쿼리 결과를 받기 위해 정의 된 클래스의 인스턴스를 생성하게 됨
  • 인스턴스는 데이터베이스에 의해 반환 된 ResultSet으로부터 만들어짐.
  •  
반응형
블로그 이미지

꽃꽂이하는개발자

,
반응형
  • DI: Dependency injection의 약자 의존성 주입이라는 뜻.
  • 스프링을 적용하여 applicationContext.xml에서 설정만 해주면 외부 설정파일(xml)에서 연관관계에 있는 객체를 주입해주기 때문에 의존객체를 찾기 위한 코드가 필요하지 않게 됨. 즉 외부설정에서 객체를 찾아서 쓰기 때문에 코드 내에 의존관계를 맺는 코드 생성이 불필요.
  • AOP:Aspect oriented programming의 약자 관심지향 프로그래밍.
  • 프로그래밍을 할 때 특정한 관심사를 가진 코드 부분을 별도의 모듈로 분리함으로써, 기존 객체지향의 강력한 기능(상속, 위임)만으로는 처치가 곤란했던 중복을 제거 할 수 있게 됨.
  •  
반응형

'2020 > 신입 개발자 면접 질문 모음' 카테고리의 다른 글

신입개발자 면접 질문 DataBase(Oracle)  (0) 2020.03.16
iBatis 란  (0) 2020.03.15
면접 질문 spring  (0) 2020.03.12
Struts2  (0) 2020.03.12
ERP? Framework?  (0) 2020.03.11
블로그 이미지

꽃꽂이하는개발자

,
반응형
  • Spring : Java Enterprise Application 개발에 사용되는 Application Framework. 개발을 빠르고 효율적으로 할 수 있도록 Application의 바탕이 되는 틀과 공통프로그래밍 모델, 기술, API를 제공
  • 특징
    • 스프링은 종속객체주입이라는 기술을 통해 낮은 결합도를 유지할 수 있음.
    • AOP를 이용하여 객체지향만이 아닌 관심지향 기법을 활용.
    • EJB 기능을 대체 할 수 있음, 트랜젝션 처리를 위한 일관된 방법을 제공.
    • 레이어간 연결이 interface로 이루어지기 때문에 interface 생성이 필요.
    • 다양한 프레이워크와의 통합
  • MVC 모델에서 커버하는 부분: Controller 지원.
  • 실행 순서(실행구조):
    • web.xml의 등록된 DispatcherServlet를 통해서 요청에 대한 진입.
    • DispatcherServlet은 Client로부터 들어온 URL을 HandlerMapping 라는 곳으로 전송 후 URL을 분석해서 알맞은 Controller 이름을 다시 DispatcherServlet으로 보냄
    • HandlerMapping이라는 것을 통해서 실행될 Controller의 이름을 입력받은 DispatcherServlet은 전달받은 Controller를 실행시킴. 이렇게 실행된 Controller는 스프링에서 제공하는 ModelAndView 객체에 뷰 페이지에 전달할 객체와 View Page 이름 정보를 담고 DispatcherServet으로 보냄
    • ViewResolver를 통해서 보여 질 View페이지를 탐색한 후 View페이지를 보여줌
반응형

'2020 > 신입 개발자 면접 질문 모음' 카테고리의 다른 글

iBatis 란  (0) 2020.03.15
DI 와 AOP의 대해 설명하시오.  (0) 2020.03.12
Struts2  (0) 2020.03.12
ERP? Framework?  (0) 2020.03.11
URI와 URL의 차이  (0) 2019.12.09
블로그 이미지

꽃꽂이하는개발자

,