전체 글 36

[DataScience Computing] Linear Data Structure 1 - Stack

1️⃣ 선형(Linear) 데이터 구조 자료를 구성하는 원소들을 하나씩 순차적으로 나열시킨 형태이다. 자료들 간의 앞, 뒤 관계가 1:1의 관계로 되어있으며 대표적으로 Array, List, Stack, Que 등이 있다. 오늘은 그 중 Stack에 대해 알아보고 간단한 Python 코드를 통해 이를 복습하도록 하자. Ⅰ. Stack LIFO(Last In, First Out)의 원칙을 자료구조이다. 이 원칙은 가장 마지막에 삽입된 요소가 가장 먼저 제거된다는 것을 의미한다. 스택은 일상 생활에서 책을 쌓아 올린 것과 비슷하게 작동한다. 새로운 책을 위에 올려놓고 가져갈 때에도 가장 위에 있는 책을 먼저 가져가는 것과 같은 방식이라고 보면 된다. Ⅰ- 2. Stack의 주요 작업 Push : Stack에..

카테고리 없음 2024.04.18

[CS / DB] ep21. left outer join, inner join 차이를 설명해 주세요

🤔 면접 질문 Q1. left outer join, inner join 차이를 설명해 주세요 A1. Join이란 두 개 이상의 테이블을 서로 연결하여 하나의 결과를 만들어 보여주는 것을 말합니다. inner join(또는 join)은 두 테이블에 모두 있는 내용만 join되는 방식입니다. left outer join(또는 left join)은 왼쪽 table의 모든 행에 대해서 join을 진행합니다. 💡 면접🐕🍯 tip Join중에 가장 자주 사용되는 inner join과 left outer join을 제대로 이해하고, 사용할 수 있는지 묻는 질문이다. Join은 실무에서도 자주 사용되기 때문에 면접 질문으로도 가끔 나온다. 따라서 둘의 차이점을 간결하게 설명하면 된다. 1️⃣ Inner Join(내부조..

카테고리 없음 2024.04.13

[SEO] ep01. What is SEO?

1. SEO란? : 'SEO'란 'Search Engine Optimizaion'의 약어로서 직역하면 '검색 엔진 최적화'이다. 우리가 궁금한게 생기면 보통 포털 사이트(구글, 네이버, 다음 등)를 통해 검색을 하는데 이때 여러 사이트들이 검색 결과로 쭉 뜨는 것을 봤을 것이다. 여기서 SEO란 포털 서치 엔진(Search Engine) 검색 결과에서 내가 만든 콘텐츠가 제일 상단에 나올 수 있게 최적화(Optimization)하는 프로세스이다. 2. SEO, 이젠 선택이 아닌 필수 : 인터넷이 발전하기 이전의 소비자 물건 구매 프로세스는 다음과 같았다. 1️⃣ TV 광고, 라디오, 신문 등에서 물건 접촉 ☞ 구매욕구 생성 2️⃣ 소비자가 매장으로 가서 매대의 상품과 접촉함 3️⃣ 구매 고민을 하다가 상..

사업/마케팅 2024.02.10

[CS / 운영체제(OS)] ep18. Multi process/thread 환경에서 동기화 문제를 어떻게 해결하나요?

🤔 면접 질문 Q1. Multi process/thread 환경에서 동기화 문제를 어떻게 해결하나요? A1. 동기화문제를 해결하기 위해 mutex, semaphore 기법 등을 사용할 수 있습니다. Mutex란 1개의 스레드만이 공유 자원에 접근할 수 있도록 하여, 경쟁 상황(race condition)를 방지하는 기법입니다. 공유 자원을 점유하는 thread가 lock을 걸면, 다른 thread는 unlock 상태가 될 때까지 해당 자원에 접근할 수 없습니다. Semaphore란 S개의 thread만이 공유 자원에 접근할 수 있도록 제어하는 동기화 기법입니다. Semaphore 기법에서는 정수형 변수 S(세마포) 값을 가용한 자원의 수로 초기화하고, 자원에 접근할 때는 S-- 연산을 수행하여 세마포 값..

취업/기술면접 2023.06.26

[CS / 운영체제(OS)] ep17. multi process환경에서 process들은 어떻게 데이터를 주고 받나요?

🤔 면접 질문 Q1. multi process환경에서 process들은 어떻게 데이터를 주고 받나요? A1. 원칙적으로 process는 독립적인 주소 공간을 갖기 때문에, 다른 process의 주소 공간을 참조할 수 없습니다. 하지만 경우에 따라 운영체제는 process 간의 자원 접근을 위한 매커니즘인 프로세스 간 통신(IPC, Inter Process Communication)를 제공합니다. 프로세스 간 통신(IPC) 방법으로는 파이프, 파일, 소켓, 공유메모리 등을 이용한 방법이 있습니다. 💡 면접🐕🍯 tip IPC는 면접에서도 굉장히 자주 나오는 질문이다. multi thread와 다르게 process끼리는 데이터 공유를 하지 않는다. 따라서 데이터를 주고 받기 위해서 IPC기법을 사용한다. IP..

취업/기술면접 2023.06.15

[CS / 운영체제(OS)] ep16. multi process와 multi thread를 비교설명해 주세요.

🤔 면접 질문 Q1. multi process와 multi thread를 비교설명해 주세요. A1. multi process와 multi thread의 차이점은 다음과 같습니다. multi thread는 multi process보다 적은 메모리 공간을 차지하고 Context Switching이 빠릅니다. multi process는 multi thread보다 많은 메모리공간과 CPU 시간을 차지합니다. multi thread는 동기화 문제와 하나의 thread 장애로 전체 thread가 종료될 위험이 있습니다. multi process는 하나의 process가 죽더라도 다른 process에 영향을 주지 않아 안정성이 높습니다. 💡 면접🐕🍯 tip 두 방법은 동시에 여러 작업을 수행한다는 측면에서 유사한 면..

취업/기술면접 2023.06.07

[CS / 운영체제(OS)] ep15. Multi thread에 대해서 설명해 주세요.

🤔 면접 질문 Q1. Multi thread에 대해서 설명해 주세요. A1. thread는 한 process 내에서 실행되는 동작(기능, function)의 단위입니다. 각 thread는 속해있는 process의 Stack 메모리를 제외한 나머지 memory 영역을 공유할 수 있습니다. Multi thread란 하나의 process가 동시에 여러개의 일을 수행할수 있도록 해주는 것입니다. 즉, 하나의 process에서(실행이 된 하나의 program에서) 여러 작업을 병렬로 처리하기 위해 multi thread를 사용합니다. multi thread에서는 한 process 내에 여러 개의 thread가 있고, 각 thread들은 Stack 메모리를 제외한 나머지 영역(Code, Data, Heap) 영역을..

취업/기술면접 2023.06.05

[CS / 운영체제(OS)] ep14. Multi process에 대해서 설명해 주세요.

🤔 면접 질문 Q1. Multi process에 대해서 설명해 주세요. A1. Multi process란 2개 이상의 process가 동시에 실행되는 것을 말합니다. 동시에라는 말은 동시성(concurrency)과 병렬성(parallelism) 두 가지를 의미합니다. 동시성은 CPU core가 1개일 때, 여러 process를 짧은 시간동안 번갈아 가면서 연산을 하게 되는 시분할 시스템(time sharing system)으로 실행되는 것입니다. 병렬성은 CPU core가 여러개일 때, 각각의 core가 각각의 process를 연산함으로써 process가 동시에 실행되는 것입니다. 💡 면접🐕🍯 tip 요새 우리가 쓰는 노트북은 CPU core가 여러개 있다. core가 여러개여서 실제로 여러 proces..

취업/기술면접 2023.06.02

[CS / 운영체제(OS)] ep13. process를 간단히 설명해주세요

🤔 면접 질문 Q1. process를 간단히 설명해 주세요. A1. 실행파일(program)이 memory에 적재되어 CPU를 할당받아 실행되는 것을 process라고 합니다. 💡 면접🐕🍯 tip 운영체제를 관통하는 핵심적인 단어 하나를 뽑는다면 그건 바로 process다. 운영체제가 작동하는 다양한 원리들이 바로 process를 위해 존재하는 것이다. 따라서 process의 정의를 잘 이해한다면 앞으로 나올 내용들도 자연스럽게 이해가 갈 것이다. process를 memory와 CPU관점으로 면접관에게 설명을 하면 된다. 1️⃣ Process 프로세스(process)란 실행중인 프로그램(program in execution)을 뜻한다. 즉, 실행파일 형태로 존재하던 program이 memory에 적재되어..

취업/기술면접 2023.06.01