요르딩딩

[기술면접] 프로그래밍 공통(2) 본문

[기술면접]

[기술면접] 프로그래밍 공통(2)

요르딩딩 2021. 6. 21. 21:48
728x90
반응형

 

 

코드 영역

- 실행할 프로그램의 코드가 저장되는 영역으로 텍스트 영역이라고도 부릅니다

- 사용자가 프로그램 실행 명령을 내리면 OS가 HDD에서 실행 코드를 메모리로 올리게 되고, CPU는 코드 영역에 저장된 명령어를 하나씩 처리하게 된다.

 

데이터 영역

- 프로그램의 전역 변수(global)와 정적 변수(static)가 저장되는 영역입니다.

- 데이터 영역은 프로그램의 시작과 함께 할당되며, 프로그램이 종료되면 소멸합니다.

 

힙 영역

- 프로그래머가 직접 관리할 수 있는 메모리 영역으로 이 공간에 메모리를 할당하는 것을 동적 할당이라고 부릅니다.

- Java에서는 가비지 컬렉터가 자동으로 해제해줍니다.

- 힙 영역은 스택 영역과 달리 낮은 주소에서 높은 주소로 메모리가 할당됩니다.

 

스택 영역

- 함수의 호출과 함께 할당되며 지역 변수와 매개 변수가 저장되는 영역입니다.

- 스택 영역에 저장되는 함수의 호출 정보를 스택프레임이라고 합니다.

- 스택 영역은 함수의 호출이 완료되면 소멸합니다. 스택 영역은 높은 주소에서 낮은 주소로 메모리가 할당됩니다.

 

[ Parameter와 Argument ]

- Parameter: 함수를 선언할 때 사용된 변수

- Argument: 함수가 호출되었을 때 함수의 파라미터로 전달된 실제 값

 

[ Call By Value와 Call By Reference ]

Call By Value

- 인자로 받은 값을 복사하여 처리하는 방식

- Call By Value에 의해 넘어온 값을 증가시켜도 원래의 값이 보존된다.

- 값을 복사하여 넘기기 때문에 메모리 사용량이 늘어난다.

 

Call By Reference

- 인자로 받은 값의 주소를 참조하여 직접 값에 영향을 주는 방식

- 값을 복사하지 않고 직접 참조하기 때문에 속도가 빠르다.

- 원래의 값에 영향을 주는 리스크가 존재한다.

 

[ 프레임워크와 라이브러리 ]

- 프레임워크: 전체적인 흐름을 자체적으로 제어한다.

- 라이브러리: 사용자가 흐름에 대한 제어를 하며 필요한 상황에 가져다가 쓸 수 있다.

 

> 프레임워크와 라이브러리는 실행 흐름에 대한 제어 권한이 어디 있는지에 따라 달라집니다.

> 프레임워크를 사용하면 사용자가 관리해야 하는 부분을 프레임워크에 넘김으로써 신경써야 할 것을 줄이는 제어의 역전(IoC, Inversion Of Control)이 적용됩니다.

 

[ 병렬 처리 프레임워크의 종류와 특징 ]

Hadoop

- HDFS(Hadoop Distributed File System)를 활용해 데이터를 주고 받는다.

- 데이터가 여러 노드에 분산되어 저장되기 때문에 손실의 우려가 없다는 장점이 있다.

하지만 File I/O를 기반으로 작동하기 때문에 처리 속도가 느리다.

 

Spark

- In-Memory 상 에서 데이터를 주고받고 연산을 수행한다.

- 메모리를 사용해 데이터를 처리하기 때문에 Hadoop보다 속도가 약 100배 정도 빠르다.

하지만 메모리상에서 처리하기 때문에 장애가 발생한 경우 응용 프로그램을 처음부터 다시 시작해야 한다.

 

[ 동기와 비동기 ]

동기(Synchronous) 방식

- 요청을 보내고 실행이 끝나면 다음 동작을 처리하는 방식

- 순서에 맞추어 진행되기 때문에 제어하기 쉽다.

- 여러가지 요청을 동시에 처리할 수 없어 효율이 떨어진다.

- 동기 방식의 예시로는 콜센터 종업원이 일을 처리하는 방식이 될 수 있다. 콜센터의 직원은 한 손님의 전화 응대가 끝난 후에 다음 손님의 응대를 진행할 수 있다.

 

비동기(Asynchronous) 방식

- 요청을 보내고 해당 동작의 처리 여부와 상관없이 다음 요청이 동작하는 방식

- 작업이 완료되는 시간을 기다릴 필요가 없기 때문에 자원을 효율적으로 사용할 수 있다.

- 작업이 완료된 결과를 제어하기 어렵다.

- 비동기 방식의 예제로는 이메일이 있다. 우리는 한 사람에게 이메일을 보냈을 때 답변을 받지 않고도 이메일을 다시 보낼 수 있다. 

 

[ SQL Injection ]

- 공격자가 악의적인 의도를 갖는 구문을 삽입하여 공격자가 원하는 SQL을 실행하도록 하는 웹해킹기법입니다.

- 공격을 방지하기 위해 특수문자 및 SQL 예약어들을 필터링하거나 SQL 오류 메세지를 노출하지 않는 등의 방법을 취해야 합니다.

 

출처: https://mangkyu.tistory.com/88?category=761303 [MangKyu's Diary]

 

728x90
반응형

'[기술면접]' 카테고리의 다른 글

이력  (0) 2022.01.10
PoC(Proof of Concepts : 개념 증명)  (0) 2021.11.23
[기술면접] 프로그래밍 공통(1)  (0) 2021.05.06
Comments