목록computer science (16)
IT_susu
# 평가 - 코드가 계산(Evaluation) 되어 값을 만드는 것 # 일급 - 값으로 다룰 수 있다. - 변수에 담을 수 있다. - 함수의 인자로 사용될 수 있다. - 함수의 결과로 사용될 수 있다.
웹서비스는 브라우저를 통해 유저에게 서비스를 제공합니다. 따라서 브라우저에 대한 이해가 필수적입니다. 브라우저가 어떤 방식으로 html, css, javascript를 해석하고 로드하는지 알아봅시다. 우선 브라우저의 기본 구조를 알아봅시다.1. 사용자 인터페이스 - 주소표시줄, 이전/다음버튼, 북마크 메뉴 등 요청한 페이지를 보여주는 창을 제외한 나머지 모든 부분.2. 브라우저 엔진 - 사용자 인터페이스와 렌더링 엔진 사이의 동작을 제어.3. 렌더링 엔진 - 요청한 콘텐츠를 화면에 표시.4. 통신 - http 요청과 같은 네트워크 호출에 사용. 이것은 플랫폼 독립적인 인터페이스이고 각 플랫폼 하부에설 실행됨.5. UI 백엔드 - 콤보 박스와 창 같은 기본적인 장치를 그림, 플랫폼에서 명시하지 않은 일반적..
컴퓨터가 이해하는 기계어와 인간이 이해하는 고급언어를 이어주는 컴파일러를 통해 소통이 가능하다. 고급언어- 인간이 이해할 수 있는 프로그래밍 언어- C, javascript, html 등등..- 기계어를 추상화하여 만든 언어- 시스템에 상관없이 언어 사용 가능- 컴파일 과정에서 불필요한 instruction이 생성되므로 속도가 비교적 느림 컴파일러- 고급언어를 어셈블리어로 변환 어셈블리어- 컴파일러로 생성된 언어- 어셈블러에 의해 기계어로 번역됨.- 컴파일러나 어셈블러가 발생시키는 instruction이 적으므로 속도가 빠름- 기계적 사고방식을 강요하기 때문에 프로그램 구성을 위한 소요가 큼 기계어- 컴퓨터가 이해할 수 있는 비트들의 집합- 숫자 하나가 비트 시스템 소프트웨어- 하드웨어와 어플리케이션 소..
컴퓨터의 구성요소를 살펴보고, 컴퓨터에 대해 좀 더 자세히 알아봅시다. * 컴퓨터의 구성요소입력(input) : 데이터를 입력하기 위한 컴퓨터의 외부장치출력(output) : 컴퓨터에서 처리된 결과를 출력해주는 외부장치메모리(memory) : 레지스터의 용량이 작아서 생긴 부품- RAM : 휘발성 데이터- ROM : 비휘발성 데이터- 캐시 : 최근사용한 데이터데이터패스(data path) : 산술연산제어유닛(control)- 레지스터 : 연산에 필요한 데이터나 연산결과를 임시로 저장하는 공간.
컴퓨터를 잘 모르고서 프로그래머가 될 수는 있지만 실력있고 좋은 프로그래머가 되기 위해서는 꼭 넘어야 할 산입니다.하지만 컴퓨터의 역사를 보고 있는 건 너무나 따분한 일입니다. 컴퓨터에 대해서 아무것도 모르는 상태, 이 눈높이에서 조금씩 알아봅시다. 일단 컴퓨터를 보면 드는 생각은 전자제품입니다.네, 컴퓨터는 전기가 없으면 동작하지 않죠. 그러면 컴퓨터는 전기를 먹는 댓가로 무슨 일을 해줄까요? 우리는 컴퓨터로 블로그에 글을 쓴다던가, 계산을 한다던가, 영화를 본다던가, 채팅을 하는 등... 많은 일들을 합니다.지금은 하는 일이 너무 많아서 뭘 하는 애인지 모를 정도입니다. 좀 더 단순했던 과거에서 정체성을 찾아봅시다. 컴퓨터는 과거 계산기에서부터 시작되어 점차 발전되었습니다. 즉 기본 기능은 연산을 하..
Model- 데이터를 관리- 데이터베이스에 있는 자료를 가져와서 또다른 객체에게 전달해줌- 외부에서 전달받은 자료를 DB에 저장하는 역할- 웹프론트엔드에서 model에 접근하는 방법은 DB에 직접 접근하지 않고 API를 통해 접근한다. API를 통해 데이터를 가져와서 다른 객체에게 전달하거나, 외부 객체에서 전달해 준 데이터를 API를 통해 DB에 저장함. View- 모델에서 가져온 데이터를 가지고 화면을 관리- 사용자가 입력한 데이터 처리 Controller- 모델과 뷰를 연결- 모델로 부터 데이터를 가져와서 뷰에 전달- 뷰에서 얻은 사용자의 입력 데이터를 모델에게 전달
순수함수는 입력이 같다면 출력도 항상 같은 값이 나오는 것입니다. 외부의 상태를 변경하지 않는 함수(=> 평가 시점이 중요하지 않다.) 순수함수의 예 function add(a, b) { return a+b;}=> 1. 동일한 값이 항상 리턴된다.2. 외부상태를 바꾸지 않는다. const c = 10;function add2(a, b) { return a + b + c;}=>1. 함수 외부에 존재하는 c의 값이 변하지 않으므로 순수함수다. ( 만일 c의 값에 변경여지가 있다면 순수함수가 아님)2. 외부 상태(c)를 함수가 바꾸지 않는다. var obj1 = { val : 10 };function add5(obj, b) { return { val : obj.val + b }} console.log( obj..
1. 절차지향 프로그래밍일이 진행되는 순서대로 프로그래밍을 하는 방법이다. 장점 : 코드를 따라가며 읽기가 쉬우며 작성하기에도 쉬운 편이다. 컴퓨터의 처리구조와 비슷해 실행 속도가 빠르다.단점 : 각각의 코드가 순서에 민감하게 연결되어있어 유지보수가 쉽지 않다. 프로그램을 분석하기가 어렵다. 2. 객체지향 프로그래밍객체를 먼저 작성하고 함수를 작성하는 형태이다. : 객체간의 상호작용이다.데이터(객체)를 먼저 디자인하고 데이터에 맞는 메소드를 구현하는 방식이다. : 상태를 바꾼다. 조작한다. 데이터형에 메서드가 종속된다.비순수 함수들을 순수객체로 묶는다. 장점 : "(주어)는 (동사)다." 처럼 사람이 생각하는 방식과 닮아있다. 즉, (객체)는 (메소드)다. 코드의 재사용이 가능하다. 분석과 설계의 전환이..
객체지향 프로그래밍이란 object단위로 프로그래밍을 설계한다는 의미입니다.oop방식으로 프로그래밍을 할 때 나타나는 6가지의 특성이 있는데요.아래 특성들을 지원하는 언어를 개체지향언어라고 하며, 대표적으로는 JAVA가 있습니다. 1) 클래스데이터를 담는 변수 (멤버변수, 프로퍼티 라고도 부름:javascript)와 기능을 담는 메서드로 구성되어 있습니다.이 안에서 object개념으로 관련있는 프로퍼티와 메서드의 집합체라고 보면 됩니다. 2) 인스턴스클래스의 내용을 담은 object. 클래스를 사용하기 위해 내용을 담아놓은 곳이다. 3) 캡슐화클래스 안에 만들어 놓은 프로퍼티나 메서드들을 외부에서 변경할 수 있게 허락하지 않으면 외부에서는 그대로 사용할 수 밖에 없다.즉, 클래스 안에 내용들을 보호하는 ..
웹사이트를 최적화하여 빠르고 효율적으로 웹을 사용하는 것은 매우 중요하다.같은 데이터 양이어도 엄청 느리거나 혹은 매우 빠를 수도 있기 때문이다. 그 방법의 일환으로 최소화가 있다.이는 압축과는 다른 것인데 압축은 아예 사용 불가능하게 용량을 줄여버리기 때문에 유저가 사용하려면 다시 압축을 해제해야 한다.최소화는 당연히 압축만큼 용량이 줄어들진 않겠지만 압축 해제가 필요 없어 빠르게 사용이 가능하다. 최소화를 하면 주석, 불필요한 공백을 제거해 준다.대표적인 툴로 JSMIN이 있다. 더 최소화 하기 위한 일환으로 난독화를 진행하기도 하는데, 이는 코드에 오류가 발생할 여지가 많으며 유지 보수와 디버깅에 불리하다.