[IT 지식] 기술면접

10
post-thumbnail
  • 먼저 백엔드 개발자는 보이지 않는 곳에서 작동하는 코드를 만든다. 여기에는 API 작성, 라이브러리 제작, 사용자 인터페이스가 없는 시스템 컴포넌트 다루기 뿐 아니라 과학적 프로그래밍 작업도 포함된다.

1. 클래스, 객체, 인스턴스


클래스 : 객체를 만들어 내기 위한 설계도 / 변수와 메서드의 집합
객체 : 소프트웨어 세계에 구현할 대상
인스턴스 :설계도를 바탕으로 소프트웨어 세계에 구현된 구체적인 실체

2. 포트번호


FTP : 20 ~ 21 번
SSH : 22 번
HTTP : 80 번
HTTPS : 443 번
SMTP : 25 번
telnet : 23 번

3. http (80번) vs https (443번)


HTTP는 하이퍼 텍스트 전송 프로토콜의(Hypertext Transfer Protocol)의 약자.
서로 다른 시스템들 사이에서 통신을 주고받게 해주는 가장 기초적인 프로토콜

HTTPS 프로토콜은 SSL(보안 소켓 계층)을 사용함으로써 이 문제를 해결
SSL은 서버와 브라우저 사이에 안전하게 암호화된 연결을 만들 수 있게 도와주고, 서버 브라우저가 민감한 정보를 주고받을 때 이것이 도난당하는 것을 막아준다.

4. http 상태코드


200 = 성공
400 = 클라이언트가 요청 잘못함
500 = 서버가 잘못함
404 = 페이지 못찾음

5. WEB / WAS


WEB
HTML, CSS, js, jpg 등 정적인 데이터를 처리하는 웹서버
클라이언트가 요청한 정적인 콘텐츠를 HTTP 프로토콜을 통하여 제공해주는 서버
동적인 요청이 클라이언트로부터 들어왔을 때, 해당 요청을 웹 서버에서 처리할 수 없기 때문에 컨테이너(Container)로 보내주는 역할

WAS
JSP, ASP, PHP 등 사용자의 입력을 받아 서버에서 무언가를 처리하고 그 결과를 보여주는 동적인 데이터를 처리하는 웹서버.
웹 서버와 컨테이너를 붙여놓은 서버

6. 동기방식 (Synchronous) vs 비동기 방식 (Asynchronous)


동기방식 (Synchronous)
요청을 보낸 후 응답(=결과)를 받아야지만 다음 동작이 이루어지는 방식이다.
어떠한 일을 처리할 동안 다른 프로그램은 정지한다.
실제 cpu가 느려지는 것은 아니지만 시스템의 전체적인 효율이 저하된다고 할 수 있다.
비동기 방식 (Asynchronous)
요청을 보낸 후 응답(=결과)와는 상관없이 다음방식이 동작하는 방식이다.
결과가 주어지는데 시간이 걸리더라도 그 시간 동안 다른 작업을 할 수 있으므로 자원을 효율적으로 사용할 수 있다.

7. Servlet


클라이언트 요청을 처리하고 그 결과를 다시 클라이언트에게 전송하는 Servlet 클래스의 구현 규칙을 지킨 자바 프로그램

8. 교착상태 ( Dead Lock )


상호 배제에 의해 나타나는 문제점
둘 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상

9. TCP와 UDP의 차이


TCP
연결형 서비스로 가상 회선 방식을 제공한다.
3-way handshaking과정을 통해 연결을 설정하고 4-way handshaking을 통해 해제한다.
흐름 제어 및 혼잡 제어.
높은 신뢰성을 보장한다.
UDP보다 속도가 느리다.
전이중(Full-Duplex), 점대점(Point to Point) 방식.
UDP
비연결형 서비스로 데이터그램 방식을 제공한다
정보를 주고 받을 때 정보를 보내거나 받는다는 신호절차를 거치지 않는다.
UDP헤더의 CheckSum 필드를 통해 최소한의 오류만 검출한다.
신뢰성이 낮다
TCP보다 속도가 빠르다.

10. CORS


교차 출처 리소스 공유(Cross-Origin Resource Sharing, CORS) :
추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제입니다.

11. JBOSS


Java Servlet Application server
Jboss는 훨씬 더 기능이 많다.

12. 포팅 ( Porting)


어느 한 운영체제에서 사용되는 프로그램을 다른 운영체제에서 사용하기 위해 변경하는 것.


세션
Server에만 저장
쿠키
String 만 저장
Client PC 에 저장되어 조작이 가능하다.

14. 보안 알고리즘


SHA
SHA(Secure Hash Algorithm, 안전한 해시 알고리즘) 함수들은 서로 관련된 암호학적 해시 함수들의 모음
SHA-256은 현재가장 많은 분야에서 채택하여 사용되고 있는 암호 방식
출력 속도가 빠르다는 장점

15. AJP


AJP는 웹서버(Apache) 뒤에 있는 어플리케이션 서버로부터 웹서버로 들어오늘 요청을 위임할 수 있는 바이너리 프로토콜

16. 아파치와 톰캣


아파치 (Apache)
▷ 웹서버 = 80번 포트로 클라이언트 요청(POST,GET,DELETE)이 왔을때만 응답함.
▷ 정적인 데이터만 처리한다.(HTML,CSS,이미지 등).

톰캣 (Tomcat)

▷ WAS(Web Application Server)
컨테이너, 웹 컨테이너, 서블릿 컨테이너라고 부름
JSP,서블릿처리,HTTP요청 수신 및 응답
톰캣이 아파치의 기능 일부를 가져와서 제공해주는 형태이기 때문에 같이 합쳐서 부른다. WAS(Web Application Server)

17. ORM


객체관계매핑
ORM(Object-relatinal mapping)이란 객체(클래스)와 관계(관계형 데이터 베이스)와의 설정을 의미 합니다. 객체 지향 프로그래밍은 클래스를 사용하고 관계형 데이터 베이스는 테이블을 사용합니다. 여기서 객체 모델과 관계형 모델간에 불일치가 존재 하는데 이 객체간의 관계를 바탕으로 SQL을 자동 생성하여 불일치를 해결 하는 것이 ORM입니다.

18. 스키마


데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 메타데이터의 집합

19. 트랜잭션 4가지 특성


트랜잭션의 특징은 크게 4가지로 구분된다.
원자성 (Atomicity)
일관성 (Consistency)
독립성 (Isolation)
영속성 (Durability)

20. 객체지향 5원칙(SOLID)


SOLID란 로버트 마틴이 2000년대 초에 명명한 객체 지향 프로그래밍의 다섯 가지 기본 원칙을 마이클 페더스가 원칙의 앞 글자를 따서 다시 SOLID라는 이름으로 소개한 것

단일 책임 원칙(Single responsibility principle) : SRP
개방 폐쇄 원칙(Open/closed principle) : OCP
리스코프 치환 원칙(Liskov substitution principle) : LSP
인터페이스 분리 원칙(Interface segregation principle) : ISP
의존관계 역전 원칙(Dependency inversion principle) : DIP

참고 : https://velog.io/@yseonjin

profile
ᴅᴇ́ᴠᴇʟᴏᴘᴘᴇᴜʀ. ᴘʀᴏɢʀᴀᴍᴍᴀᴛɪᴏɴ 🔥

4개의 댓글

comment-user-thumbnail
2021년 4월 19일

오~~

1개의 답글
comment-user-thumbnail
2021년 4월 20일

오옹~~

1개의 답글