전체 글97 컨텍스트 스위칭(Context Switching) 컨텍스트 스위칭 컨텍스트 스위칭이란? 출처 : https://www.crocus.co.kr/1364 위 그림은 컨텍스트 스위칭을 프로세스 P0와 프로세스 P1을 예시로 설명해줍니다. P0를 실행(execute) 하던 중 인터럽트(interrupt)나 시스템 콜(system call)이 일어나게 됩니다. 운영체제에서 P0에 대한 상태를 PCB0에 저장합니다. P1를 이용하기 위해 PCB1에서 P1에 대한 상태를 불러옵니다. 그동안 P0는 대기(idle) 상태입니다. 마찬가지로 P1을 실행하던 중 인터럽트나 시스템 콜이 일어나면 1~4 단계를 반복 해줍니다. 이렇게 프로세스나 스레드가 실행과 대기를 반복하는 것이 컨텍스트 스위칭 입니다. 이를 통해 멀티 프로세싱이나 멀티 스레딩 기능을 동작하게 합니다. 컨텍.. CS 지식/운영체제 2023. 2. 13. MVC vs MVVM MVC vs MVVM 아키텍처 패턴이란? 소프트웨어 시스템의 기본 구조와 그러한 구조 및 시스템을 만드는 분야 각 구조는 소프트웨어 요소, 이들 간의 관계, 요소와 관계의 속성으로 구성 시스템 및 개발 프롲게트의 청사진 역할을 하며 설계 팀이 실행하는 데 필요한 작업을 제시함 MVC 패턴 MVC 패턴은 Model + View + Controller를 합친 용어입니다. Model : 어플리케이션에서 사용되는 데이터와 그 데이터를 처리하는 부분입니다. View : 사용자에게 보여지는 UI 부분입니다. Controller : 사용자의 입력을 받고 처리하는 부분입니다. 순서 사용자들의 입력이 Controller에 들어오게 됩니다. Controller는 사용자의 입력을 확인하고, Model을 업데이트 합니다. C.. CS 지식/개발 상식 2023. 2. 9. 함수형 프로그래밍(Functional Programming) 함수형 프로그래밍 함수형 프로그래밍은 자료 처리를 수학적 함수의 계산으로 취급하고 상태와 가변 데이터를 멀리하는 프로그래밍 패러다임의 하나입니다. 함수형 프로그래밍 언어의 종류에는 대표적으로 Scala(스칼라), Haskell(하스켈), Clojure(클로저) 등이 있습니다. Javascript, Java, Python, Kotlin 등에서도 함수형 프로그래밍 문법을 사용할 수 있습니다. 선언형 프로그래밍 패러다임을 따르고 있습니다. 선언형 프로그래밍은 WHAT(무엇을 할 지) 을 중요시 하고, 명령형 프로그래밍은 HOW(어떻게 할 지) 를 중요시 합니다. 함수형 프로그래밍 장단점 장점 순수 함수를 이용하기 때문에 함수에서 함수로 전달되는 상태만 있을 뿐, 전역 상태 자체가 존재하지 않습니다. -> 외부.. CS 지식/개발 상식 2023. 2. 6. ChatGPT 사용 예제 아래 링크의 방법으로 ChatGPT를 적용해보았습니다. ChatGPT 사용 방법 The Power of Investing Strategies: How to Build a Portfolio and Diversify Your Investments to Maximize Returns Investing can be a great way to grow your wealth and secure your financial future. But it can also be a daunting task, especially if you’re new to the world of investing. That’s why it’s important to have a solid investing strategy in place. .. 기타/ChatGPT 2023. 2. 5. ChatGPT 이용하기 요즘 Youtube를 보는중에 ChatGPT에 관련된 영상들이 자주 나오는 것을 보고 ChatGPT에 대해 궁금해졌습니다. 그렇기에 Youtube 영상 몇개를 보고 간단한 샘플들을 적용해보았습니다. 아래의 송준용님의 코드와 블로그를 토대로 샘플을 만들어 보았습니다. 송준용 - [ChatGPT 활용: 구글독스에 3분만에 붙여서 블로그 쓰기](https://www.youtube.com/watch?v=nVUnVcONwUE) 송준용 마케팅 연구소 OpenAI 회원가입 첫 번째 단계는 OpenAI에서 회원가입을 하는 것입니다. API Key 발급 우측 상단의 View API Keys를 선택합니다. Create new Secret Key를 눌러 새로운 비밀키를 생성합니다. OpenAI의 Playground에서 원하.. 기타/ChatGPT 2023. 2. 5. Git 과 Github GIT 과 GITHUB "GIT 과 GITHUB는 커피와 카페 같은 관계이다" -노마드 코더- GIT 이란? 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템이다. 소프트웨어 개발에서 소스 코드 관리에 주로 사용되지만 어떠한 집합의 파일의 변경사항을 지속적으로 추적하기 위해 사용될 수 있다. GIT의 특징 Git 홈페이지 에서 Git의 특징을 다음과 같이 6가지로 정의한다. Branching and Merging 사용자는 메인 코드에서 가지를 생성하여 독립성을 유지한 채로 개발을 진행할 수 있다. 이는 다양한 코드를 개발 또는 테스트 해 볼 수 있는 환경을 제공해준다. Small and Fast Git은 대부분 로컬에서 진행되는 만큼 매.. CS 지식/개발 상식 2023. 2. 2. 애자일 (Agile) 애자일 (Agile) 애자일이란? 신속한 반복 작업을 통해 실제 작동 가능한 소프트웨어를 개발하여 지속적으로 제공하기 위한 소프트웨어 개발 방식 고객의 요구에 민첩하게 대응하고, 그때 그때 주어지는 문제를 해결해 나가는 방법론 종류: 스크럼(Scrum), 익스트림 프로그래밍(XP), 칸반(Kanban) 애자일 방법론은 소프트웨어 개발에 필요한 작업을 알려주는 규정이 아니라, 협업을 바라보는 관점이고, 우리가 무엇을 어떻게 만들지에 관해 선택하게 하는 가치 체계이다. 폭포수 vs 애자일 폭포수 모델 선형 순차 모델 각 단계는 병행 수행되지 않고 순차 수행됨 폭포수 모델 장점 이해하기 쉬움( 단순한 선형 모델) 체계적 문서화가능 ( 단계별로 정형화된 접근 방법) 프로젝트 진행 상황 명확히 파악 가능 폭포수 .. CS 지식/개발 상식 2023. 1. 26. RESTful API란? RESTful이란? -> REST 원리를 따르는 시스템을 RESTful하다고 말한다. RESTful의 목적 -> 이해하기 쉽고, 사용하기 쉬운 REST API를 만들기 위해 사용된다. REST란? -> Representational State Transfer의 약자로, 자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 것이다. -> REST는 일반적으로 HTTP 프로토콜을 사용하기 때문에 웹의 장점을 활용할 수 있는 아키텍처 스타일이다. -> 네트워크 상에서 client와 server간의 통신 방식 중 하나이다. -> HTTP URI를 통해 자원을 명시하고, HTTP Method를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것. REST의 장점 1. HTTP 프로토콜의 인프라를 그.. CS 지식/개발 상식 2023. 1. 26. OOP(객체 지향 프로그래밍) OOP OOP란? OOP란 Object Oriented Programming의 약자로, 객체 지향 프로그래밍이다. 객체 지향 프로그래밍은 우리가 실생활에서 사용하는 모든 것을 객체라고 하며, 객체 지향 프로그래밍은 프로그램 구현에 필요한 객체를 파악하고 각각의 객체들의 역할이 무엇인지를 정의하여 객체들 간의 상호작용을 통해 프로그램을 만드는 것을 의미한다. 객체는 클래스라는 틀에서 생겨난 실체(instance)이다. 따라서 객체 지향 프로그램은 객체와 객체 간의 연결로 되어 있으며 각각의 객체안에 자료구조와 알고리즘이 들어있다. 절차 지향 vs 객체 지향 절차 지향 vs 객체 지향 출처 : https://velog.io/@1205kjw/6.1.2-%EC%A0%88%EC%B0%A8%EC%A7%80%ED%9.. CS 지식/개발 상식 2023. 1. 26. BJ_G4_14502_연구소 - Java [문제링크] https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net [문제] 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크기가 N×M인 직사각형으로 나타낼 수 있으며, 직사각형은 1×1 크기의 정사각형으로 나누어져 있다. 연구소는 빈 칸, 벽으로 이루어져 있으며, 벽은 칸 하나를 가득 차지한다. 일부 칸은 바이러스가 존재하며, 이.. 알고리즘/DFS_BFS 2022. 10. 7. MST - Kruskal MST Kruskal MST MST란, Minimum Spanning Tree의 약자로, 최소 신장 트리라는 뜻을 가진 알고리즘을 의미한다. 해당 그래프에서 모든 point들이 edge들로 연결된다고 가정했을 때, 가중치가 가장 짧은 방법을 구하는 알고리즘이다. ex) Kruskal(크루스칼) 알고리즘, Prim(프림) 알고리즘 Kruskal(크루스칼) Kruskal이란, MST의 종류 중 하나로, 모든 정점을 최소 비용으로 연결하는 방법을 구하는 알고리즘이다. 그래프의 간선들의 가중치를 오름차순으로 정렬한다. 정렬된 간선 리스트에서 사이클을 형성하지 않는 간선을 선택한다. 해당 간선을 MST의 집합에 추가한다.ex) 백준의 1197번, 1922번, 1647번... 자바로 구현한 Kruskal 알고리즘 .. CS 지식/자료구조_알고리즘 2022. 7. 4. Tree Tree Tree(트리) 데이터들을 나무를 뒤집은 형태로 저장한다. 부모와 자식 노드들로 이루어진다. 차수 : 어떠한 노드가 가지고 있는 자식 노드들의 개수 이진 트리 : 차수가 2인 트리 ex) 인덱스 트리 : 자식 노드들의 구간 합이 부모 노드에 저장된 값 정렬 상태를 유지할 수 있다. Heap 구조의 트리이다. (저장된 값 중 최소/최대 값을 리턴하고, 나머지를 정렬하여 저장한다.) 시간복잡도 : 트리의 높이만큼 걸린다. O(Log(N)) KEY WORD : 이진 트리, 노드, 부모 노드, 자식 노드, O(Log(N)) CS 지식/자료구조_알고리즘 2022. 6. 24. 이전 1 2 3 4 5 6 ··· 9 다음 💲 추천 글