CS 16

CS
[02/08] Callback 2023.02.09

동기와 비동기 동기 (Synchronous) 특정 코드를 수행 완료한 후 다음 코드를 실행 EX) 자장면 배달 ➡ 손님이 다 먹을 때까지 기다림 ➡ 그릇을 찾아 가게로 돌아감 console.log('배달 출발'); console.log('배달 완료!'); console.log('손님이 짜장면을 다 먹기를 기다린다...'); console.log('1시간 후...'); console.log('그릇을 찾은 후 가게로 돌아온다.'); 비동기 (Asynchronous) 특정 코드를 수행하는 중에 다음 코드를 실행 EX) 자장면 배달 ➡ 손님이 다 먹을 때까지 다른 일을 수행 ➡ 손님이 다 먹었을 때 그릇을 찾으러 옴 console.log('배달 출발'); console.log('배달 완료!'); setTimeo..

CS
[02/07] 웹 표준과 웹 접근성 2023.02.07

웹 표준 어떠한 운영체제나 브라우저를 사용하여도 동일한 컨텐츠를 볼 수 있도록 웹에서 표준적으로 사용되는 기술이나 규칙 "동일한 컨텐츠" : 완벽히 똑같은 화면❌ 모든 플랫폼에서 동등한 수준의 정보에 접근이 가능함을 의미하는 것 등장 배경 초기 1990년대 후반 : 넷스케이프 VS 인터넷 익스플로러 개발자 : 넷스케이프와 인터넷 익스플로러, 두 버전의 페이지를 모두 개발해야 했음 중기 윈도우 98의 IE 기본 탑재 ➡ IE가 독점, 호환성을 고려하지 않고 자사에 유리한 플러그인 대거 채용 (EX ActiveX) 맥이나 리눅스에서는 ActiveX로 인한 불편함 ⬆ 말기 스마트폰의 등장 특정 OS나 특정 브라우저에서만 동작하는 웹페이지 ⬇ 웹 표준의 중요성⬆ 웹 표준이란? 팀 버나스 리를 중심으로 한 Wor..

CS
[01/02] 웹 요청과 응답 (2) 2023.01.02

클라이언트는 서버에 Request를 보냄서버는 Request를 분석하여 클라이언트에게 Response를 보냄*클라이언트 : 정보, 자원, 서비스를 사용하는 측 (요청을 보내는 측)*서버 : 정보, 자원, 서비스를 제공하는 측. 요청을 받고 응답하는 축  Internet컴퓨터 네트워크들을 서로 연결 지어주는 범지구적 네트워크Inter-Network == 컴퓨터 네트워크들의 네트워크인터넷이라는 거대한 네트워크 위에서 다양한 서비스들이 동작➡ 웹도 인터넷 위에서 동작하는 서비스들 중 하나 웹 ≠ 인터넷  웹의 등장CERN (유럽 입자 물리 연구소)과학자들이 저마다 다양한 종류의 컴퓨터를 사용각 컴퓨터마다 다양한 종류의 소프트웨어를 사용➡  컴퓨터들간의 차이로인해 정보를 교환하기 어려움➡  처음 보는 프로그램이..

CS
[01/01] 웹 요청과 응답 (1) 2023.01.01

웹 서비스가 작동하기 위한 수많은 약속들 ➡ 기반이 되는 부분 = "데이터를 주고받는 약속" TCP UDP TCP 전화에 비유할 수 있음 일대일 연결만 가능 손상되면 재전송 요청을 하므로 신뢰도가 높음 데이터의 순서와 무결성이 보장됨 속도가 상대적으로 느림 높은 신뢰도를 요하는 서비스에 적합 ① 송신측에서 수신측에게 받을 준비가 되었는지 물어봄 ② 수신측이 응답을 하면 데이터를 보냄 * 데이터 : 전체 데이터를 패킷이라는 아주 작은 단위로 나누어 보냄 ③ 패킷 하나를 보낸 다음에 잘 받았는지 물어봄 ④ 잘 받았다는 응답이 와야 패킷 한 개를 보내는 작업이 종료됨 ➡ 이를 여러번 반복 TCP Handshake 3-way 클라이언트와 서버 연결시 총 3번 악수하여 연결이 잘 수립되었는지 확인 4-way 클라..

CS
[01/01] Cache 2023.01.01

메모리 계층 구조 컴퓨터에서 메모리의 속도와 용량은 반비례관계 메모리의 속도가 빠르면 빠를수록 가격이 올라감 (용량이 작음) 용량이 큰 저장장치는 속도가 느림 ➡ 속도와 용량 둘 다 잡기에는 비용이 너무 많이 들어감 ➡ 데이터 저장공간은 속도와 용량에 따라 특성에 맞게 역할을 나누어서 사용 데이터 저장 공간을 속도-용량 순서대로 쌓으면 마치 피라미드와 같은 형상이 나타남 ➡ 메모리 계층구조 (Memory hierarchy) 파레토의 법칙 이탈리아의 경제학자 빌프레도 파레토가 발견한 현상 원인 중 상위 20%가 전체 결과의 80%를 만든다는 법칙 2대 8 법칙이라고도 함 EX) 인구의 20%가 전체 부의 80%를 가지고 있음 잘 팔리는 제품 20%가 매출의 80%를 차지 많이 쓰이는 단어 20%가 언어 사..

CS
[12/30] 웹스토리지 & 쿠키 2023.01.01

쿠키 브라우저에 저장되는 작은 크기의 문자열 최대 4KB 까지 저장할 수 있음 1) 쿠키의 역사 UNIX 프로그래머들이 사용하는 "매직 쿠키"라는 용어에서 영감을 얻어 사용하게 됨 *매직 쿠키 : 프로그램이 수신한 뒤 변경하지 않고 보내는 데이터 패킷 넷스케이프 웹 사이트 방문자가 이미 사이트를 방문했었는지 여부를 판단하기 위해 처음 사용됨 == 쿠키가 없다면 방문했었던 사용자인지 알 수 없다는 뜻 ➡ "HTTP의 비연결성 / 무상태성"이라는 특성때문 비연결성 / 무상태성 클라이언트와 서버가 한 번 연결을 맺은 뒤에 요청과 응답이 끝나면 연결을 끊음 + 상태를 유지하지 않음 현재 요청하는 사용자의 정보를 알 수 없음 넷스케이프 : 현재 사용자가 사이트에 방문했었는지 여부를 알고 싶음 ➡ 쿠키의 등장 2)..

CS
[12/29] API vs Library vs Framework 2022.12.29

API Application Programming Interface Interface 하나의 시스템을 구성하는 두 개의 구성요소가 상호 작용을 하기 위해 필요한 경계가 필요함 인터페이스는 이 경계에서 각 구성요소가 상호 접속하기 위한 하드웨어, 소프트웨어, 조건, 규약 등을 포괄적으로 가리키는 말 EX) 티비 - 리모컨 - 사용자 TV를 조정하기위해 리모컨을 사용 TV와 사용자 사이의 매개체로서 인터페이스 역할을 함 응용프로그램에서 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스 프로그램 사이를 연결해주는 다리 API EX) 사용자끼리 맛집을 공유하는 서비스 - 지도에 위치를 찍어 공유 - 지도를 만들기에는 너무 어렵고 / 시간도 오래걸림 ➡ Google의 지도 서비스를 이용..

CS
[12/13] MVC 패턴 2022.12.13

웹 어플리케이션의 아키텍쳐 모델 1 JSP + JavaBeans (Service) : 뷰와 로직이 섞여있음 장점 단점 구조가 단순함 - 출력과 로직 코드가 섞여 JSP 코드가 복잡해짐 - 프런트와 백엔드가 혼재되어 분할이 용이하지 않음 - 유지보수가 어려움 모델 2 JavaBean(Service) + JSP + Servlet : MVC 패턴과 유사함 장점 단점 - 뷰와 로직의 분리로 모델1에 비해 덜 복잡함 - 분업이 용이하며, 유지보수가 쉬움 - 모델1에 비해 습득이 어렵고, 작업량이 많음 MVC 패턴 사용자가 어플리케이션을 사용 ➡ 원하는 기능을 처리하기 위한 모든 요청을 컨트롤러에 보냄 컨트롤러는 모델을 사용하고, 모델은 알맞은 비즈니스 로직을 수행 컨트롤러는 사용자에게 보여줄 뷰를 선택 선택된 뷰..

[Software Engineering] MVC 2022.12.10

MVC (Model-View-Controller)는 사용자 인터페이스로부터 비즈니스 로직을 분리 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 스타일의 아키텍처 사용자 인터페이스를 담당하는 계층의 응집력을 높일 수 있음 여러 개의 다른 UI를 만들어 그 사이에 결합을 낮출 수 있음 응용프로그램을 서로 상호작용하는 세 가지의 논리적인 구성요소로 나눔 Model 데이터와 해당 데이터와 연관된 작업을 관리함 데이터의 상태에 변화가 있을 때 컨트롤러와 뷰에 이를 통보함 통보를 통해 뷰는 최신의 결과를 보여줄 수 있음 컨트롤러는 모델의 변화에 따른 적용 가능한 명령 (추가, 제거, 수정)을 내릴 수 있음 MVC를 다르게 구현한다면 통보 대신 뷰나 컨트롤러가 ..

[Software Engineering] 시스템의 타입 2022.12.10

개발할 시스템의 타입은 분석, 모델링, 설계, 구현, 테스팅 거의 모든 개발 작업에 영향을 줌 소프트웨어 아키텍처를 설계할 때 시스템의 타입이 고려되어야 함 설계 방법과 아키텍처 스타일을 선택할 때 시스템의 타입이 영향을 줌 일반적으로 네 가지 타입으로 나눌 수 있음 대화형 시스템 대화형 (interactive) 시스템은 PC와 웹 애플리케이션이 널리 사용되면서 가장 보편적이 되었음 EX) 시스템을 사용하기 위해 먼저 로그인 링크를 클릭하면 시스템은 로그인 페이지를 보여줌 사용자가 아이디와 패스워드를 입력하면 시스템은 웰컴 페이지를 디스플레이 함 대화형 시스템의 상태를 파악하는 것은 곧 비즈니스 프로세스를 반영하는 것임 EX) 온라인 쇼핑몰 시스템 - 고객이 로그인하여 상품을 고르고 결제함 - 고객이 로..