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 )
- 교착상태(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)
- 어느 한 운영체제에서 사용되는 프로그램을 다른 운영체제에서 사용하기 위해 변경하는 것.
13. 세션 ( Session ) 과 쿠키 ( Cookie )
- 세션 :
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
항상 잘보고 있습니다.
좋은 결과 얻으시길!