전체 글124 동기 vs 비동기, 블로킹 vs 논블로킹 동기 & 비동기 처리해야 할 작업들을 어떠한 흐름으로 처리 할 것인가에 대한 관점 호출되는 함수의 작업 완료 여부를 신경쓰는지의 여부의 차이입니다. 동기(Synchronous) 요청과 그 결과가 동시에 일어난다는 뜻. 요청과 결과가 한 자리에서 동시에 일어납니다.(시간이 오래 걸리면 대기해야 합니다) A노드와 B노드 사이의 작업 처리 단위( transaction ) 을 동시에 맞추겠다는 뜻. 함수A가 함수B를 호출한 뒤, 함수B의 리턴 값을 계속 확인하면서 신경씁니다. 동기 방식의 예 출처 : https://dev-coco.tistory.com/46 A의 계좌에서 10,000원을 뺄 생각을 하고 있습니다. A의 계좌가 B의 계좌에 10,000원을 송금합니다. B의 계좌는 10,000원을 받았다는 걸 인지.. CS 지식/운영체제 2023. 2. 20. 프로세스(Process) vs 스레드(Thread) 프로세스 vs 스레드 프로세스란? 운영체제로부터 자원을 할당받는 작업의 단위입니다. 어플리케이션 하나가 프로세스입니다. 참조 : https://gmlwjd9405.github.io/2018/09/14/process-vs-thread.html 프로세스의 특징 프로세스는 독립된 메모리 영역을 할당받습니다. 다른 프로세스의 자원에 접근하려면 프로세스 간의 통신을 사용해야 합니다. ( ex) 파이프, 파일, 소켓 이용한 통신(IPC)) 스레드란? 할당 받은 자원을 이용하는 실행의 단위이고, 프로세스 내에 여러 개 생길 수 있습니다. 참조 : https://gmlwjd9405.github.io/2018/09/14/process-vs-thread.html 스레드의 특징 프로세스에서 Stack만 따로 할당받고, Co.. CS 지식/운영체제 2023. 2. 16. 메모리의 구조 메모리의 구조 프로그램 실행 순서 프로그램 실행 요청이 들어옵니다. ( 사용자 -> OS ) 프로그램의 정보를 읽어 메모리에 로드합니다. (OS -> 보조기억장치(HDD)) 프로그램 코드(Program Code)를 가져다 메모리를 관리하고 명령문을 실행합니다. (CPU -> 주기억장치(RAM)) 동적 메모리가 할당되면 Free Store 영역을 사용합니다. (Heap 사용) 스택 메모리가 할당되면 Free Store 영역을 사용합니다. (Stack 사용) 출처 : https://jinshine.github.io/2018/05/17/%EC%BB%B4%ED%93%A8%ED%84%B0%20%EA%B8%B0%EC%B4%88/%EB%A9%94%EB%AA%A8%EB%A6%AC%EA%B5%AC%EC%A1%B0/ 프로.. CS 지식/운영체제 2023. 2. 16. 컨텍스트 스위칭(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. 이전 1 2 3 4 5 6 7 8 ··· 11 다음 💲 추천 글