'2020/신입 개발자 면접 질문 모음'에 해당되는 글 24건

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

꽃꽂이하는개발자

,
반응형

1. ERP(Enterprise Resource planning)

  전산적 자원 관리 시스템으로 기업의 모든 자원을 전체적으로 관리하여 최적화된 기업 활동을 통합, 관리 시스템에 근거하여 스피드 경영과 투명 경영의 효과를 꾀하는 것이다.

 

2. Framework

  • 특정 형태의 소프트 웨어 문제를 해결하기 위해, 상호 협력하는 클래스들과 인터페이스의 집합
  • 장점 : 재사용성, 단순성, 역할구분, 확장성, 유지보수용이.
  • 프레임웍과 라이브러리 차이
  • 1. 라이브러리는 어플리케이션에서 호출할 수 있는 함수와 루틴으로 구성되어 있다.
  • 2. 프레임워크는 어플리케이션에서 특정 기능들을 제공하기 위해 확장할 수 있는 일반적이고 상호 협력적인 컴포넌트를 제공한다.
반응형

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

면접 질문 spring  (0) 2020.03.12
Struts2  (0) 2020.03.12
URI와 URL의 차이  (0) 2019.12.09
신입 개발자 면접질문 #3  (0) 2019.12.06
신입개발자 면접 질문 #2  (0) 2019.12.06
블로그 이미지

꽃꽂이하는개발자

,
반응형

인터넷 관련 대기업의 면접에서 물어보았다.

"URL이 무슨 약자 인가요?"

"......"

 

 

과연 우리는 면접장소에서 답이 나오게 할 수 있을까?

URL = Uniform Resource Locator

URI = Uniform Resource Identifier

자원 파일 위치와 자원 식별자이다

 

즉 웹사이트 주소가 windorsky.tistory.hello/java 라면 hello/java라는 파일은 없다.

아마도 hello 클래스의 java메소드를 호출 하게 될 것이다. 

이렇게 구분자(Identifier)로 보는 것이 URI이다.

 

 

URI와 URL는 다른 것이 아니라 포함관계이다

모든 URL은 URI이다

URL = URL+ URN(Uniform Resource Name)

 

결론적으로 요약하자면, URL과 URN은 URI의 종류이며

모든 URL은 URI이고, 또한 모든 URN은 URI이다

 

 

출처:  https://blog.lael.be/post/61

출처 :  https://mygumi.tistory.com/139

반응형

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

Struts2  (0) 2020.03.12
ERP? Framework?  (0) 2020.03.11
신입 개발자 면접질문 #3  (0) 2019.12.06
신입개발자 면접 질문 #2  (0) 2019.12.06
신입개발자 면접 질문 #1  (0) 2019.12.06
블로그 이미지

꽃꽂이하는개발자

,
반응형

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

  • 자바 엔터프라이즈 개발을 편하게 해주는 경량급 오픈소스 애플리케이션 프레임워크이다.
  • POJO 기반의 엔터프라이즈 애플리케이션 개발을 쉽고 편하게 할 수 있도록 한다.
  • 동적인 웹 사이트를 개발하기 위한 여러가지 서비스를 제공한다.
  • 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자 정부 표준 프레임워크의 기반 기술

Spring의 특징

  • EJB보다 가볍고 배우기도 쉬우며 경량 컨테이너의 기능을 수행합니다.
  • 제어 역행(IoC, Inversion of Control) 기술을 이용해 애플리케이션 간의 느슨한 결합을 제어합니다.
  • [서블릿이나 빈 등을 개발자가 코드에서 생성하지 않고 프레임워크가 직접 수행하는 방법입니다.]
  • 의존성 주입(DI, Dependency Injection)기능을 지원합니다.
  • [ 클래스 객체를 개발자가 코드에 생성하지 않고 프레임워크가 생성하여 사용하는 방법]
  • 관점 지향(AOP, Aspect-Oriented Programming) 기능을 이용해 자원 관리를 합니다.
  • [핵심 기능 외 부수 기능들을 분리 구현함으로써 모듈성을 증가시키는 방법입니다.]
  • 영속성과 관련된 다양한 서비스를 지원합니다.
  • 수많은 라이브러리와의 연동 기능을 지원합니다.

접근 제한자( public > protected > default >private)

  • public - 접근의 제한이 없다
  • protected - 같은 패키지 or 다른패키지에서 상속받아 사용 가능
  • default - 같은 패키지 내에서만 접근 가능
  • private - 같은 클래스 내에서만 접근 가능

 

Stack과 Que

Stack

  • LIFO(Last In First Out)
  • push() 데이터 입력/ pop() 데이터 출력

Que

  • FIFO(First In First Out)
  • enQueue() 데이터 입력 / deQueue() 데이터 출력

그림참조 : https://article2.tistory.com/818

반응형

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

ERP? Framework?  (0) 2020.03.11
URI와 URL의 차이  (0) 2019.12.09
신입개발자 면접 질문 #2  (0) 2019.12.06
신입개발자 면접 질문 #1  (0) 2019.12.06
가비지 컬렉션이란?  (0) 2019.12.06
블로그 이미지

꽃꽂이하는개발자

,
반응형

JDBC

  • Java Data Base Connection의 약자로 JAVA언어를 통해 데이터 베이스에 접근할 수 있는 프로그래밍을 의미

MVC패턴

  • 웹 어플리케이션을 화면 부분, 요청처리 부분, 로직 처리 부분으로 나누어 개발하는 방법으로 개발 및 유지보수가 편리하며 기능의 재사용성이 높아지고 디자이너와 개발자의 작업을 분화해서 쉽게 개발할 수 있습니다.
  • Model - 데이터베이스 연동과 같은 비지니스 로직을 수행하며 일반적으로 DAO와 VO 클래스로 이루어져있다.
  • View - JSP가 화면 기능을 담당하며 Model에서 처리한 결과를 화면에 표시한다
  • Controller -서블릿이 컨트롤러의 역할을 하며 클라이언트의 요청을 분석한다
  • 요청에 대해서 필요한 모델을 호출하며, 모델에서 처리한 결과를 보여주기 위해 JSP를 선택한다.

Interface와 Abstract

  • 공통점은 이 둘은 선언만 있고 구현내용이 없는 클래스 입니다.
  • 그래서 자기 자신이 new를 해서 객체를 생성할 수 없으며 Abstract를 extends를 받거나, Interface를 implements한 자식만이 객체를 생성할 수 있습니다.
  • 차이점은 추상클래스는 상태나 기능을 공유할 수 있습니다. 그리고 인터페이스는 상태 또는 기능을 제공하는 역할만 합니다. 즉 추상클래스는 abstract 메소드가 하나라도 있으면 추상클래스 입니다. 그래서 추상클래스에서 메소드를 구현하는 것이 가능합니다. 반면 인터페이스는 구현 없이 형태만 제공하고 구현은 상속받은 클래스에서 해야 합니다.

출처 : 
출처: https://hashcode.co.kr/questions/625/%EC%B6%94%EC%83%81-%ED%81%B4%EB%9E%98%EC%8A%A4-%EB%8C%80%EC%8B%A0%EC%97%90-interface%EB%A5%BC-%EC%93%B8%EB%95%8C%EA%B0%80-%EC%9E%88%EC%9D%84%EA%B9%8C%EC%9A%94-%EA%B7%B8%EB%A6%AC%EA%B3%A0-%EA%B7%B8-%EB%B0%98%EB%8C%80%EC%9D%98-%EA%B2%BD%EC%9A%B0%EB%8F%84-%EC%9E%88%EC%9D%84%EA%B9%8C%EC%9A%94

반응형

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

URI와 URL의 차이  (0) 2019.12.09
신입 개발자 면접질문 #3  (0) 2019.12.06
신입개발자 면접 질문 #1  (0) 2019.12.06
가비지 컬렉션이란?  (0) 2019.12.06
#1 쿠키와 세션의 차이  (0) 2019.12.05
블로그 이미지

꽃꽂이하는개발자

,
반응형

자바란?

  • 운영체제의 종류에 상관없이 JVM(Java Virtual Machine)위에서 작동하기 때문에 이식성이 높다.
  • 객체지향언어(OOP)이다. 하나의 기능을 객체로 만들어서 이러한 객체들을 결합해서 하나의 프로그램을 만든다.
  • C언어와는 다르게 메모리를 자동으로 관리해준다. 
  • 멀티 스레드를 쉽게 구현이 가능하다.
  • 미리 객체를 만들지 않고, 필요한 시점에 동적으로 로딩해서 객체를 생성할 수 있으며 유지보수가 용이하다.
  • 오픈소스 언어로 자바를 활용한 라이브러리가 굉장히 많다. 시간비용을 줄이고 좋은 어플리케이션을 만들기 편하다.

OOP(객체지향프로그래밍)

  • 코드의 재사용성이 높으며 코드의 변경이 용이하다
  • 직관적인 코드분석이 가능하며 개발속도를 향상시킬 수 있다.
  • 상속을 통한 장점을 극대화 할 수 있습니다.

Overloading vs Overriding

 

  • 오버로딩 - 같은 이름의 메소드를 여러개 정의하며 매개변수의 타입이 다르거나 개수가 달라야 한다. 
  • 오버로딩 - 또한 return type과 접근 제어자는 영향을 주지 않는다.
  • 오버라이딩 - 상속에서 나온 개념으로 상위 클래스(부모클래스)의 메소드를 하위 클래스(자식클래스에서)재정의

Servlet

  • 웹 기반의 요청에 대한 동적인 처리가 가능한 Java Program
  • 순수 자바 코드로만 이루어진 것(Html in JAVA)

JSP(Java Server Page)

  • html기반에 JAVA코드를 블록화하여 삽입한 것(Java in HTML)
  • Servlet을 보완하고 기술을 확장한 스크립트 방식 표준

 

Get과 Post방식

Get

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

Post

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

Get과 Post의 차이

  • Get은 주로 웹 브라우저가 웹 서버에 데이터를 요청할때 사용
  • Post는 웹 브라우저가 웹 서버에 데이터를 전달하기 위해 사용
  • Get방식은 전달되는 데이터가 255개의 문자를 초과하면 문제를 발생시킬 수 있다
  • 보안성의 문제
반응형

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

URI와 URL의 차이  (0) 2019.12.09
신입 개발자 면접질문 #3  (0) 2019.12.06
신입개발자 면접 질문 #2  (0) 2019.12.06
가비지 컬렉션이란?  (0) 2019.12.06
#1 쿠키와 세션의 차이  (0) 2019.12.05
블로그 이미지

꽃꽂이하는개발자

,
반응형

쓰레기 수집이라고도 불리는 garbage colletion(GC)은 시스템에서 더이상 사용하지 않는 동적으로 할당된 메모리 블럭 혹은 객체를 찾아 자동적 회수하여 자원을 늘리는 것을 말합니다.

  시스템에서 가비지 컬렉션을 수행하는 부분을 가비지 컬렉터라고 합니다.

 

프로그램에서 사용하지 않는 객체를 찾아내고 해당 객체가 사용하는 리소스를 회수하는 것입니다.

들리는 이야기로는 잘 사용되지 않고 큰 프로젝트에서나 사용된다고 하더군요(카더라 통신)!

반응형

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

URI와 URL의 차이  (0) 2019.12.09
신입 개발자 면접질문 #3  (0) 2019.12.06
신입개발자 면접 질문 #2  (0) 2019.12.06
신입개발자 면접 질문 #1  (0) 2019.12.06
#1 쿠키와 세션의 차이  (0) 2019.12.05
블로그 이미지

꽃꽂이하는개발자

,
반응형

쿠키와 세션을 사용하는 이유는 무엇일까요?

  HTTP 프로토콜의 약점을 보완하기 위해 사용되는데요

  HTTP의 특징은 비연결지향(Connectionless)와 상태정보를 유지하지 않는다는 것(Stateless)입니다.

  비연결지향(Connectionless)이란 클라이언트가 request를 서버에 보내면 서버는 클라이언트의 요청에 맞게 response를 보내고 접속을 끊는 특징이 있습니다.

  상태정보를 유지 안한다는 것은(Stateless) 연결을 끊는 순간 클라이언트와 서버 통신이 끝나면 상태 정보를 유지하지 않는 특징을 가지고 있습니다.

 

  물론 Connectionless의 특성으로 지속적인 통신연결을 유지하지 않기 때문에 리소스 낭비가 줄어드는 것은 큰 장점이지만 우리가 통신할때마다 새로운 연결을 할때 마다 로그인을 다시해야 하는 귀찮음이 있죠

 

  이러한 두가지 특성을 보완하기 위해서 쿠키와 세션을 사용하게 되었습니다.

 

쿠키(Cookie)?

  쿠키는 클라이언트(브라우저) 로컬에 저장되는 키와 값이 들어있는 작은 데이터 파일입니다.

  사용자 인증이 유효한 시간을 명시할 수 있으며, 유효시간이 정해지면 브라우저가 종료되어도 인증이 유지된다는 특징이 있습니다.

 쿠키는 클라이언트의 상태 정보를 로컬에 저장했다가 참조를 하며 클라이언트에 300개까지 쿠키저장이 가능하고 하나의 도메인당 20개의 값만 가질 수 있고 4KB까지 저장할 수 있습니다.

  Response Header에 Set-Cookie 속성을 사용하면 클라이언트에 쿠키를 만들 수 있으며 따로 요청하지 않아도 브라우저가 Request시에 Request Header를 넣어서 자동으로 서버에 전송합니다.

동작방식

 클라이언트가 페이지를 요청하면 서버에서 쿠키를 생성하고 HTTP Header에 쿠키를 포함시켜 응답합니다.

  브라우저가 종료되어도 쿠키 만료 기간이 있다면 클라이언트에서 보관하고 있다가 같은 요청을 할 경우 HTTP 헤더에 쿠키를 보내며 서버에서 쿠키를 읽어 이전 상태 정보를 변경할 필요가 있을 때 쿠키를 업데이트 하여 변경된 쿠키를 HTTP 헤더에 포함시켜 응답합니다.

쿠키 활용 예

 사이트에 로그인 시, "ID와 PASSWORD를 저장하겠습니까?"

 자동로그인,  오늘은 더이상 이 창을 보지 않음, 쇼핑몰의 장바구니 등...

 

세션 (Session)?

  세션은 쿠키를 기반으로 하고 있지만, 사용자 벙보 파일을 브라우저에 저장하는 쿠키와 달리 세션은 서버측에서 관리합니다. 서버에서는 클라이언트를 구분하기 위해 세션 ID를 부여하며 웹 브라우저가 서버에 접속해서 브라우저를 종료할 때까지 인증상태를 유지합니다.

  물론 접속 시간에 제한을 두어 일정 시간이 응답이 없다면 정보유지가 되지 않도록 설정도 가능합니다.

  사용자에 대한 정보를 서버에 두기 때문에 쿠키보다 보안에 좋지만, 사용자가 많아질수록 서버 메모리를 많이 차지하게 됩니다. 즉 동접자 수가 많은 웹 사이트인 경우 서버에 과부하를 주게 되므로 성능 저하의 요인이 됩니다.

  클라이언트가 Request를 보내면, 해당 서버의 엔진이 크랄이언트에게 유일한 ID를 부여하는데 이것이 세션ID 입니다.

 

동작방식

  클라이언트가 서버에 접속시 세션 ID를 발급받게 되는데 클라이언트는 세션 ID에 대해 쿠키를 사용해서 저장하고 가지고 있습니다. 클라이언트는 서버에 요청할 때, 이 쿠키의 세션 ID를 서버에 전달해서 사용합니다.

  서버는 세션 ID를 전달 받아서 별다른 작업없이 세션 ID로 세션에 있는 클라이언트 정보를 가져옵니다.

  클라이언트 정보를 가지고 서버 요청을 처리하여 클라이언트에게 응답합니다.

세션 활용 예

  로그인 같이 보안상 중요한 작업을 수행할 때 사용하게 됩니다.

 

쿠키와 세션의 차이

  쿠키와 세션의 가장 큰 차이점은 사용자의 정보가 저장되는 위치입니다.  쿠키는 서버의 자원을 전혀 사용하지 않지만, 세션은 서버의 자원을 사용합니다.

  보안 면에서는 세션이 더 우수하며, 요청 속도는 쿠키가 세션보다 더 빠릅니다. 왜냐하면 세션은 서버의 처리가 필요하기 때문이죠

  보안, 쿠키는 클라이언트 로컬에 저장되기 때문에 변질되거나 request에서 스니핑 당할 우려가 있어서 보안에 취약하지만 세션은 쿠키를 이용해서 session ID만 저장하고 그것으로 구분해서 서버에서 처리하기 때문에 비교적 보완성이 좋습니다.

  라이프 사이클, 쿠키도 만료 시간이 있지만 파일로 저장되기 때문에 브라우저를 종료해도 계속해서 정보가 남아있을 수 있으며 만료기간을 넉넉하게 잡아두면 쿠키삭제를 할 때까지 유지될 수도 있습니다.

  반면에 세션도 만료시간을 정할 수 있지만 브라우저가 종료되면 만료시간에 상관없이 삭제됩니다.

  

쿠키와 세션, 캐시?

  캐시는 이미지나 css, js파일 등을 브라우저나 서버 앞 단에 저장해놓고 사용하는 것입니다.

  한번에 캐시에 저장되면 브라우저를 참고하기 때문에 서버에서 변경이 되어도 사용자는 변경되지 않게 보일 수 있는데 이런 부분을 캐시를 지워주거나 서버에서 클라이언트로 응답을 보낼 때 header에 캐시 만료시간을 명시하는 방법등을 이용할 수 있습니다.

  보통 쿠키와 세션의 차이를 물어볼 때 저장위치와 보안에 대해서 말씀하시는데 사실 중요한 것은 라이프사이클을 이야기 하는 것입니다.

 

세션과 쿠키를 사용한 예제는 JSP/SERVLET 카테고리에 있습니다.

 

참고사이트 : https://interconnection.tistory.com/74

반응형

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

URI와 URL의 차이  (0) 2019.12.09
신입 개발자 면접질문 #3  (0) 2019.12.06
신입개발자 면접 질문 #2  (0) 2019.12.06
신입개발자 면접 질문 #1  (0) 2019.12.06
가비지 컬렉션이란?  (0) 2019.12.06
블로그 이미지

꽃꽂이하는개발자

,