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

  1. 2024.10.29 경력직 기술 면접 예상 질문 - 1
  2. 2020.11.10 기술 면접 예상 질문 - 3
  3. 2020.11.10 기술 면접 예상 질문 - 2
  4. 2020.11.10 기술 면접 예상 질문 - 1

경력직 기술 면접 예상 질문 - 1

기술 면접 2024. 10. 29. 09:51

1. Spring Boot (스프링) 란?

 

- Java 기반 애플리케이션 개발을 지원하는 오픈소스 프레임워크

 

 

스프링의 특징

 

- 의존성 주입 가능

 

- 웹 프로그램을 개발하기 용이한 MVC(Model-View-Controller) 아키텍처를 지원

 

MVC 패턴

 

- Model : 데이터를 저장하는 부분 (Xml 단 - DB)

 

- Controller : Model을 통해서 데이터를 가져오고 그 정보를 View에 전달 (Java단), 실질적 동작을 하는 부분

 

- View : 시각적인 표현을 담당 (Jsp 단)

 

 

2. Spring Boot (스프링 부트) 란?

 

- 스프링 부트는 스프링으로 애플리케이션을 만들 때에 필요한 설정을 간편하게 처리해주는 별도의 프레임워크

 

- 스프링 부트를 사용하면 기존에 어려운 초기 설정에 쏟아야 했을 시간과 노력을 절약하여 비즈니스 로직을 구현하는데에 집중할 수 있습니다.

 

 

스프링과 스프링 부트의 차이점

 

- 내장 서버 지원 (톰캣 등)

 

- 의존성 관리 간소화

  스프링 부트는 여러 3rd party 라이브러리를 사용할 때, 발생하는 라이브러리 버전 충돌로 인한 문제를 해결하기 위해서,    이미 테스트된 여러 라이브러리들의 묶음 패키지를 제공합니다.

 

- 간편한 설정

 

 

3. Git / GitHub 란?

 

- Git : 버전관리 소프트웨어.

 

- GitHub : Git 프로젝트를 관리하는 호스팅 사이트

 

 

4. Spring Batch 란?

 

- 스프링 배치는 대량의 데이터 처리 작업을 효율적으로 수행하기 위한 스프링 프레임워크의 하위 프로젝트.

 

- 배치 처리란 한정된 데이터를 일괄적으로 처리하는 작업을 의미

  즉, 데이터베이스의 데이터 이관, 대량의 로그 파일 처리, 대용량 데이터의 분석 및 보고 등 다양한 분야에서 활용

 

- 재사용 가능한 기능 제공

 

 

5. Spring Batch 구성요소

 

- Job

스프링 배치의 여러 가지 처리과정을 하나의 단위로 만들어 놓은 가장 큰 실행 단위이다. 하나의 Job은 여러 개의 Step으로 이루어지며, 이 Step들을 순차적으로 실행한다.

 

- Step

Job의 실행 단계를 나타내는 것으로, Tasklet 또는 Chunk 지향 처리 방식으로 구성되어 있다.

 

- Tasklet

Step에서 실행되는 최소 실행 단위이다. 스프링에서 제공하는 Tasklet 인터페이스를 구현하여 실행시킬 수 있다.

Tasklet이 실행되면 Job의 다음 Step으로 넘어가게 된다.

'기술 면접' 카테고리의 다른 글

기술 면접 예상 질문 - 3  (0) 2020.11.10
기술 면접 예상 질문 - 2  (0) 2020.11.10
기술 면접 예상 질문 - 1  (0) 2020.11.10
:

기술 면접 예상 질문 - 3

기술 면접 2020. 11. 10. 18:53

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


- 자바 (JAVA) 플랫폼을 위한 오픈소스 (Open Source) 애플리케이션 프레임워크 (Framework)


- 자바 엔터프라이즈 개발을 편하게 해주는 오픈 소스 경량급 애플리케이션 프레임워크


- 자바 개발을 위한 프레임워크로 종속 객체를 생성해주고, 조립해 주는 도구


- Java SE(Standar Edition)로 개발된 자바 객체(POJO, Plain Old Java Object)를 Java EE (Enterprise Edition)에 의존적이지

  

  않게 연결해주는 역할을 담당한다.



스프링의 특징 (간단히)


- 크기와 부하의 측면에서 경량화하였다.


- 의존관계 주입 (DI)와 제어 역행(IoC) 기술을 통해 애플리케이션의 느슨한 결합을 도모


- 관점지향 프로그래밍 (AOP)를 위한 풍부한 지원 (AOP = 주된 업무는 아니지만 반드시 해야하는 작업, EX - 목적지에 도착하려면 버스카드를 찍어야)


- 애플리케이션 객체의 생명주기와 설정을 포함하고 관리한다는 점에서 일종의 컨테이너 (Container)이라고 할 수 있음


- 간단한 컴포넌트로 복잡한 애플리케이션을 구성하고 설정할 수 있음



스프링의 특징 (자세히)



a. 경량 컨테이너로서 자바 객체를 직접 관리


    각각의 객체 생성, 소멸과 같은 라이프 사이클을 관리하며 스프링으로부터 필요한 객체를 얻어올 수 있다.



b. POJO(Plain Old Java Object) 방식의 프레임워크


   기존의 J2EE 프레임워크에 비해 구현을 위해 특정한 인터페이스를 구현하거나 상속을 받을 필요가 없어 기존에 존재하는 

   

   라이브러리 등을 지원하기에 용이하고 객체가 가볍다.



c. 제어의 역행 (IoC : Inversion of Control)을 지원


   컨트롤의 제어권이 사용자가 아니라 프레임워크에 있어서 필요에 따라 스프링에서 사용자의 코드를 호출한다.



d. 의존성 주입 (DI : Dependency Injection)을 지원


   각각의 계층이나 서비스들 간에 의존성이 존재할 경우 프레임워크가 서로 연결시켜준다.



e. 관점 지향 프로그래밍 (AOP : Aspect - Oriented Programming) 을 지원




18. Thread


Thread (쓰레드) - 프로세스 내에서 동시에 실행되는 독립적인 실행 단위를 말함, 장점으로는 자원을 많이 사용하지 않고 구현이 쉬우며 범용성이 높다.


Process (프로세스) - 운영체제에서 실행중인 하나의 프로그램 (하나 이상의 쓰레드를 포함한다.)



Thread의 장점


- 빠른 프로세스 생성


- 적은 메모리 사용


- 쉬운 정보 공유



Thread의 단점


- 교착상태에 빠질 수 있다.



교착상태란?


다중프로그래밍 체제에서 하나 또는 그 이상의 프로세스가 수행할 수 없는 어떤 특정 시간을 기다리고 있는 상태 (lock가 걸린 상태)



Thread와 Process의 차이


Process는 여러 분야에서 '과정' 또는 '처리' 라는 뜻으로 사용되는 용어로 컴퓨터 분야에서는 '실행중인 프로그램' 이라는 뜻으로 쓰인다.


이 프로세스 내에서 실행되는 각각의 세부 작업 단위를 스레드라고 한다.


프로세스 내에서 실행되는 세부 작업 단위로 여러 개의 스레드가 하나의 프로세스를 이루게 되는 것이다.





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


  

  public - 접근 제한이 없다. (같은 프로젝트 내에 어디서든 사용 가능)


  protected - 같은 패키지 + 다른 패키지의 경우 자손클래스에서 접근 가능


  default - 같은 패키지 내에서만 접근 가능


  private - 클래스 내부에서만 사용 가능 (외부 클래스에서 접근 불가능)





20. 소켓 통신 (TCP / UDP)


TCP (Transmission Control Protocol)


- 연결형 서비스 제공


- 데이터의 수신 여부를 확인 (오류시 재전송 요청)


- 높은 신뢰성 보장



UDP (User Datagram Protocol)


- 비연결형 서비스 제공


- 신뢰성이 낮음


- 데이터의 전송 순서가 바뀔 수 있음


- TCP보다 전송속도가 빠름


- 동영상 및 음성 등의 멀티미디어 통신에 주로 사용됨




21. Stack, Queue


STACK


- LIFO (Last In First Out) 의 후입선출 구조


- push ()를 이용한 데이터 입력, pop ()을 이용한 데이터 출력


- 예) 시스템 스택 : 함수의 호출과 복귀 순서는 스택의 구조를 응용하여 관리, 역순 문자열 만들기, 수식의 괄호 검사 등



QUEUE


- FIFO (First In First Out) 의 선입선출 구조


- enQueue()를 이용한 데이터 입력, deQueue()를 이용한 데이터 출력


- 예) 우선순위가 필요한 작업 예약 (인쇄 대기열)


* Linear Queue (선형 큐)는 메모리 재사용이 불가능. 이러한 문제점을 보완하여 Circular Queue (원형 큐) 가 나옴.




22. Singleton Design Pattern (싱글톤 디자인 패턴, 싱글톤 패턴)


- 클래스 인스턴스가 하나만 만들어지도록 하고, 그 인스턴스에 대한 전역 접근을 제공한다.


- 애플리케이션 전체에서 단 하나의 인스턴스만을 생성하도록 제한함


- 생성자를 private으로 설정하여 외부에서 직접 인스턴스를 만들 수 없게 함


- 전역적으로 1개의 인스턴스에 접근 가능한 method 제공


- 싱글톤 패턴이 적용되는 경우


ㄴ 자주 사용되고 여러 개를 만들 필요가 없는 인스턴스


ex ) 도서관리대장 - 100권의 도서가 있어도 관리대장은 1권만 필요


사무용 프런터  -  여러명의 직원이 근무하지만 프린터는 공유함




23. Database에서의 Index란?


- 테이블의 레코드를 빠르게 찾기 위한 자료 구조


- 테이블 내의 1개의 컬럼 혹은 여러 개의 컬럼을 이용하여 생성될 수 있다.


- 인덱스를 저장하는데 필요한 디스크 공간은 보통 테이블을 저장하는 데 필요한 디스크 공간보다 작다.



DB에서 자료를 검색하는 두 가지 방법


- FTS (Full Table Scan) : 테이블을 처음부터 끝까지 검색하는 방법.


- Index Scan : 인덱스를 사용하여 테이블의 해당 자료를 찾는 방법.




24. 다형성이란 무엇인가?


여러가지 데이터를 다룰 수 있는 특성


부모 클래스의 인스턴스를 이용하여 자식 타입의 클래스를 다룬다거나, 오버라이딩을 통하여 동일 이름의 method를 이용하여 


다양한 자식 클래스의 method를 호출하는 것




25. 멀티 쓰레드의 장단점은 무엇인가?


두 가지 이상의 작업을 동시에 실행할 수 있어 자원을 효율적으로 이용할 수 있으나 dead lock 및 동기화에 대한 철저한 검증이 필요하다.




26. Java collections의 대표 인터페이스는 무엇인가?


List - 순서가 있는 데이터의 집합으로 데이터의 중복을 허용한다. 인덱스로 조회


  구현클래스 - ArrayList, LinkedLink, Stack, Vector



Set - 순서를 유지하지 않는 데이터의 집합으로 데이터의 중복을 허용하지 않는다.


       구현클래스 - HashSet, TreeSet



Map - 키와 값의 쌍으로 이루어진 데이터의 집합으로 순서는 유지되지 않으며, 키는 중복을 허용하지 않고, 값은 중복을 허용한다.


         구현클래스 - HashMap, TreeMap, HashTable, Properties





출처


https://www.youtube.com/watch?v=pJDmOfNnwqo&list=PLY9pe3iUjRrS38DxC5Fq5st9_hQhvyy3H&index=8


'기술 면접' 카테고리의 다른 글

경력직 기술 면접 예상 질문 - 1  (0) 2024.10.29
기술 면접 예상 질문 - 2  (0) 2020.11.10
기술 면접 예상 질문 - 1  (0) 2020.11.10
:

기술 면접 예상 질문 - 2

기술 면접 2020. 11. 10. 18:52

9. Session과 Cookie


Session과 Cookie 사용 이유


- HTTP 프로토콜은 비연결 지향적으로 새로운 페이지를 요청할 때마다 새로운 접속이 이루어지며 이전 페이지와 현재 페이지간의


  관계가 지속되지 않는다. 이에 따라 HTTP 프로토콜을 이용하게 되는 웹사이트에서는 웹페이지에 특정 방문자가 머무르고 있는 동안에


  그 방문자의 상태를 지속시키기 위해 쿠키와 세션을 이용한다.



Session


- 일정 시간동안 같은 사용자 (브라우저)로 부터 일련의 요구를 하나의 상태로 보고 그 상태를 일정하게 유지시키는 기술


- 특정 웹사이트에서 사용자가 머무르는 기간 또는 한 명의 사용자의 한 번의 방문을 의미함


- Session에 관련된 데이터는 Server에 저장된다.


- 웹 브라우저의 캐시에 저장되어 브라우저가 닫히거나 서버에서 삭제시 사라진다.


- Cookie에 비해 보안성이 좋다.


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


- Session에서는 String 타입말고 다른 타입도 저장할 수 있다.



Cookie


- 인터넷 웹 사이트의 방문 기록을 남겨 사용자와 웹 사이트 사이를 매개해 주는 정보이다.


- Cookie는 인터넷 사용자가 특정 웹서버에 접속할 때, 생성되는 개인 아이디와 비밀번호 등의 방문한 사이트의 정보를 담은


  임시 파일로써, Server가 아닌 Client에 텍스트 파일로 저장되어 다음에 해당 웹서버에 방문할 경우 웹서버에서는 그가 누구인지,

  

  어떤 정보를 주로 찾았는지 등을 파악할 때 사용된다.


- Cookie는 Client PC에 저장되는 정보이기 때문에, 다른 사용자에 의해서 임의로 변경이 가능하다. (정보 유출 가능, Session보다 보안성이 낮다.)


- 또한 Cookie에서는 String 타입밖에 저장되지 않는다.




10. MVC 패턴 (Model 2방식)


- MVC 패턴은 코드의 재사용성이 유용하며, 사용자 인터페이스와 응용프로그램 개발에 소요되는 시간을 현저하게 줄여주는 형식이라고


  많은 개발자들이 평가하고 있는 방식이다.


- Model 1방식 (jsp 페이지에 모든 요소를 작성) 은 페이지수는 줄어들긴 하지만 유지보수가 힘들고, 재사용성이 떨어진다.



MVC 구성요소


- Model : 소프트웨어 응용과 그와 관련된 고급 클래스 내의 논리적 데이터 기반 구조를 표현.


- View : 사용자 인터페이스 내의 구성요소들을 표현 (사용자에게 보여지는 화면)


- Controller : Model과 View를 연결하고 흐름을 제어하는 클래스, Model과 View 사이의 정보를 교환하는데 사용




11. Interface, Abstract


Interface


- 오직 추상method와 상수만을 멤버로 갖는다. (JDK 1.8 부터는 static method와 default method도 가능함)


- static method : 인터페이스를 구현한 클래스에서 객체 생성없이 인터페이스 이름으로 호출 가능한 method, 오버라이드도 가능함


- default method : 기존 인터페이스에 새로운 method를 추가하게 되면 인터페이스를 구현한 모든 클래스들의 코드가 변경되어야 함.


  이 때 default 키워드를 붙이면 선택적으로 method를 구현하게 할 수 있다.


- implements 키워드 사용


- 상속 관계가 없는 클래스간 서로 공통되는 로직을 구현하여 쓸 수 있도록 한다.


- extends는 하나의 클래스만 상속 가능하나 interface는 다중 구현이 가능하다.



abstract class (추상 클래스)


- 추상 method를 하나 이상 가진 클래스


- 자신의 생성자로 객체 생성 불가능


- 하위 클래스를 참조하여 상위 클래스의 객체를 생성


- 상위 클래스의 자료형으로 하위 클래스를 제어하기 위해 사용




interface vs abstract


공통점


- new 연산자로 인스턴스 생성 불가능


- 프로토타입 (미완성 버전, 시스템의 초기 모델) 만 있는 method를 갖는다.


- 사용하기 위해서는 하위 클래스에서 확장 / 구현 해야 한다.


차이점


- 사용하는 키워드가 다르다.


- Abstract는 완성된 method를 사용할 수 있지만, Interface는 추상 method와 static, default method 선언만 가능하다.





12. Call by Reference, Call by Value (얕은 복사, 깊은 복사)


Call by Reference - 매개 변수의 원래 주소에 값을 저장하는 방식, 클래스 객체를 인수로 전달한 경우에 사용


Call by Value - 기본 데이터형을 사용, 주어진 값을 복사하여 처리하는 방식, method 내의 처리 결과는 method 밖에 변수에 영향을 미치지 못한다.




13. Static의 의미


- 클래스가 로딩될 때, 메모리 공간을 할당하는데 처음 설정된 메모리 공간이 변하지 않음을 의미한다.


- 객체를 아무리 많이 만들어도 해당 변수는 하나만 존재 (객체와 무관한 키워드)




14. Framework


- 특정 형태의 소프트웨어 문제를 해결하기 위해 상호 협력하는 클래스 프레임과 인터페이스 프레임의 집합


- 특정한 틀을 만들어 놓고 거기에 살을 붙여 놓음으로써 작업시간을 줄여준다.


- 프레임워크는 특정 개념들의 추상화를 제공하는 여러 클래스나 컴포넌트로 구성된다.


- 프레임워크는 이렇게 추상적인 개념들이 문제를 해결하기 위해 같이 작업하는 방법을 정의한다.


- 프레임워크 컴포넌트들은 재사용이 가능하다.


- 프레임워크는 좀 더 높은 수준에서 패턴을 조작한다. (대신 세부적인 제어가 어려움)


- 프레임워크가 중요한 이유는 객체지향 개발을 하게 되면서 개발자의 취향에 따라 다영한 프로그램이 나오게 되는데,


  프로그램 개발에 투입되는 개발자도 점점 늘어남에 따라 전체 시스템의 통합성, 일관성이 부족하게 되었기 때문



프레임 워크가 가져야할 특징


a. 개발자들이 따라야 할 가이드라인을 가진다.


b. 개발할 수 있는 범위가 정해져 있다.


c. 개발자를 위한 다양한 도구들이 지원된다.



프레임 워크의 장 / 단점


장점 - 개발 시간을 줄일 수 있고 오류로부터 자유로울 수 있다.


단점 - 프레임워크에 너무 의존하면 개발 능력이 떨어져서 프레임워크 없이 개발하는 것이 불가능해질 수 있다.



※ Garbage Collection (가비지 컬렉션) ※


시스템에서 더이상 사용하지 않는 동적 할당된 메모리 블럭을 찾아 자동으로 다시 사용 가능한 자원으로 회수하는 것으로


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



정적 할당 - 컴파일 할 때 메모리를 확보, 변수 이름으로 접근, 코드 블록이 종료되면 자동으로 회수됨 (ex - int a)


동적 할당 - 실행하면서 메모리 확보, 참조 변수로 접근, 코드 블록이 종료되어도 자동으로 회수되지 않음, 가비지 컬렉션을 사용 (ex - new int[5])





15. Primitive type (기본자료형) 과 Reference type (참조자료형)


  Primitive type - 변수에 값 자체를 저장 (실제 값을 저장)


  정수형 : byte, short, int, long


  실수형 : float, double


  문자형 : char


  논리형 : boolean


  - Primitive type는 Wrapper Class를 통해 객체로 변형할 수 있다.


  예) int -> Integer, char -> Character (int와 char를 제외한 Primitive type의 다른 자료형들은 맨 앞 알파벳을 대문자로 바꿔주면 된다. float -> Float)




  Reference type - 메모리상에 객체가 있는 위치를 저장 (객체의 번지 값을 저장)


  종류 - class, interface, array 등





출처


https://www.youtube.com/watch?v=CbYdP2sOvig&list=PLY9pe3iUjRrS38DxC5Fq5st9_hQhvyy3H&index=7

'기술 면접' 카테고리의 다른 글

경력직 기술 면접 예상 질문 - 1  (0) 2024.10.29
기술 면접 예상 질문 - 3  (0) 2020.11.10
기술 면접 예상 질문 - 1  (0) 2020.11.10
:

기술 면접 예상 질문 - 1

기술 면접 2020. 11. 10. 18:52

기술 면접 예상 질문


추가준비


1. 추가로 자신이 제작한 포트폴리오에 들어간 기술들과 팀프로젝트의 경우에는 어떤 부분을 자신이 개발하였는지에 대한 부분을

  한번 더 체크하고, 관련된 질문을 받았을 때 대답할 수 있도록 하여야 한다.


2. 알고리즘에 대한 준비도 필요.




1. JAVA


미국의 Sun MicroSystems에서 개발한 객체 지향 프로그래밍 언어


JAVA의 특징


- 자바가상머신 (Java Virtual Machine)만 설치하면 컴퓨터의 운영체제에 상관없이 작동한다. (운영체제에 독립적)


- 기본 자료형을 제외한 모든 요소들이 객체로 표현됨



※ 기본자료형 ※


char

문자형 

2byte 

byte 

정수형 

1byte 

short 

정수형 

2byte 

int 

정수형 

4byte 

long 

정수형 

8byte 

float 

실수형 

4byte 

double 

실수형 

8byte 

boolean 

논리형 

true / false 



- 객체 지향 개념의 특징인 캡슐화, 상속, 다형석, 추상화가 잘 적용된 언어


- Garbage Collector를 통한 자동적인 메모리 관리 (가비지 컬렉션)


- 멀티쓰레드 (Multi - thread)를 지원




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


Object - Oriented Programming의 약어로써 객체지향 프로그래밍을 의미


데이터를 객체로 취급하여 프로그램에 반영한 것이며, 순차적으로 프로그램이 동작하는 절차지향적인 프로그래밍과 다르게


객체와 객체의 상호작용을 통해 프로그램이 동작하는 것을 말한다.



OOP의 특징


- 객체지향 프로그래밍은 코드의 재사용성이 높다.


- 코드의 변경이 용이 (유지보수가 쉬움)


- 직관적인 코드분석


- 개발속도 향상


- 상속을 통한 장점 극대화




3. Object


Object (객체) 는 OOP에서 데이터 (변수) 와 그 데이터에 관련되는 동작 (함수) 즉 절차, 방법, 기능을 모두 포함한 개념


(모든 자료형의 조상)


EX) 기차역에서 승차권을 발매하는 경우, 실체인 '손님' 과 동작인 '승차권 주문' 은 하나의 객체이며, 실체인 '역무원' 과


동작인 '승차권 발매' 도 하나의 객체이다.




4. Overloading vs Overriding


Overloading (오버로딩) -> 상속과 관련이 없다.


- 한 클래스에서 같은 이름의 method를 여러개 정의하는 것 (method 중복)


- 매개변수의 타입이 다르거나 개수가 달라야 한다.


- 매개변수 순서가 달라야 한다.


- return type와 접근 제어자는 영향을 주지 않음.



Overriding (오버라이딩)


- 상속에서 나온 개념


- 상위클래스 (부모 클래스)의 method를 하위 클래스 (자식 클래스) 에서 상속받은 상태에서 본문 내용만 수정하는 것 (method 재정의)




5. Servlet, JSP


Web Server


- Web Client (웹 브라우저) 에게 컨텐츠를 제공하는 서버


- 정적인 HTML이나 jpeg, gif 같은 이미지를 HTTP 프로토콜을 통해 웹 브라우저에게 전송하는 역할


- 웹 서버의 종류 : apache, IIS(Internet Information Services)



WAS (Wab Application Server)


- Server 단에서 Web Application이 동작할 수 있도록 지원함


- 웹 서버와의 차이점 : 웹 서버는 정적인 컨텐츠를 지원, WAS는 동적인 컨텐츠를 지원


- Container (컨테이너) 라고도 하며, 초창기에는 CGI (Common Gateway Interface) 가 많이 사용되었고, JSP, PHP 등으로 발전됨


- 서블릿 / jsp에 포함된 자바코드를 컴파일하여 html을 생성하여 클라이언트로 전송함


- WAS의 종류 : tomcat, jeus, WebLogic, IBM Websphere, JBOSS 등


- Servlet : 서버에서 실행되는 자바 프로그램, Servlet Container이 이해할 수 있게 구성된 순수 자바 코드로만 이루어진 것 (HTML in JAVA)


- JSP (Java Server Pages) : HTML을 기반으로 JAVA 코드를 블록화하여 삽입한 것 (JAVA in HTML)




6. JDBC (Java Data Base Connection)


JAVA 언어를 통해 데이터베이스에 접근할 수 있는 프로그래밍 기법을 의미




7. Get와 Post 방식


Get 방식


- 클라이언트에서 서버로 데이터를 전달할 때, 주소 뒤에 "이름" 과 "값" (jsp? 이름=값) 이 결합된 스트링 형태로 전달


- 주소창에 쿼리 스트링이 그대로 보여지기 때문에 보안성이 떨어진다.


- 길이에 제한이 있다. (구버전의 웹브라우저의 경우 256바이트로 제한, 최근에는 제한이 없으나 주소창으로 대량의 데이터를 보내는 것은 적합하지 않음)


- Post 방식보다 상대적으로 전송 속도가 빠르다.



Post 방식


- 대량의 데이터를 보내야 할 때 사용한다.


- 서버로 보내기 전에 인코딩하고, 전송 후 서버에서는 다시 디코딩 작업을 한다. (단점 : 한글이 잘 깨질수 있음)


- 주소창에 전송하는 데이터의 정보가 노출되지 않아 Get 방식에 비해 보안성이 높다.


- 속도가 Get 방식보다 느리다.


- 쿼리스트링 (문자열) 데이터 뿐만 아니라, 라디오 버튼, 텍스트 박스, 첨부파일의 값도 전송 가능하다.



Get와 Post 방식의 차이점


 Get 방식 

 Post 방식

 

 - Get는 주로 웹 브라우저가 웹 서버에 데이터를 요청할 때 사용


 - Get를 사용하면 웹 브라우저에서 웹 서버로 전달되는 

   데이터가 인코딩 되어 URL에 붙는다.


 - Get방식은 전달되는 데이터가 255개의 문자를 초과하면 문제가 

   발생할 수 있다. (구버전의 웹브라우저의 경우)


 - Post는 웹 브라우저가 웹 서버에 데이터를 전달하기 위해 사용


 - Post방식은 전달되는 데이터가 보이지 않는다.


 - 웹 서버에 많은 데이터를 전달하기 위해서는 Post 방식을 

   사용하는 것이 바람직하다. 

   (파일첨부의 경우는 반드시 post 방식을 사용해야 함)






출처


https://www.youtube.com/watch?v=0L2uPmXXZeU&list=PLY9pe3iUjRrS38DxC5Fq5st9_hQhvyy3H&index=6

'기술 면접' 카테고리의 다른 글

경력직 기술 면접 예상 질문 - 1  (0) 2024.10.29
기술 면접 예상 질문 - 3  (0) 2020.11.10
기술 면접 예상 질문 - 2  (0) 2020.11.10
: