전체 글
-
디자인패턴 - 소개Web 개발/디자인 패턴 2022. 12. 19. 15:33
디자인패턴 분류 기분 복잡성 상세도 설계중인 시스템에 적용 범위 의도 목적 가장 기본적인 하위 수준 패턴을 이디엄이라고 한다. 일반적으로 이디엄은 하나의 프로그래밍 언어에만 해당한다. 가장 보편적인 상위 수준 패턴은 아키텍쳐 패턴이다. 개발자들은 거의 모든 언어로 이러한 패턴을 구현할 수 있다. 아키텍쳐 패턴은 애플리케이션 전체구조(아키텍처)를 설계하는데 사용할 수 있다. 디자인 패턴의 주요 세가지 그룹 생성 패턴 : 기존 코드를 재활요하고 유연선을 증가시키는 객체 생성 매커니즘을 제공한다. 구조 패턴 : 구조를 유연하고 효율적으로 유지하면서 객체와 클래스를 더 큰 구조로 조합하는 방법을 설명한다. 행동 패턴: 객체 간의 효과적인 의사소통과 책임 할당을 처리한다. 디자인 패턴은 객체지향 설계의 일반적인 ..
-
객체 간의 관계(의존성,연관관계....)Web 개발/디자인 패턴 2022. 12. 19. 14:55
객체 간의 관계 상속 및 구현 외에도 객체들 사이에는 다른 유형의 관계들이 있다. *STL(Stabdard Template Library,표준 템플릿 라이브러리): 개체들을 보관하기 위한 다양한 자료구조와 이들 자료구조에 보관된 개체들을 반복적으로 순회할 수 있게 해 주는 반복자, 사용자에서 정의한 코드를 입력 인자로 전달받아 처리할 수 있게 추상화한 함수 개체, 다양한 문제 해결 방법이 구현된 함수들로 구성된 알고리즘 등으로 구성되어 있다. *컴포넌트: 소프트웨어에서도 단자의 규격 같은 장치가 필요하다. 객체지향 언어에서는 이러한 장치를 인터페이스(Interface)로 제공해준다. 인터페이스는 사용자에게 해당 소프트웨어를 사용하기 위한 메소드(=장치)를 공개하고, 규격화된 메소드 환경에서 소프트웨어를 ..
-
NodeJs 호출 스택,이벤트 루프개발언어/Node.js 2022. 12. 13. 10:03
1. 호출 스택 ⭐️호출 스택은 Execution Context(실행 컨텍스트)와 밀접한 연관이 있다. function first(){ second(); cosole.log('첫 번째'); } function second(){ third(); cosole.log('두 번째'); } function third(){ cosole.log('세 번째'); } first(); 함수를 선언했다는 것은 해당 함수를 메모리에 올렸다는 것이다. 메모리는 임시 저장장치이다. 컴퓨터가 잠깐 기억하고 있다가 새로 고침하면 저장이 사라진다. 마지막에 first();로 first()함수를 호출하고, 메모리속에 해당 함수가 선언이 되었는지 찾아본다. 호출하는 것은 실제로 실행하는 것이다. first()함수는 첫 줄에서 바로 sec..
-
NodeJs 블로킹과 논블로킹 I/O개발언어/Node.js 2022. 12. 12. 18:29
논블로킹이라서 순서대로 실행되지 않는다고 해도 그 순서가 램덤이 되는 것이 아니라 나름 대로의 규칙을 가진다. (프로그램 실행 순서에 랜덤은 존재하지 않는다.)-> 순서대로 실행되지 않는 것의 규칙을 Event Loop라고 한다. 논 블로킹 오래 걸리는 함수를 백그라운드로 보내서 다음 코드가 먼저 실행되고, 나중에 오래걸리는 함수를 실행 논 블로킹 방식하에서 일부 코드는 백그라운드에서 병렬로 실행된다. 일부 코드: I/O작업(파일 시스템 접근, 네트워크 요청),압축, 암호화 등 나머지 코드는 블로킹 방식으로 실행된다. I/O작업이 많으 때 노드 활용성이 극대화 된다. 블로킹 블로킹(동기)코드가 순서대로 실행되는 것은 -> Execution Context(실행 컨텍스트) 실행 컨텍스트 안에 this와 sc..
-
NodeJs 서버로서의 노드개발언어/Node.js 2022. 12. 12. 18:14
대부분의 서비스가 서버 - 클라이언트 이중 구조로 되어 있다. 서버 네트워크를 통해 클라이언트에 정보 혹은 서비스를 제공하는 컴퓨터 또는 프로그램 클라이언트 서버에 요청을 보내는 주체 (브라우저,데스크탑 프로그램,모바일 앱, 다른 서버에 요청을 보내는 서버) ⭐️노드는 서버가 아니지만, 서버를 구성할 수 있게 하는 모듈이다. 노드 서버의 장단점 장점 단점 멀티 스레드 방식에 비애 컴퓨터 자원을 적게 사용함. 싱글 스레드서 CPU 코어를 하나만 사용함. I/O 작업이 많은 서버로 적합 CPU (주방장,점원)작업이 많은 서버로는 부적합 ex)이미지 리사이징,암호화,알고리즘 문제 풀이 멀티 스레드 방식보다 쉬움 하나뿐인 스레드가 멈추지 않도록 관리해야 한다. 웹 서버가 내장되어있다. 서버 규모가 커졌을 때 서..
-
NodeJS 스레드개발언어/Node.js 2022. 12. 12. 17:00
점원:스레드 ,주문: 요청, 서빙:응답 싱글 스레드 대신 논 블로킹 모뎅릉 채택하여 일부 코드(I/O)를 백그라운드(다른 프로세스)에서 실행 가능 요청을 먼저 박고, 완료될 때 응답함 I/O 관련 코드가 아닌 경우 싱글 스레드,블로킹 모델과 같아진다. 멀티 스레드 모델과의 비교 싱글 스레드 모델은 에러 처리를 하지 못하는 경우 멈춤 프로그래밍 난이도도 쉽고,CPU,메모리 자원 적게 사용 멀티 스레드 모델은 에러 발생 시 새로운 스레드를 생성하여 극복 단, 새로운 스레드 생성이나 놀고있는 스레드 처리에 비용 발생 프로그래밍 난이도 어려움 스레드 수만큼 자원을 많이 사용함 점원(스레드)이 하나인 체인점(노드 프로세스)을 여러개 -> 멀티 프로세싱 ex) 식당에 손님이 많아져서 요청이 많아지면 근처에 동일한 ..
-
OOP의 기초Web 개발/디자인 패턴 2022. 11. 18. 09:40
OOP의 기초 부모클래스와 자식클래스 상속 자식 클래스들은 부모로부터 상태와 행동들을 상속 받고, 그 중에서 부모와 무언가 다른 것들만을 정의한다. 연관된 비지니스 요구사항이 있다면, 여기서 더 나아가 Organisms(모든 생명체)라는 더욱 일반적이 클래스를 추출할 수도 있다. 이 클래스는 Animals(동물들) 및 Plants(식물들)에 대한 부모 클래스가 될 것이다. 이러클래스들의 피라미드가 바로 계층구조이다. 이러한 계층구조에서 Cat(고양이) 클래스는 Animal(동물)과 Organism(생명체) 클래스 양쪽의 모든 내용을 상속받는다. 자식클래스들은 무보 클래스들에서 상속한 메서드들의 행동을 오버라이드(Override)할 두 있다. 또 자식 클래스들은 디폴트 행동들을 완전히 대체하거나 몇 가지 ..
-
TypeScripte- typeScript를 javaScript로 compile개발언어/TypeScript 2022. 11. 5. 15:55
javaScript의 input값에 액세스할 때 알아 두어야 하는 것은 해당 value는 input type이 문자이든 숫자이든 상관 없이 항상 문자열(string)이라는 것이다. const button = document.querySelector("button"); const input1 = document.getElementById("num1"); const input2 = document.getElementById("num2"); function add(num1, num2) { return num1 + num2; } button.addEventListener("click", function() { console.log(add(input1.value, input2.value)); }); 위 함수에서 ..