일단 씻고 나가자

23.04.19 본문

Study/닥치는 대로 주워 담기

23.04.19

일단 씻고 나가자 2023. 4. 20. 01:50

2023. 04. 19 수요일

 

- [Java] 브라우저 -> JSP의 과정? 서블릿이란 무엇이며 JSP와의 차이? 퍼블리싱?

: 브라우저 요청 -> 해당 JSP 파일을 자바 파일로 변환 -> 컴파일로 클래스 파일로 변환 -> 인스턴스 생성 -> 해당 객체의 service 함수로 대응.

 

JSP 또한 서블릿이며, servlet으로 동작한다.

서블릿은 웹 클라이언트의 요청을 처리할 수 있는 클래스이며, HTTPServlet을 상속받아 클래스를 작성한다. (@override init(), destroy(), service(~), doGet(~))

기존 방식은 클라이언트의 요청을 JSP로 받았지만, 서블릿 방식은 Servlet으로 직접 받는다. 둘은 요청하는 방식이 JSPServlet이냐의 차이가 있다. 서블릿으로 요청해야 MVC를 분류할 수 있다. (M model, Java / V view, JSP / C controller, servlet)

 

이렇게 서블릿을 이용하면 웹은 자바 코드가 필요하게 되고, 코드의 매개체가 되는 것을 등록해주어야 한다. web.xml<web-abb> 내부에 <servlet-name>이름, <servlet-class>패키지명.클래스명, <servlet-mapping><servlet-name>이름, <url-patterm>요청 url</>으로 설정 파일을 변경해주어야 한다.

doGet 혹은 doPost 메서드 내부에 {req.getRequestDispatcher(“\login.jsp”).forward(req, resp);} 식으로 해당 jsp 파일을 내보내어 내부에서 forwarding 할 수도 있다.

 

퍼블리싱 워크 스페이스의 특정 공간에 작성 프로젝트를 복사해서 작업을 시킴.

 

 

- [DB] NULL을 제거한, 중복되지 않은 컬럼의 개수를 구하는 명령어?

: SELECT COUNT(DISTINCT 컬럼명)

COUNTNULL 값을 제거하고 센다.

 

 

- [Java] 특정 int를 이진수 변환했을 때 1의 개수를 구하는 함수?

: Integer.bitCount(int num);

 

 

- 클럭 사이클이 Tpk개의 세그먼트 파이프라인의 n개의 태스크의 클럭 사이클 수? 시간?

: 첫 태스크는 k*Tp의 시간이 필요하고, 나머지 n-1개의 태스크는 (n-1)*Tp 시간이 필요하다. 따라서 총 사이클 수는 k+n-1이고, 총 시간은 (k+n-1)*Tp 이다.

https://celdee.tistory.com/549

 

 

- 레이드란?

: Redundant Array of Independent Disk. 2개 이상의 디스크를 병렬로 처리하여, 디스크 오류나 데이터 손실의 장애를 대비하는 방법.

https://blog.naver.com/hostinggodo/220641452948

 

 

- [Git] SSH?

: 시큐어 셀 (Secure SHell). 네트워크 프로토콜 중 하나로, 통신 시 보안적으로 안전한 응용 프로그램 또는 프로토콜을 가리킨다. public, private key로 나뉘며, public key를 원격 컴퓨터에게 심어놓으면 통신 시 해당 컴퓨터에서 private keypublic key가 한 쌍인지 검사한다. 둘은 수학적으로 아주 복잡한 관계를 맺고 있으며, private key는 노출되어선 안 된다.

https://hanamon.kr/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-ssh%EB%9E%80/

 

 

- [Spring] DTO?

: Data Transfer Object. 외부와 통신을 하기 위해 필요한 클래스들을 통칭.

 

 

- 구현은 쉽지만 속도가 느린 정렬의 3종류와 각 세부 종류와 특징? in-place?

1. 버블 정렬 (Bubble Sort)

// 인접한 데이터를 비교하여 자리를 바꾸는 방식. O(n^2)

 

2. 삽입 정렬 (Insertion Sort)

// 앞의 데이터를 정렬해가며 삽입 위치를 찾아 정렬. O(n^2)

바로 앞의 데이터를 검사한 후 크다면 한 칸 앞으로, 또다시 검사 반복.

만약 바로 앞의 데이터가 더 작다면 이미 앞의 부분은 정렬한 후일 것이므로 넘어감.

평균적으론 버블보다 빠르다.

 

3. 선택 정렬 (Selection Sort)

// 최소, 또는 최댓값을 찾아 가장 앞, 혹은 가장 뒤의 원소와 자리를 바꾸며 순차적으로 정렬. O(n^2)

매번 모든 값을 돌며 최소 혹은 최대를 찾아야 한다.

 

in-place 정렬은 원소들의 개수에 비해 충분히 무시할 만한 저장 공간만을 더 사용하는 정렬 알고리즘이다. (ex. int temp 변수 하나만을 쓴다던가) not in-place는 원소들의 개수에 비례하여 저장 공간을 더 사용하는 정렬 알고리즘이다.

 

 

- 스케쥴러란? 스케쥴링 알고리즘의 5종류와 관련 자료구조?

: OS 커널 내부의 스케쥴러가 프로세스 실행을 관리하며 프로세스의 순번을 정해준다.

 

1. FIFO 스케쥴러 // 배치 처리 시스템. 인터럽트 없이 쭉 진행. (Queue)

 

2. SJF 스케쥴러 // 가장 실행시간이 짧은 프로세스부터 먼저 실행. (Priority Queue, Heap)

프로세스 개별 전체를 실행하고 넘겨주기 때문에 실행시간이 보장된다. (실시간 시스템)

+) RTOS RealTime OS. 실행시간을 보장. (ex. 반도체 공정)

    GPOS General Purpose OS. 프로세스 실행시간에 민감하지 않은 일반적인 OS.

 

3. 우선순위 기반 스케쥴러 // 프로세스마다 우선순위를 명시.

(정적 우선순위 미리 우선순위 지정 / 동적 스케쥴러가 상황에 따라 동적으로 지정)

 

4. Round Robin // 시분할 시스템.

Queue 형태이지만 프로세스마다 일정 시간을 주어, 해당 시간이 끝나면 다음 기다리는 프로세스에게 CPU를 넘겨주는 스케쥴러.

 

5. 프로세스 상태 기반 스케쥴러 // 현대 스케쥴링 알고리즘.

프로세스별로 상태를 부여하여 스케쥴링하는 알고리즘.

Round Robin과 상태를 도입했기에 멀티프로그래밍, 멀티 태스킹에 쓰인다.

new, ready, running, blocked, exit로 나뉜다.

보통 I/O 작업 등으로 CPU를 사용하지 못할 땐 blocked 상태가 된다.

 

 

- bound job2종류?

: IO, CPU bound. IO는 네트워크나 파일 입출력을 주로 쓰는 작업, CPU는 계산기처럼 CPU만 활용하는 작업.

해당 분류를 고려하여 응용 프로그램을 만들어야 효율이 높아진다.

'Study > 닥치는 대로 주워 담기' 카테고리의 다른 글

23.04.21  (0) 2023.04.22
23.04.20  (0) 2023.04.21
23.04.18  (0) 2023.04.19
23.04.17  (1) 2023.04.18
23.04.13  (0) 2023.04.14