Heestory

기술 대비 )etc 웹 본문

개발(~국비)/기술면접

기술 대비 )etc 웹

까만밀가루 2022. 9. 11. 00:01

1. ERD(Entity Relationship Diagram)?

 

Perter Chen에 의해 제안

서로 관계 되어 있는 엔터티를 그림(Diagram)으로 표현 한 것

개체 관계도이며 말로 되어 있는 요구 분석사항을 그림으로 그려 그 관계를 도출하는 것

 

Entity : 시스템화 하고자 하는 사건, 사물

Attribute

:엔티티, 관계성의 성질을 나타내는 더 이상 쪼갤 수 없는 정보의 단위

Relationship

:엔티티 또는 속성간의 연관성, 관계(1:1, 1:M , N:M)

 

2. AJAX?

:자바스크립트를 통해서 서버에 데이터를 비동기 방식으로 요청하는 것

 

(Asynchronous Javascript And Xml)비동기식 자바스크립트와 xml 의 약자

자바스크립트를 이용해 서버와 브라우저가 비동기 방식으로 데이터를 교환할 수 있는 통신 기능

브라우저가 가지고 있는 XMLHttpRequest 객체를 이용해서 전체 페이지를 새로 고치지 않고도 페이지의 일부만을 위한 데이터를 로드하는 기법

 

*비동기 방식
웹 페이지를 리로드 하지 않고 데이터를 불러오는 방식
페이지 리로드의 경우 전체 리소스를 다시 불러와야 하는데 이미지, 스크립트, 기타 코드등을 모두 재요청할 경우 불필요한 리소스 낭비가 발생하게 되지만 비동기식 방식을 이용할 경우 필요한 부분만 불러와 사용할 수 있으므로 큰 장점이 될 수 있다.
 
*동기 방식
설계가 매우 간단하고 직관적, 결과가 주어질 때까지 아무것도 못하고 대기해야한다.
요청과 결과가 한 자리에서 동시에 일어나야 하고 A노드와 B노드 사이의 작업 처리 단위를 동시에 맞춘다.

 

3. XML이란?(eXtrnsible Markup Language)

HTML과 매우 비슷한 문자 기반의 마크업 언어

데이터 저장과 전송을 목적으로 만들어진 마크업 언어

장점 : 스키마를 사용하여 데이터의 무결성을 검증할 수 있다.

새로운 태그를 만들어 추가해도 계속해서 동작하므로 확장성이 좋다.

단점 : XML은 배열을 사용할 수 없고(json은 배열 사용 가능), 데이터를 읽고 쓰는 것이 json에 비해 느리다.

 

HTML이 정해진 태그를 가지고 표현하는 것이라면 , XML은 사용자가 태그를 정의해서 사용할 수 있다.

JSON
:경량의 DATA-교환 형식, 데이터를 저장하고 전달하는 메타 언어
자바스크립트에서 객체를 만들 때 사용하는 표현식
장점 : JSON은 문자열을 전송받은 후에 해당 문자열을 바로 파싱하므로, XML보다 빠른 속도를 가진다.
단점 : JSON은 개발자가 문자열 데이터의 무결성을 검증해야한다.

#.공통점
1.데이터를 저장하고 전달하기 위해 고안되었음
2.기계뿐 아니라 사람도 쉽게 읽을 수 있음
3.계층적인 데이터 구조
4.다양한 프로그래밍 언어에 의해 파싱될 수 있음
5.XMLHttpRequest 객체를 이용하여 서버로부터 데이터를 전송받을수 있음
파싱(Parsing)
:데이터를 분해, 분석하여 원하는 형태로 조립하고 사용하는 것
XML이나 JSON형태로 존재하는 데이터를 받아와 자바 객체로 파싱하여 원하는 정보를 가져온다.
, DOM, SAX, JSON
파싱을 가능하게 해주는 프로그램을 파서(Parser)라 한다.
 
마크업 언어
:태그 등을 이용하여 문서나 데이터의 구조를 명기하는 언어의 한가지

 

 

4.미들웨어

응용 소프트웨어가 운영체제로부터 제공받는 서비스 이외에 추가적으로 이용할 수 있는 서비스를 제공하는 소프트 웨어

양쪽에 연결하여 데이터를 주고 받을 수 있도록 중간에서 매개 역할을 하는 소프트웨어

네트워크를 통해서 연결된 여러 개의 컴퓨터에 있는 많은 프로세스들에게 어떤 서비스를 사용할 수 있도록 연결해주는 소프트웨어

유연하고 확장, 축소가 편리하여야 하고 다른 기종 간 플랫폼을 다시 구축할 필요가 없어야한다.

 

<방식>

클라이언트는 단순히 요청만 중앙에 있는 서버(미들웨어)에게 보내고 이 미들웨어에서는 대부분의 로직을 수행한다. 이때, 데이터를 조작할 일이 있으면 DBMS에게 부탁한다. 그리고 그 결과를 클라이언트에게 전송하면 클라이언트는 그 결과를 화면에 보여주게 된다. 클라이언트는 복잡한 로직이 사라지고 단순히 화면에 그 결과만 보여주기 때문에 사용자로부터 입력만 받아서 미들웨어에게만 보내는 역할만 수행하면 되기 때문에 크기가 매우 작아지게 된다.

 

프로그램 로직이 변경이 되면 모든 클라이언트를 다시 배포할 필요가 없이 중앙의 미들웨어만 변경된다.(클라이언트는 입력과 출력만 담당)

 

 

 

 

5. WAS (Web Application Server)

웹 브라우저와 같은 클라이언트로부터 웹 서버가 요청을 받으면 애플리케이션에 대한 로직을 실행하여 웹 서버로 다시 반환해주는 소프트웨어 프레임워크

웹 서버와 DBMS 사이에서 동작하는 미들웨어, 컨테이너 기반으로 동작

 

종류

오픈소스

:아파치 Tomcat, Jetty(이클립스 재단에서 관리, 임베디드 자바 애플리케이션에서 웹 서비스를 제공하고 이클립스를 IDE컴포넌트로 사용)

상용소프트웨어

:WebLogic(오라클에서 관리) , JBoss(레드햇에서 관리), Jeus

 

웹 서버와 WAS의 차이점

:웹 서버의 경우 정적인 컨텐츠(HTML,CSS,IMAGE )을 요청받아 처리하고 WAS의 경우 동적인 컨텐츠(JSP, PHP, ASP)를 요청받아 처리

 

나눠야 하는 이유

:데이터 처리방식에 따라 부하를 나누기 위해

WAS의 경우 사용자들에게 공개되어질 필요가 없고 db접속 정보가 있기대문에 노출될 경우 보안상 문제가 될 수 있음

 

https://coding-factory.tistory.com/741

 

[Web] Web Server와 WAS(Web Application Server)에 대하여

Web Service의 전체적인 흐름 웹 개발을 진행한다고 하면 위의 그림과 같은 구조로 시스템을 구성하게 됩니다. 전체적인 흐름을 보면 웹 브라우저에서 Web Server로 HTTP 요청을 보내고 정적 요청인 경

coding-factory.tistory.com

 

 

 

 

6. REST 서비스란 무엇인가?

REST(Represntational State Transfer)

: URIHTTP 메소드를 이용해 객체화된 서비스에 접근하는 것

=HTTP URI를 통해 자원을 명시하고 HTTP Method(GET, POST, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것.

혹은 자원을 메소드를 이용해 상태를 표현하는 것 > 구성요소 이어서

 

<구성요소>

자원: URI / 모든 자원에 고유한 ID 가 존제하고, 이 자원은 Server에 존재.

자원을 구별하는 ID'/groups/:groupsid' 와 같은 HTTP URI

클라이언트는 URI를 이용해서 자원을 지정, 해당 자원의 상태에 대한 조작을 서버에 요청.

행위 : HTTP Method

표현 : 클라이언트가 자원에 대한 조작을 요청하면 서버는 이에 적절한 응답을 보냄.

JSON, XML을 통해 데이터를 주고받는 것이 일반적.

#.REST 장단점
장점
-HTTP 프로토콜의 인프라를 그대로 사용하므로 REST API 사용을 위한 별도의 인프라를 구출할 필요가 없다.
-HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용이 가능하다.
-REST API 메시지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악할 수 있다.
-서버와 클라이언트의 역할을 명확하게 분리한다.
단점
-표준이 존재하지 않음.
-사용할 수 있는 메소드가 4가지 밖에 없음.
-구형 브라우저가 아직 제대로 지원해지지 못하는 부분(PUT, DELETE)이 존재함.
 
#.REST API
REST 기반으로 서비스 API를 구현한 것.
OpenAPI, 마이크로 서비스 등을 제공하는 업체 대부분은 REST API를 제공함.
-REST API의 특징
사내 시스템들도 REST 기반으로 시스템을 분산해 확장성과 재사용성을 높여 유지보수 및 운용을 편리하게 할 수 있음.
RESTHTTP 표준을 기반으로 구현하므로, HTTP를 지원하는 프로그램 언어로 클라이언트, 서버를 구현할 수 있음.

#.RESTful 하지 못한 경우는?
resource, id 외의 정보가 들어가는 URI 경우
CRUD 기능을 모두 POST로만 처리한 API 경우

 

 

 

7. HTML5의 주요 기능은 무엇인가?

월드 와이드 웹 (World Wide Web)의 핵심 마크업 언어

기존 텍스트와 하이퍼링크만 표시하던 HTML이 멀티미디어 등 다양한 애플리케이션까지 표현·제공하도록 진화한 웹 프로그래밍 언어

호환성이 목표

 

<기능>

1.Device AccessDEVICE ACCESS : 카메라, 동작센서 등의 H/W 기능을 웹에서 직접적으로 제어

2.CONNECTIVITY(Web Socket) : (클라이언트)에서 서버 측과 직접적인 양방향 통신 가능

3.3D, GRAPHICS & EFFECTS : 다양한 2차원 및 3차원 그래픽 기능을 지원

4.Styling Effects(CSS3) : 글씨체, 색상, 배경 등 다양한 스타일 및 이펙트 기능 제공

5.MULTIMEDIA : 비디오 및 오디오 기능을 자체적으로 지원

6.OFFLINE & STORAGE : 네트워크 미지원 환경에서도 웹 이용을 가능하게 함

7.Geo-Location: GPS없이도 단말기의 지리적인 위치 정보를 제공

8.SEMANTICS : 웹 자료에 의미를 부여하여 사용자 의도에 맞는 맞춤형 검색 제공

 

<HTML5 디자인 원칙 : 호환성>

 

1.콘텐츠의 호환성 : HTML5 이전 버전으로 제작한 콘텐츠도 문제없이 이용 가능해야 한다.

2.이전 브라우저와의 호환성 : HTML5 가 지원되지 않는 이전 버전의 브라우저에서도 이용 가능해야 한다.

3.이용 방법의 호환성 : 기존에 HTML 태그 사용법을 최대한 사용가능하도록 해야 한다.

4.기능의 재사용 : 각각의 브라우저에서만 사용 가능한 기능들을 통합하여 공통적으로 사용할 수 있어야 한다.

5.혁신보다는 발전을 우선 : HTML5는 새로운 언어를 구현하는 것이 아니므로 이미 사용 중인 HTML을 보다 사용하기 쉽도록 재구성하도록 한다.

 

 

'개발(~국비) > 기술면접' 카테고리의 다른 글

기술대비 ) JQuery  (0) 2022.09.11
기술 대비 ) 웹  (0) 2022.09.11
기술 대비 ) GIT & GITHub (링크)  (0) 2022.08.19
기술 대비 링크 LIST  (0) 2022.08.18
기술 대비 ) 함수형 프로그래밍  (0) 2022.08.18