반응형

자료구조(Data Structure)란?

자료구조는 컴퓨터 과학에서 데이터를 효율적으로 저장, 관리하여 메모리를 효율적으로 사용하기 위해 
자료를 조직적, 체계적으로 구분하여 표현한 것을 의미합니다.

 

Http 통신

클라이언트와 서버 간의 웹페이지 같은 자원을 주고받는 통신규약입니다.

 

동기화와 비동기화 (synchronization and asynchronous)

동기화 : 하나의 자원에 대해 동시에 접근하는 것을 제한하는 방식
비동기화 : 하나의 자원에 대해 동시에 접근이 가능한 방식

 

스레드와 프로세스 (Thread ans Process) 

  • 프로세스
    • 운영 체제로부터 독립된 메모리 영역(Code, Data, Stack, Heap)을 할당받아 실행된 프로그램을 의미
    • 하나의 프로세스에서 다른 프로세스의 자원에는 접근할 수 없다.
  • 스레드
    • 프로세스 내에서 동작되는 실행의 단위
    • 스레드는 프로세스 내에서 Stack영역만 따로 할당받고 Code, Data, Heap 영역은 공유
    • 기본적으로 하나의 프로세스가 실행되는 하나의 메인 스레드가 생성된다.

멀티 프로세스 : 하나의 프로그램이 여러 개의 프로세스로 실행되는 것을 의미합니다.

멀티 스레드 : 하나의 프로세스 내에서 여러 개의 스레드로 실행되는 것을 의미합니다. 하지만 스레드 간의 자원 공유는 전역 변수를 이용하기 때문에 동시성 이슈가 발생할 수 있어 동기화를 해주어야 합니다.

 

RESTful API 의미 

rest란 HTTP URL로 자원을 명시하고 HTTP Method를 통해 자원에 대한 CRUD operation을 적용하는 것입니다.
이러한 방식으로 만든 API를 restful API라고 합니다.

 

메시지 큐(Message Queue)    

메시지를 기반의 미들웨어로 메시지를 이용하여 여러 앱, 시스템, 서비스를 연결해주는 Solution입니다. 

 

동시성 이슈 (Concurrency Issue)   

동시성 문제란 두 개 이상의 세션이 공통된 자원에 대해 모두 읽고 쓰는 작업을 하려고 하는 문제를 의미합니다.

 

GC(Garbage Collection)

이미 할당된 메모리에서 더 이상 사용하지 않는 메모리를 해제하는 행동을 의미합니다.

 

테스트 코드(Test Code)  

프로그램을 제작했을 때 예기치 못한 버그나 오류들을 잡아내기 위한 코드입니다.
프로그램의 안정성을 높여주는 이점이 있습니다. 

 

리팩터링(Refactoring)  

코드의 기능은 그대로 하면서 코드의 내부 구조를 개선하는 작업을 의미합니다.
즉, 코드를 좀 더 간결하고 가독성 있으며 수정하기 편하게 만드는 것입니다.

 

힙(Heap)과 스택(Stack)

  • 힙 영역
    • 사용자에 의해 메모리가 동적으로 할당되고 해제된다.
    • 동적 할당을 통해 생성된 동적 변수를 관리하기 위한 영역
    • 느린 액세스
    • 메모리의 낮은 주소에서 높은 주소 방향으로 할당된다.
  • 스택 영역
    • 프로그램이 사용하는 임시 메모리 영역
    • 지역 변수, 매개 변수가 저장되는 영역
    • 함수 호출과 함께 메모리 할당 후 함소 종료 시 소멸
    • 메모리의 높은 주소에서 낮은 주소 방향으로 할당

 

 

 

반응형

+ Recent posts