본문 바로가기

학습 내용 정리/기술 면접 준비

(30)
정렬 알고리즘 버블 정렬 : 1번째와 2번째 원소를 비교하여 정렬하고, 2번째와 3번째, ..., n-1번째와 n번째를 정렬한 뒤 다시 처음으로 돌아가 이번에는 n-2번째와 n-1번째까지 ... 비교한다. 선택 정렬 : 1번째부터 끝까지 훑어서 가장 작은 게 1번째, 2번째부터 끝까지 훑어서 가장 작은 게 2번째……해서 (n-1)번 반복한다. 삽입 정렬 : k번째 원소를 1부터 k-1까지와 비교해 적절한 위치에 끼워넣고 그 뒤의 자료를 한 칸씩 뒤로 밀어내는 방식
AWS S3, EC2 아마존 S3는 아마존 웹 서비스에서 제공하는 온라인 스토리지 웹 서비스이다. CI/CD 과정에서 프로젝트 압축 파일을 올리거나 사진 데이터를 저장할 때 사용하였습니다. 아마존 일래스틱 컴퓨트 클라우드(Amazon Elastic Compute Cloud, EC2)는 아마존 닷컴의 클라우드 컴퓨팅 플랫 AWS의 중앙부를 이루며, 사용자가 가상 컴퓨터를 임대 받아 그 위에 자신만의 컴퓨터 애플리케이션들을 실행할 수 있게 한다. EC2는 사용자가 AMI로 부팅하여 아마존이 "인스턴스"라 부르는 가상 머신을, 원하는 소프트웨어를 포함하여 구성할 수 있게 하는 웹 서비스를 제공함으로써 스케일링이 가능한 애플리케이션 배치(deployment)를 장려한다. 사용자는 필요하면 서버 인스턴스를 만들고 시작하고 종료할 수 ..
Array vs LinkedList 배열 (Array) [ 배열의 특징 ] 순서가 있습니다. (메모리 순서대로) 연속된 공간을 '미리' 정해서 사용해야 합니다. (확정된 메모리 공간을 할당받아 써야 하므로) N번째 데이터에 접근하기 위해 복잡한 과정 필요없이 그냥 덧셈과 곱셈 한번이면 가능합니다. (n번째 데이터 접근 : 시작 주소 + (n-1) * 해당 자료형 크기) 💡 배열의 시간복잡도 데이터 읽기, 수정 : O(1) 데이터 추가, 삭제 : O(N) 예외 : 배열에 빈 공간이 존재하는걸 허용하며 짜는 경우라면 마지막 데이터의 추가, 삭제는 O(1) 리스트 (LinkedList) 링크드 리스트는 일반적인 리스트로 불리며, 노드로 연결된 데이터를 저장하는 자료구조입니다. 링크드 리스트는 데이터의 순서를 유지할 수 없지만, 데이터를 추가하거..
테스트 코드 테스트 코드(Test code)는 소프트웨어의 기능과 동작을 테스트하는 데 사용되는 코드입니다. 저는 테스트 코드를 CI/CD 과정에서 사용하였고 테스트를 통과하면 배포가 될 수 있게 하였습니다. integeration 테스트를 주로 진행하였으며 다른 서버의 api 호출이 필요한 경우 mocking 서버를 만들어서 이용하면 되고 해당 부분을 진행 중에 있습니다.
DB 로직 최소화 DB 로직을 최소화하는 것은 성능을 향상시키고 유지 보수를 간소화하는 데 도움이 됩니다. 예를 들어, 이러한 방법으로 DB 로직을 최소화할 수 있습니다. EX. 1. 일관된 데이터 모델링: 데이터베이스 테이블과 엔테테를 일관성 있게 설계하고 중복 데이터를 줄이고 일관성을 유지하여 데이터 중복을 최소화화고 무결성을 유지한다. 2. 비즈니스 로직 최적화: 데이터베이스에서 비즈니스 로직을 수행하기보다는 비즈니스 로직을 애플리케이션 레벨에서 처리한다. 데이터베이스는 데이터 저장과 관리에 중점을 두는 것이 좋다. 3. 캐싱: 반복적으로 동일한 데이터를 검색해야 하는 경우, 검색 결과를 캐시하여 데이터베이스 요청을 최소화할 수 있다. 4. 배치 작업: 대량의 데이터를 처리해야 할 때는 배치 작업을 사용하여, 데이터..
쿼리 최적화 쿼리 최적화는 데이터베이스 시스템에서 데이터를 효율적으로 검색하고 처리하기 위해 SQL 쿼리의 실행 계획을 개선하는 과정을 의미하며, 주로 데이터베이스 성능을 향상시키고 응답 시간을 줄이는 데 중요한 역할을 합니다. 쿼리 최적화 방법은 주로 1. 인덱스 사용: 데이터를 베이스에서 필요한 정보를 찾기 위해 인덱스를 활용한다. 2. 통계 정보 활용: 데이터베이스는 통계 정보를 기반으로 한 데이터 액세스 및 처리 방법을 최적화한다. 3. 시스템 모니터링: 데이터베이스 시스템을 모니터링하여 성능 이슈를 식별하고 조치하여 스템의 부하나 병목 현상을 줄인다. 4. 캐싱: 이전에 실행한 쿼리 결과를 캐시에 저장하여 동일한 쿼리가 다시 실행될 때 데이터베이스에 접근하지 않고 캐시에서 결과를 반환한다. 5. 파티션 및 ..
멀티 프로세스와 멀티 쓰레드 Q. 멀티프로세스와 멀티쓰레드의 특징에 대해 설명해주세요. A. 멀티 프로세스란 두개 이상 다수의 프로세서(CPU)가 협력적으로 하나 이상의 작업(Task)을 동시에 처리하는 것이다. 멀티쓰레드란 하나의 프로세스에 여러 스레드로 자원을 공유하며 작업을 나누어 수행하는 것이다.
프로세스와 쓰레드 Q. 프로세스와 쓰레드에 대해서 설명하고 그 차이에 대해서 설명해주세요. A. 프로세스는 컴퓨터에서 실행되는 독립적인 프로그램의 인스턴스입니다. 각 프로세스는 자체 메모리 공간과 시스템 자원(CPU 시간, 파일 및 입출력 장치)을 할당받고, 프로세스는 서로 완전히 독립되어 있어 하나의 프로세스가 오류를 일으켜도 다른 프로세는 오류를 받지 않습니다. 쓰레드는 어떠한 프로그램 내에서, 특히 로세스 내에서 실행되는 독립적인 실행 흐름의 단위입니다. 같은 프로세스 내에서 다른 쓰레드와 공유 메모리 공간과 자원을 사용하며, 이로 인해 쓰레드 간 데이터 공유와 통신이 간단하게 이루어집니다. 하지만 이러한 공유로 인해 쓰레드 간의 동기화 충돌 문제가 발생할 수 있습니다. 프로세스는 서로 완전히 독립되어 있어 하나의 ..