iOS워크숍 과제1

김서영·2023년 1월 19일
0

iOS워크숍

목록 보기
3/3

1.프로세스와 스레드의 차이는 무엇인가요?

A. 프로세스는 실행중인 프로그램을 의미하며, 스레드는 프로세스 내에서의 작업단위다. 스레드는 프로세스의 일부 특성을 가지고 있어 '경량 프로세스'라고도 칭한다.

2.교착상태란 무엇이며, 교착상태가 발생하기 위해서는 어떤 조건이 있어야 하나요?

A. 교착상태는 둘 이상의 프로세스들이 자원을 점유하는 상태에서 서로 다른 프로세스가 점유하는 자원을 요구해 무한정 기다리는 현상을 의미한다.
상호 배제, 점유와 대기, 비선점, 환형 대기중에 하나라도 만족하면 교착상태가 발생할 수 있다.

3.페이징와 세그멘테이션에 대해서 설명해 주세요.

A. 페이징은 프로세스를 일정한 크기의 페이지로 분할해서 메모리에 적재하는 방식이고, 세그멘테이션은 프로세스를 다양한 크기의 논리적 단위로 나누어 적재시키는 방식이다.

4.First Fit, Best Fit, Worst Fit에 대해서 설명해 주세요.

A. First Fit은 들어갈 수 있는 영역 중 가장 처음의 영역으로 들어가는 방식이다.
Best Fit은 들어갈 수 있는 영역 중에서 단편화를 가장 작게 남기는 영역으로 들어가는 방식이다.
Worst Fit은 들어갈 수 있는 영역 중에서 단편화를 가장 많이 남기는 영역으로 들어가는 방식이다.

5.OSI 7계층에 대해서 설명해주세요.

A. OSI 7계층은 다른 시스템 간의 원활한 통신을 위해 ISO에서 제안한 통신규약이다.

6.DNS(Domain Name System)가 무엇인가요?

A. DNS은 사람이 읽을 수 있는 도메인 이름을 IP 주소로 변환하는 시스템이다.

7.TCP와 UDP의 차이에 대해서 설명해 주세요.

A. TCP는 연결형 서비스를 제공하는데 반해 UDP는 비연결형 서비스를 제공한다.

8.HTTP와 HTTPS의 차이는 무엇인가요?

A. HTTP에 보안 모듈을 결합시킨 프로토콜이 HTTPS이다.

9.HTTP 1.0과 1.1의 차이는 무엇인가요?

A. HTTP 1.0은 TCP 세션을 유지하지 않고, 1.1은 TCP 세션을 유지하기 때문에 지속성에 차이가 있다.

10.HTTP GET과 POST의 차이는 무엇인가요?

A. GET을 사용하면 URL에 데이터가 보이기 때문에 보안에 취약하지만 POST를 사용하면 패킷에 데이터를 넣어 보내기 때문에 상대적으로 보안에 강하다.

11.쿠키와 세션에 대해서 설명해 주세요.

A. 쿠키는 클라이언트에 저장되는 키와 값이 들어있는 작은 데이터 파일이며, 세션은 서버에 저장되는 데이터 파일이다.

12.웹브라우저에서 서버로 요청했을 때, 흐름을 설명해주세요.

A. URL을 입력하면 브라우저가 분석해, 도메인명으로 IP주소를 조회한다. IP와 PORT를 찾으면 HTTP 요청메세지를 생성해 서버에 패킷으로 전송한다. 서버에 패킷이 도착하면 패킷을 조회해 HTTP 응답 메세지를 생성해 브라우저로 전송한다. 브라우저는 도착한 메세지를 렌더링한다.

13.REST API에 대해서 설명해 주세요.

A. REST는 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것이며, REST의 원리를 따르는 API를 REST API라고 한다.

14.정규화에 대해서 설명해 주세요.

A. 정규화란 종속성 이론을 이용하여 잘못 설계된 관계형 스키마를 분해하여 바람직한 스키마로 만들어가는 과정이다.

15.인덱스란 무엇인가요?

A. 검색 시간을 단축시키기 위해 만든 보조적인 데이터 구조다.

16.다익스트라 알고리즘에 대해서 설명해 주세요.

A. 다익스트라 알고리즘은 그래프 상에서 시작 정점부터 나머지 각 정점까지의 최단거리를 계산하는 알고리즘이며, 가중치(길이)를 이용하기 때문에 '최소 비용'을 구할 때 주로 사용한다.

17.스택과 큐에 대해서 설명해 주세요.

A. 스택은 한쪽 끝으로만 자료의 삽입, 삭제 작업이 이루어지는 자료 구조며, 큐는 한쪽에서는 자료의 삽입, 다른 한쪽에서는 삭제 작업이 이루어지는 자료 구조다.

18.객체지향이 무엇인가요?

A. 현실의 개체를 기계의 부품처럼 하나의 객체로 만들어 객체들을 조립해서 작성할 수 있는 기법이다.

19.객체지향 SOLID 원칙에 대해서 설명해 주세요.

A. 객체지향 SOLID 원칙은 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙을 말하며, SRP(단일 책임 원칙), OCP(개방-폐쇄 원칙), LSP(리스코프 치환 원칙), ISP(인터페이스 분리 원칙), DIP(의존관계 역전 원칙)의 5가지 원칙이 있다.

20.오버로딩과 오버라이딩의 차이는 무엇인가요?

A. 오버로딩은 하나의 클래스 내에서 메서드명은 같고, 매개변수의 개수나 타입이 다른 함수를 정의하는 것을 의미하고, 오버라이딩은 부모의 메서드를 자식 클래스가 재정의하는 것이다.

21.클래스와 객체에 대해 설명해 주세요.

A. 객체는 데이터와 함수를 묶은 하나의 소프트웨어 모듈이며, 클래스는 공통된 속성과 연산을 갖는 객체의 집합이다.

22.Java 접근 제어자에 대해서 각각 설명해 주세요.

A. private은 클래스 내부에서만 접근할 수 있고, public은 모든 영역에서 접근할 수 있다. default은 동일한 패키지내에서 접근할 수 있으며, 기본 접근 제어자다. protected은 동일한 패키지와 상속받은 클래스까지 접근할 수 있다.

23.Java Generic에 대해서 설명해 주세요.

A. Java Generic은 데이터 타입을 지정하지 않고 사용자의 호출에 의해 타입이 지정되는 것을 의미한다.

24.MVC에 대해서 설명해 주세요.

A. MVC는 모델, 뷰, 컨트롤러의 3개의 부분으로 구조화한 아키텍처 패턴이다.

25.TDD란 무엇인가요?

A. 반복 테스트를 이용한 소프트웨어 방법론으로 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현한다.

26.애자일 방법론이란 무엇인가요?

A. 일정한 주기를 반복하면서 개발 과정을 진행하는 방법론입니다.

27.ARC(Automatic Reference Counting)란 무엇인가요?

A. ARC은 앱의 참조메모리를 자동으로 관리하는 역할을 하며, Swift의 메모리 관리 모델이다.


0개의 댓글