웹 서버와 WAS의 차이는?
대표적인 웹서버는 Apache, Ngnix가 있습니다.웹서버란 HTTP 프로토콜을 기반으로 클러이언트가 웹 브라우저에 요청을하면 그 요청을 받아서 정적 컨텐츠를 제공하는 서버입니다. 정적 컨텐츠는 단순 HTML 문서, CSS, 이미지, 파일 등 즉시 응답 가능한 컨텐츠를 말합니다. 웹서버가 정적 컨텐츠가 아닌 동적 컨텐츠를 요청 받으면 WAS가 요청을 처리하게 되고 그 결과를 웹서버가 클라이언트가 전달하는 역할도 하게 됩니다.
WAS(Web Application Server)는 서블릿 컨테이너, 웹 컨테이너라고 불리기도 하는데 웹 서버의 기능들을 구조적으로 분리하여 처리하는 목적으로 만들어졌습니다. 분산 트랜젝션, 보안, 쓰레드 처리 등을 처리하는 분산 환경에서 사용이 됩니다. WAS는 프로그램 환경과 DB 접속 기능을 제공하고 여러개의 트랜잭션을 관리할 수 있습니다. WAS의 종류로는 Tomcat, JBOSS, WebSphere 등이 있습니다.
Stack과 Queue 그리고 Array와 Linked List 자료구조에 대해 말씀해주시고 차이점에 대해 설명해주세요.
배열(Array)와 Linked List에 설명을 드리자면 먼저 배열은 구조가 간단하고 데이터를 읽는데 걸리는 access time이 짧은 편입니다. 단점으로는 크기를 변경할 수 없고, 크기 변경을 피하기 위해 충분히 큰 배열을 생겅하면 메모리가 낭비가 됩니다. 또 비순차적인 데이터의 추가, 삭제에 시간이 많이 걸린다는 단점이 있습니다. LinkedList는 이런 배열의 단점을 보완한 것이 특징입니다. 비연속적으로 존재하는 데이터를 연결하고 단 한번의 참조 변경으로 데이터 삭제가 가능합니다. 또 한번의 Node 객체 생성과 두번의 참조 변경만으로 데이터 추가가 가능합니다. 링크트리스트는 데이터 접근성이 나쁘다는 단점이 있는데 이중 연결 리스트는 이러한 문제를 보완하여 접근성을 향상시켰습니다. 배열은 빠른 접근이 요구되고, 데이터의 삽입과 삭제가 적을 때 사용하고 링크드리스트는 삽입과 삭제 연산이 잦고, 검색 빈도가 적을 때 사용합니다.
'Tech Interview' 카테고리의 다른 글
@SpringBootTest @WebMvcTest 트랜젝션 TCP UDP (0) | 2023.02.27 |
---|---|
Parameter vs Argument 프로세스 vs 스레드 (0) | 2023.02.24 |
MSA 제네릭 컬렉션 클랙스 List Set Map HashMap (1) | 2023.02.23 |
DI(Dependency Injection)과 DB에서 인덱스 사용 장점 (0) | 2023.02.22 |
객체지향프로그래밍과 REST API (0) | 2023.02.21 |