'기술면접'에 해당되는 글 4건

반응형

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 내의 클래스들 간의 정보교환 하는데 사용
반응형
블로그 이미지

꽃꽂이하는개발자

,
반응형

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
블로그 이미지

꽃꽂이하는개발자

,
반응형
  • 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
블로그 이미지

꽃꽂이하는개발자

,
반응형
  • struts2 : MVC패턴을 지원하고, 웹 어플리케이션을 개발하기 위한 프레임워크
  • 특징:
    • 1. Struts1 + Webwork2의 아키텍처 적용
    • 2. POJO(Plain Old Java Object) 기반 액션 사용
    • 3. Zero configration(설정 없이) 지향
    • 4. Ajax기능을 태그와 테마 기반으로 구성.
    • 5. 다양한 표현식 언어 사용 가능(JSTL, OGNL).
  • MVC모델에서 커버하는 부분: Controller 지원
  • 실행순서(실행구조)
    • web.xml의 등록된 FilterDispatcher를 통해서 요청에 대해 진입.
    • FilterDispatcher에선 모든 요청을 처리하고, ActionPloxy 생성
    • ActionPloxy가 생성되면, FilterDispatcher가 실행 권한을 이임
    • Configuration은 struts.xml을 통해서 설정관리자를 초기화함.
    • 초기화 후, Action invocation 실행
    • 실행할 interceptor가 있으면 실행하고, Action으로 전달.
    • Action에서 결과 값을 통해, 해당 Template으로 이동.
    • interceptor자원 반납 후 응답.

 

반응형

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

DI 와 AOP의 대해 설명하시오.  (0) 2020.03.12
면접 질문 spring  (0) 2020.03.12
ERP? Framework?  (0) 2020.03.11
URI와 URL의 차이  (0) 2019.12.09
신입 개발자 면접질문 #3  (0) 2019.12.06
블로그 이미지

꽃꽂이하는개발자

,