반응형

클로저란 ?

클로저( Closure )는 Javascript에서 자체 비공개 변수에 접근할 수 있는 함수로, 외부 함수의 실행이 종료된 후에도 외부( Closure ) 함수의 범위에 있는 변수에 접근할 수 있습니다.

즉, 주변 컨텍스트에서 변수를 폐쇄하여 상태를 유지합니다.

 

클로저의 핵심 내용

1. 외부 함수 ( Enclosing Function ): 클로저는 일반적으로 외부 함수라고 알려진 다른 함수 내에서 생성됩니다.

이 외부 함수는 변수를 정의하고 클로저 함수를 포함할 수 있습니다.

function outer () {
    let outerVar = 10;

    function closure () {
        console.log(outerVar);
    }

    return closure;
}

const myClosure = outer();

myClosure(); // 10

 

2. Private Variables: 클로저는 변수를 캡슐화하고 보호하여 클로저 함수에 비공개로 만들 수 있습니다. 

위 예제에서 outerVar는 클로저 함수에 비공개 입니다.

 

3. 외부 함수 스코프에 대한 액세스: 클로저 함수는 외부 함수의 실행이 완료된 후에도 포함하는 (외부) 함수의 변수 및 매개변수에 액세스할 수 있습니다. 이는 Javascript 엔진이 스코프 체인을 그대로 유지하기 때문에 가능합니다.

 

4. 반환 함수: 종종 외부 함수에서 클로저가 반환되어 외부 함수에서 호출할 수 있습니다.

이를 통해 "함수 팩토리"의 개념과 지속적인 상태의 함수를 생성할 수 있습니다.

const myClosure = outer();

myClosure(); // 10

 

클로저 사용 사례

1. 데이터 캡슐화 및 개인 정보 보호: 클로저는 일반적으로 개인 변수 및 메서드를 사용하여 개체를 만드는 데 사용됩니다.

이는 Javascript에서 데이터 숨기기 및 추상화를 구현하는 데 도움이 됩니다.

function createPerson (name) {
    let privateName = name;

    return {
        getName: function () {
            return privateName;
        },
        setName: function (newName) {
            privateName = newName;
        }
    };
}

const person = createPerson("Shiro");

console.log(person.getName()); // Shiro

 

2. Callback: 클로저는 콜백 함수의 기본이므로 나중에 실행해도 원래 컨텍스트에 계속 액세스할 수 있습니다.

function something (callback) {
    setTimeout(function () {
        console.log("확인");
        callback();
    }, 1000);
}

something(function () {
    console.log("Callback ~");
})

/*
확인
Callback ~
*/

 

3. Function Factory: 클로저는 지속적인 구성이나 동작을 갖춘 특수 함수를 만들 수 있습니다.

function createMultiple (factor) {
    return function (x) {
        return x * factor;
    };
}

const double = createMultiple(2);

console.log(double(5)); // 10

 

요약을 하자면, 클로저는 Javascript의 강력하고 다양한 기능입니다.

이는 개인 변수를 생성하고, 상태를 유지하고, 기능을 캡슐화하는 방법을 제공합니다.

효과적인 Javascript 개발을 위해서는 클로저 이해가 중요합니다. 특히 데이터 개인 정보 보호, 콜백 함수 및 동적 함수 생성과 관련된 시나리오에서는 더욱 그렇습니다.

 

반응형

'IT > IT ★★★' 카테고리의 다른 글

[ JS ] Local Storage, Session Storage, Cookies에 대하여  (1) 2023.09.15
[ JS ] this란 ?  (0) 2023.09.14
[ JS ] 호이스팅이란 ?  (0) 2023.09.14
[ JS ] 재귀함수  (0) 2023.02.27
[ Web ] 브라우저 렌더링 ( Browser Rendering )  (0) 2023.01.30
반응형

호이스팅

호이스팅은 프론트 엔드 웹 개발에 널리 사용되는 프로그래밍 언어인 Javascript의 개념으로, 코드가 실행되기 전 컴파일 단계에서 변수 및 함수 선언을 포함 범위의 맨 위로 이동하는 동작을 나타냅니다.

이를 올바르게 이해하지 못하면 때로 예상하지 못한 동작이 발생할 수 있습니다.

 

호이스팅 핵심 내용

1. 변수 선언: 키워드를 사용하여 변수를 선언하면 var선언은 전역 범위의 맨 위로 끌어올려집니다. 그러나 변수의 초기화는 원래 위치에 유지됩니다.

console.log(x); // undefined

var x = 5;

위에서는 변수 x가 호이스팅 되었으므로 console.log(x)에 오류가 발생하지 않지만 'undefined'가 할당됩니다. ( var x = 5; 호이스팅이 되지 않았기 때문에 )

 

2. 함수 선언: 함수 선언도 호이스팅이 되며 본문을 포함한 전체 함수가 포함 범위의 맨 위로 이동됩니다.

즉, 코드에서 함수가 선언되기 전에 함수를 호출할 수 있습니다.

hello(); // "Hello, World!"

function hello() {
    console.log("Hello, World!");
}

 

3. let과 const를 포함한 가변 호이스팅: var와 다르게 let과 const로 선언된 변수는 호이스트로 표시되지만 정의되지 않은 변수로 초기화되지는 않습니다. 대신 코드에 실제로 선언되기 전까지는 TDZ( Temporary Dead Zone )에 있습니다. 이는 선언 전에 변수 값에 접근할 수  없음을 의미합니다.

console.log(x); // ReferenceError: ...

let x = 5;

 

4. 함수식: 함수를 변수에 할당하는 함수식은 함수 선언과 같은 방식으로 호스팅되지 않으며, 함수 할당이 아닌 변수 선언만 호스팅됩니다.

hello(); // TypeError: ...

var hello = function() {
    console.log("Hello, World!");
}

 

요약을 하자면, Javascript에서 호이스팅은 컴파일 단계에서 변수와 함수의 선언을 포함 범위의 가장 위로 이동시키는 동작입니다.

프론트 엔드 웹 개발에서 호이스팅이 예기치 않은 동작을 방지하고 보다 예측 가능하고 유지 가능한 코드를 작성하는 방버을 이해하는 것이 매우 중요합니다.

반응형

'IT > IT ★★★' 카테고리의 다른 글

[ JS ] this란 ?  (0) 2023.09.14
[ JS ] Closure란 ?  (0) 2023.09.14
[ JS ] 재귀함수  (0) 2023.02.27
[ Web ] 브라우저 렌더링 ( Browser Rendering )  (0) 2023.01.30
[ Notion ] Notion API 만들기  (1) 2023.01.24
반응형

재귀함수

재귀함수는 어떤 함수 내부에서 다시 자기 자신을 부르는 함수를 의미합니다. 재귀함수는 종료조건이 있어야 하며, 종료조건을 설정해주지 않으면 무한 반복을 하게 됩니다. 재귀함수로 작성되는 코드는 반복문으로도 작성할 수 있습니다.

 

  • 재귀: 문제를 해결할 때 동일한 구조의 더 작은 문제를 해결함으로써 주어진 문제를 해결하는 방법
  • 재귀함수: 스스로 호출하는 함수
  • 재귀호출: 재귀함수는 실행 과정 중에 자신을 호출
  • 재귀코드: 간결하고 이해하기 쉬움

 

재귀함수의 생성과 사용방법

function Func() {
    ...
    Func();
    ...
}

 

function Func(n) {
    if (n <= 10) return 10;
    
    return n + Func(n - 1);
}

console.log(Func(100)); // 5005

/* 100 + 99 + 98 + 97 + 96 ... + 10 */

위에서 사용된 재귀함수의 경우 100부터 10까지의 더한 값을 의미합니다.

위 Func() 함수는 하나의 매개변수를 받고, 만약에 그 매개변수가 10과 같거나 10보다 작아지면 재귀함수를 종료합니다.

 

let number = 0;
for(let i = 10; i <= 100; i++) {
  number += i
}
console.log(number); // 5005

/* 10 + 11 + 12 + 13 + 14 + 15 + ... + 100 */

위 for 반복문과 같은 값을 얻을 수 있습니다.

 

재귀함수는 코드를 조금 더 간결하게 구현할 수도 있으며, 종료를 알리는 코드가 없으면 무한 반복을 하기 때문에 꼭 종료 코드를 작성해 주어야합니다.

 

재귀함수를 사용하는 때

1. 주어진 문제를 비슷한 구조의 더 작은 문제로 나눌 수 있는 경우

2. 중첩된 반복문이 많거나 반복문의 중첩 횟수를 예측하기 어려운 경우 ( 더 읽기 쉽게 만들때 [ 가독성 ] )

 

위처럼 좋아보이는 재귀함수를 자주 사용하지 않는 이유

  • 성능의 문제: 호출될 때마다 메모리에 스택이 쌓이는데, 한계치 이상으로 호출이 되어 스택이 넘치게 된다면, 메모리 부족으로 에러가 발생합니다.
    :: 메모리 부족으로 에러가 발생하는 단점을 보완하기 위해 꼬리 재귀라는 최적화 방법이 있습니다.
  • 반복문에 비해 느립니다.

정리

재귀 함수는 반복문과 동일한 계산 결과를 얻을 수 있으며, 코드를 조금 더 간결하게 구현하게 도와줍니다. 하지만 반복문보다 느리고, 호출 횟수가 많아지면 스택오버플로우가 발생할 수 있기 때문에 상황에 따라 적절하게 사용을 해야합니다.

 

반응형

'IT > IT ★★★' 카테고리의 다른 글

[ JS ] Closure란 ?  (0) 2023.09.14
[ JS ] 호이스팅이란 ?  (0) 2023.09.14
[ Web ] 브라우저 렌더링 ( Browser Rendering )  (0) 2023.01.30
[ Notion ] Notion API 만들기  (1) 2023.01.24
[ JS ] 버블링 ( Bubbling )  (0) 2023.01.18
반응형

브라우저 렌더링 ( Browser Rendering )

브라우저란 ?

인터넷에 접속할 때 사용하는 크롬, 사파리, 파이어폭스, 익스플로러 등을 말합니다.

MDN에서는 브라우저에 대해 웹에서 페이지를 찾아서 보여주고, 사용자가 하이퍼링크를 통해 다른 페이지로 이동할 수 있도록 하는 프로그램이라고 설명합니다.

 

브라우저는 유저가 선택한 자원을 서버로부터 받아와 유저에게 보여줍니다. 이 자원은 페이지 이외에도 이미지, 비디오 등의 컨텐츠들도 포함됩니다. 받아온 과정을 통해 유저에게 보여주게 됩니다.

 

브라우저 렌더링 동작과정

  1. Parsing : HTML 파일과 CSS파일을 파싱해 각각 트리를 만듭니다.
  2. Style : 두 트리를 결합해서 렌더링 트리( Rendering Tree )를 만듭니다.
  3. Layout : 렌더링 트리에서 각 노드의 위치와 크기를 계산합니다.
  4. Paint : 계산된 값을 이용해 각 노드를 화면상의 실제 픽셀로 변환하고, 레이어를 만듭니다.
  5. Composite : 레이어를 합성하여 실제 화면에 나타냅니다.



자세히 알아보기

 

Parsing : 브라우저가 페이지를 렌더링하려면 가장 먼저 받아온 HTML파일을 해석해야 합니다. 파싱 단계는 HTML 파일을 해석하여 DOM( Document Object Model ) 트리를 구성하는 단계입니다

파싱 중 HTML에 CSS가 포함되어 있다면 CSSOM( CSS Object Model ) 트리구성 작업도 함께 진행됩니다.

 

Style : 스타일 단계에서는 파싱 단계에서 생성된 DOM 트리와 CSSOM 트리를 매칭시켜 렌더 트리를 구성합니다. 렌더 트리는 실제 화면에 그려질 트리입니다.

:: EX ) 렌더 트리를 구성할 때 hidden은 요소가 공간을 차지하고, 보이지 않지만 렌더 트리에 포함되어 있지만 display: none; 같은 경우는 렌더 트리에서 제외됩니다.

 

Layout : 레이아웃 단계에서는 렌더 트리를 화면에 어떻게 배치해야 할 것인지 노드의 정확한 위치와 크기를 계산합니다.

루트부터 노드를 순회하면서 노드의 정확한 크기와 위치를 계산하고 렌더 트리에 반영합니다. 만약 크기가 %, vh, vw같이 상대적 크기 속성들은 실제 그려지는 픽셀 단위로 변환됩니다.

 

Paint : 페인트 단계에서는 레이아웃 단계에서 계산된 값을 이용해 렌더 트리의 각 노드를 화면상의 실제 픽셀로 변환합니다. 이 때 픽셀로 변환된 결과는 하나의 레이어가 아니라 여러 개의 레이어로 관리됩니다.

만약 스타일이 복잡하면 복잡할수록 페인트 시간도 늘어납니다.

:: EX ) 배경의 경우 단색일 때 작업이 적게 필요하지만, 그림자 효과는 시간과 작업이 더 많이 필요합니다.


Composite : 컴포지트 단계에서는 페인트 단계에서 생성된 레이어를 합성하여 실제 화면에 나타냅니다.

반응형

'IT > IT ★★★' 카테고리의 다른 글

[ JS ] 호이스팅이란 ?  (0) 2023.09.14
[ JS ] 재귀함수  (0) 2023.02.27
[ Notion ] Notion API 만들기  (1) 2023.01.24
[ JS ] 버블링 ( Bubbling )  (0) 2023.01.18
[ Web ] 주소창에 www.google.com을 입력했을 때 일어나는 일  (0) 2023.01.16
반응형

Notion API 만드는 방법입니다.

 

Notion Developers 바로가기

Notion Integrations 바로가기 ( 내 API 만들기 )

Notion Intro 바로가기

 

위 바로가기로 접속한다음 Get started로 이동합니다.

오른쪽 위에 View my integrations로 이동합니다.

 

새 API 통합 만들기를 클릭합니다.

 

정보를 입력해줍니다.

정보를 입력해주고 제출을 해주면 시크릿 키를 받을수있습니다. ( 시크릿 키는 계속 확인 가능합니다. )

 

오른쪽 상단에 ...을 클릭하고 연결추가에서 아래로 내리다보면 자신이 만든 프로젝트 이름이 있습니다.

 

위처럼 연결까지 완료해주면 아래처럼 연결된 것을 볼 수 있습니다.

 

링크를 복사한 후, 주소창에 넣어보면 DB 아이디를 확인할 수 있습니다.

 

so/ ~ ?v 사이가 DB 주소입니다.

 

이제 필요한 내용은 모두 손에 넣게 되었습니다.

Database ID와 Secret Key를 사용해서 노션을 연동해주면 됩니다.

반응형
반응형

버블링 ( Bubbling )

한 요소에 이벤트가 발생하면, 이 요소에 할당된 핸들러가 동작하고, 이어서 부모요소의 핸들러가 동작합니다.

이렇게 가장 최상단 요소를 만날때까지 이 과정이 반복되면서 요소 각각에 할당된 핸들러가 동작하게 됩니다.

 

<form onclick="alert('form')">
    <div onclick="alert('div')">
        <p onclick="alert('p')">
            p -> div -> form
        </p>
    </div>
</form>
  1. 가장 안쪽에 있는 p의 onclick 핸들러가 동작합니다.
  2. 바로 위에 있는 div의 onclick 핸들러가 동작합니다.
  3. 가장 위에 있는 form의 onclick 핸들러가 동작합니다.
  4. document 객체를 만날때까지, 각 요소에 할당된 핸들러가 동작합니다.

P를 클릭하면 p -> div -> form 순서로 핸들러가 동작합니다.

위와 같이 하위에서 상위 요소로의 이벤트가 전파되는 방식을 이벤트 버블링( Event Bubbling )이라고 합니다.

 

버블링 중단하기

이벤트 버블링은 타깃 이벤트에서 시작해서 <html>요소를 거쳐 document 객체를 만날때까지 각 노드에서 모두 발생하게 됩니다.

그런데 버블링을 중간에 중단 시키는 명령을 할 수도 있습니다.

<form onclick="alert('form')">
    <div onclick="alert('div')">
        <div onclick="event.stopPropagation()">
            <p onclick="alert('p')">
                p -> stop
            </p>
        </div>
    </div>
</form>

위처럼 중간에 event.stopPropagation()을 추가하면 위쪽에 일어나는 버블링을 막을 수 있습니다.

:: 버블링은 꼭 멈춰야 하는 명백한 상황이 아니라면 막지 않아야 합니다. stopPropagation()은 후에 문제가 될 수 있는 상황을 만들어 낼 수 있습니다.

반응형
반응형

 

웹 동작 방식

 

웹 브라우저에 www.google.com을 입력했을 때 일어나는 일 

1. 웹 브라우저에 www.google.com을 입력합니다. 

 

2. 웹 브라우저에 Caching된 DNS 기록을 체크합니다.

:: DNS( Domain Name System ) : DNS는 URL들의 이름과 IP주소를 저장하고 있는 데이터베이스입니다. 인터넷에 있는 모든 URL들에게는 고유의 IP주소가 저장되어 있습니다. 이 IP주소를 통해 해당 웹사이트를 호스팅하고 있느느 서버 컴퓨터에 접근 할 수 있습니다. 

ex ) nslookup www.google.com  을 터미널에 입력하면 IP주소를 알 수 있습니다.

 

:: CACHE ( Caching ) : 컴퓨터는 사용자의 명령이 입력되면 CPU는 연산을 하고 동작에 필요한 내용이 RAM에 저장됩니다. 컴퓨터가 발전하면서 CPU의 처리속도가 RAM에 비해 빨라져 왔기 때문에 CPU가 RAM에 접근할 때 병목현상이 일어나게 되었습니다. 이를 방지하기 위해 CPU와 RAM사이에 용량은 작지만 속도가 빠른 작은 메모리를 탑재했는데 이것이 캐시입니다. 캐시에는 CPU캐시, Disk캐시, Browser캐시 등 다양하게 존재합니다.

 

3. 요청한 URL이 캐시에 없으면 ISP의 DNS 서버가 www.google.com을 호스팅하고 있는 서버의 IP 주소를 찾기 위해 DNS Query를 보내줍니다.

ISP의 DNS 서버는 인터넷을 통해 다른 DNS 서버들에게 물어 도메인 이름의 올바른 IP주소를 찾아줍니다. ISP의 DNS 서버를 DNS recursor라고 하며, 다른 DNS 서버를 name server라고 합니다.

 

웹 페이지 로드와 관련된 4개의 DNS서버 ( DNS의 작동원리 )

1. DNS recursor : 도서관의 어딘가에서 특정한 책을 찾아달라고 요청받는 사서로 생각할 수 있습니다. DNS recursor는 웹 브라우저 등의 애플리케이션을 통해 클라이언트 컴퓨터로부터 쿼리를 받도록 고안된 서버입니다. 일반적으로 recursor는 클라이언트의 DNS쿼리를 충족시키기 위해 추가요청을 수행합니다.

2. Root name server : 사람이 읽을 수 있는 호스트 이름을 IP주소로 변환하는 첫 번째 단계입니다. 도서관에서 책장 위치를 가리키는 색인으로 생각할 수 있으며, 일반적으로 특정한 위치에 대한 참조로 사용됩니다.

3. TLD name server : 서버는 도서관 특정 책장으로 생각할 수 있습니다. 이 이름 서버는 특정 IP 주소 검색의 다음 단계이며, 호스트 이름의 마지막 부분을 호스팅합니다. ( naver.com에서 TLD서버는 'com'입니다. )

4. Authoritative name server : 최종 이름 서버로서, 사전처럼 특정 이름을 해당 정의로 변환합니다. 이 서버는 이름 서버 쿼리의 종착점입니다. 이 서버가 요청한 레코드에 대한 액세스 권한이 있다면, 요청한 호스트 이름의 IP주소를 초기에 요청한 DNS recursor에게 돌려 보내줍니다.

 

4. 웹 브라우저가 서버와 TCP Connection 합니다.

TCP/IP( Transmission Control Protocol / Internet Protocol )

TCP/IP는 네트워크 프로토콜 스위트로 온라인상의 안전하고 효율적인 데이터 전송의 필수 요건을 정의합니다.

통신규약에는 여러가지가 있는데 대표적으로 HTTP 프로토콜이며, IP 프로토콜을 사용하는 모든 프로토콜을 총칭하여 TCP/IP 프로토콜 이라고 합니다.

웹 브라우저가 올바른 IP주소를 받게 되면 IP주소에 해당하는 서버와 connection을 빌드하게 됩니다. 브라우저는 인터넷 프로토콜을 사용해서 서버와 연결이 됩니다. 인터넷 프로토콜의 종류는 여러가지지만, 웹 사이트의 HTTP요청의 경우 일반적으로 TCP를 사용합니다.

클라이언트와 서버 간의 데이터 패킷들이 오가려면 TCP Connection이 되어야합니다.

TCP/IP three-way handshake라는 프로세스를 통해서 클라이언트와 서버간의 connection이 이뤄지게 됩니다. ( 클라이언트와 서버가 SYN과 ACK메시지를 가지고 3번의 프로세스를 거친 후에 연결됩니다. )

  1. 클라이언트 머신이 SYN 패킷을 서버에 보내고 connection을 열어달라고 요청합니다.
  2. 서버가 새로운 connection을 시작할 수 있는 포트가 있으면 SYN/ACK 패킷으로 답장합니다.
  3. 클라이언트는 SYN/ACK 패킷을 서버로부터 받으면 서버에게 ACK 패킷을 보내줍니다.

위 과정을 거쳐 TCP connection이 완성됩니다.

 

5. 웹 브라우저가 서버에 HTTP요청을 해줍니다.

TCP로 연결이 되면 데이터를 전송하면 됩니다.

클라이언트의 브라우저는 GET요청을 통해 서버에게 google.com의 웹 페이지를 요구합니다. 요청할 때 비밀 자료들을 포함하던지, form을 제출하는 상황에서는 POST요청을 사용할 수도 있습니다. 이 요청을 할 때 다른 부가적인 정보들도 함께 전달됩니다.

  • Browser Identification ( User-Agent Header )
  • 받아들일 요청의 종류 ( Accept Header )
  • 추가적인 요청을 위해 TCP connection 유지를 요청하는 connection Header
  • Browser에서 얻은 Cookie정보
  • 기타 등등

 

6. 서버가 요청을 처리하고 Response를 생성합니다.

서버는 웹 서버를 가지고 있습니다. 이들은 브라우저로부터 요청을 받고 Request Handler에 요청을 전달해서 요청을 읽고 Response를 생성하게 됩니다. Request Handler란 ASP.NET, PHP, Ruby등으로 작성된 프로그램을 의미합니다. 이 Request Handler는 요청과 요청의 Header, Cookie를 읽어서 요청이 무엇인지 파악하고 필요하면 서버에 정보를 업데이트 합니다. 그 다음 Response를 특정 포맷( JSON, XML, HTML )으로 작성합니다.

 

7. 생성한 Response를 Client로 보내줍니다.

서버의 Response에 요청한 웹 페이지, Status Code, Compression Type ( Content-Encoding )

어떻게 인코딩 되어 있는지, 어떻게 페이지를 캐싱할지 ( Cache-Control ), 설정할 쿠키가 있다면 쿠키, 개인정보 등이 포함됩니다.

 

Status Code의 응답 상태

  • 정보 응답 ( 100 ~ 199 ) Informational Responses : 요청을 받았으며, 프로세스를 계속 진행합니다.
  • 성공적인 응답 ( 200 ~ 299 ) Successful Responses : 요청을 성공적으로 받았으며 인식했으며 수행합니다.
  • 리다이렉션 메시지 ( 300 ~ 399 ) Redirection Messages : 요청 완료를 위해 추가 작업 조치가 필요합니다.
  • 클라이언트 오류 응답 ( 400 ~ 499 ) Client Error Responses : 요청의 문법이 잘못되었거나 요청을 처리할 수 없습니다.
  • 서버 오류 응답 ( 500 ~ 599 ) Server Error Responses : 서버가 명백히 유효한 요청에 대해 충족을 실패했습니다.

HTTP 상태코드 자세히 보러가기

 

8. 웹 브라우저가 HTML Content를 보여줍니다.

브라우저는 HTML Content를 단계적으로 보여줍니다. 처음에는 HTML의 스켈레톤을 렌더링합니다. 그 다음 HTML Tag들을 체크하고 추가적으로 필요한 웹 페이지 요소들을( 이미지, CSS StyleSheets, Javascript 등 ) GET으로 요청합니다. 이 정적인 파일들은 브라우저에 의해 캐싱이 되서 해당 페이지를 방문할 때 다시 서버로부터 불러와지지 않도록 합니다. 그 다음 google이 렌더링 됩니다.

 

 

반응형

'IT > IT ★★★' 카테고리의 다른 글

[ JS ] 재귀함수  (0) 2023.02.27
[ Web ] 브라우저 렌더링 ( Browser Rendering )  (0) 2023.01.30
[ Notion ] Notion API 만들기  (1) 2023.01.24
[ JS ] 버블링 ( Bubbling )  (0) 2023.01.18
[ 용어 ] CS ?  (0) 2023.01.16
반응형

1. Computer Science ( 컴퓨터 사이언스 )

2. Customer Satisfaction ( 고객 만족 )

 

 

Computer Science ( 컴퓨터 사이언스 )

컴퓨터 사이언스란 컴퓨터라고 하는 기기에 대한 연구라고 할 수 있습니다.

컴퓨터공학은 현대 정보화 사회에서 컴퓨터의 하드웨어와 소프트웨어를 연구하여, 컴퓨터 시스템과 컴퓨터와 관련된 여러기술을 개발하여 익히고 이를 각 분야에 응용하는 것을 목적으로 하는 학문입니다. 컴퓨터공학 학사는 프로그래밍 언어, 시스템 개발, 컴퓨터 네트워크, 하드웨어 및 소프트웨어를 포함하여 컴퓨터의 작동 및 구성과 관련된 다양한 주제를 탐구합니다.

 

:: 사전에서는 컴퓨터에 관한 이론, 하드웨어 및 소프트웨어에 중점을 둔, 정보 과학의 한 분야라고 표기하고 있습니다.

 

Customer Satisfaction ( 고객 만족 )

Customer Satisfaction는 고객만족 또는 고객 서비스를 위해서 만들어진 팀이라고 할 수 있습니다.

 

반응형

+ Recent posts