기술면접 준비 3
Servlet vs JSP
Servlet - 자바 언어로 웹 개발을 위해 만들어진 것으로, Container가 이해할 수 있게 구성된 순수 자바 코드로만 이루어진 것(Html in JAVA)
JSP(Java Server Page) - html기반에 JAVA코드를 블록화하여 삽입한 것(JAVA in Html)으로 Servlet을 좀 더 쉽게 접근할 수 있도록 만들어 진 것
RESTFUL
해당 URL만 보더라도 바로 어떤 작업을 하는지를 알 수 있도록 하나의 데이터는 하나의 URL을 갖도록 작업하는 방식
Session
- 특정 웹사이트에서 사용자가 머무르는 기간 또는 한 명의 사용자의 한번의 방문을 의미한다.
- Session에 관련된 데이터는 Server에 저장된다.
- 웹 브라우저의 캐시에 저장되어 브라우저가 닫히거나 서버에서 삭제시 사라진다.
- Cookie에 비해 보안성이 좋다.
- 모든 정보를 Session에 저장하면 Server의 메모리를 과도하게 사용하게 되어 Server에 무리가 감
Cookie
- 사용자 정보를 유지할 수 없다는 HTTP의 한계를 극복할 수 있는 방법
- 인터넷 웹 사이트의 방문 기록을 남겨 사용자와 웹 사이트 사이를 매개해 주는 정보이다.
- Cookie는 인터넷 사용자가 특정 웹서버에 접속할 때, 생성되는 개인 아이디와 비밀번호, 방문한 사이트의 정보를 담은 임시 파일로써, Server가 아닌 Client에 텍스트 파일로 저장되어 다음에 해당 웹서버를 찾을 경우 웹서버에서는 그가 누구인지 어떤 정보를 주로 찾았는지 등을 파악할 때 사용된다.
- Cookie는 Client PC에 저장되는 정보기 때문에, 다른 사용자에 의해서 임의로 변경이 가능하다.(정보 유출 가능, Session보다 보안성이 낮은 이유)
Garbage Collection(가비지 컬렉션)
시스템에서 더이상 사용하지 않는 동적 할당된 메로리 블럭을 찾아 자동으로 다시 사용 가능한 자원으로 회수하는 것으로 시스템에서 가비지컬렉션을 수행하는 부분을 가비지 컬렉터라 부른다.
정규화
테이블의 데이터들간의 종속성, 중복성 등으로 인해 예기치 못한 오류를 제거 하는 과정이라 할 수 있습니다. 정규화를 진행했을 때 장점은 DB의 일관성을 향상시킬수 있습니다. 또한 DB의 논리적 구조를 견고하게 만들 수 있습니다. 하지만 테이블의 숫자가 늘어나고 결국 join 연산의 비용이 증가 하는 단점을 가질 수 있습니다
DDL (Data Definition Language)
테이블 및 객체의 구조 생성 그리고 삭제, 변경과 관련된 명령어.
CRATE : 새로운 테이블 생성.
DROP : 기존 테이블의 구조 및 모든 행을 삭제.
ALTER : 기존 테이블 변경, 필드를 추가 또는 수정 할 수 있지만 삭제 불가.
TRUNCATE : 테이블의 구조를 남기고 모든 데이터 삭제.
RENAME : 오브젝트의 이름을 변경.
COMMENT : 테이블이나 컬럼에 주석문.
DML (Data Manipulation Language) 데이터 조작과 관계된 명령어. 데이터의 검색 및 출력, 정렬과 조인에 관계 됨. SELECT : 데이터의 조회.
INSERT : 데이터의 입력.
UPDATE : 데이터의 수정.
DELETE : 데이터의 삭제.
WHERE : 데이터의 조건.
COMMIT : 수행한 데이터 작업들의 영구 저장.
ROLLBACK : 수행한 데이터 작업들의 원상복구.
DCL (Data Control Language) 계정의 권한과 관계된 명령어. DB 사용자의 권한 정의.
COMMIT : 데이터베이스 조작을 영구적으로 반영.
ROLLBACK : 마지막 COMMIT 상태로 복구.
GRANT : 권한 부여.
REVOKE : 권한 취소.
블록체인
p2p 네트워크를 통해서 관리되는 분산 데이터베이스의 한 형태로, 거래 정보를 담은 장부를 중앙 서버 한 곳에 저장하는 것이 아니라 블록체 인 네트워크에 연결된 여러 컴퓨터에 저장 및 보관하는 기술로 다양한 분야에 활용이 가능한 기술이다.
클라우드
네트워크 전체에서 확장 가능한 리소스를 추상화, 풀링 및 공유하는 IT환경, 클라우드는 클라우드 환경 내에서 워크로드를 실행하는 동작인 클라우드 컴퓨팅을 지원한다.
리눅스 명령어
- 1. ls - 현재 위치의 파일 목록 조회
- 2. cd - 디렉터리 이동
- 3. touch - 0바이트 파일 생성, 파일의 날짜와 시간을 수정
- 4. mkdir - 디렉터리 생성
- 5. cp - 파일 복사
- 6. mv - 파일 이동
- 7. rm - 파일 삭제
- 8. cat - 파일의 내용을 화면에 출력, 리다이렉션 기호('>')를 사용하여 새로운 파일 생성
- 9. sudo - 현재 계정에서 root 권한을 이용하여 명령어를 실행할 때
- 10. alias - 자주 사용하는 명령어들을 별명으로 정의하여 쉽게 사용할 수 있도록 설정