전체 글 108

TDD[1] Node.js 기본 구조 이해

TDD 공부 목적 노드로 API 서버를 만들 수 있다. 테스트 주도 개발을 익힐 수 있다. 노드JS의 기초 1. 브라우저 밖에서 자바스크립트 코드를 실행할 수 있다. 2. 크롬에서 사용하는 V8엔진을 사용한다. 3. 이벤트 기반의 비동기 I/O 프레임워크 // readFileSync() const fs = require('fs') //기본모듈 const file =fs.readFileSync('test.txt', {encoding : 'utf8'}) console.log(file); const callback = (err, data) => { console.log(data); } fs.reafFile('text.txt', {encoding : 'utf8'}, callback); 문서에 보면 readfil..

NodeJs 2021.03.31

#2. URI와 웹 브라우저 요청 흐름

URI와 웹 브라우저 요청 흐름 URI(Uniform Resource Identifer) Uniform : 리소스 식별하는 통일된 방식 Resource: 자원, URI로 식별할 수 있는 모든 것 Identifier : 다른 항목과 구분하는데 필요한 정보 URL - Locator : 리소스가 있는 위치를 지정 웹 브라우저 요청 흐름 예를 들어서 구글서버로 이렇게 요청을 했을 때, 처음에 DNS 서버에서 조회를 통해 도메인을 IP로 바꾼다. 포트는 https 443이 생략된다. HTTP 요청 메시지를 생성함 HTTP 요청 메세지는 이렇게 생겼다. 애플리케이션 웹브라우져가 HTTP 메세지를 생성함 애플리케이션에서 HTTP 메세지를 SOCKET 라이브러리를 사용해서 OS 계층인 TCP/IP로 전달한다. 이전에 ..

Http 기본지식 2021.03.30

#1. 인터넷네트워크

IP 인터넷 프로토콜 역할 보내는 클라이언트와 서버는 IP 주소를 부여받는다. IP 인터넷 프로토콜은 지정한 IP주소에 데이터를 전달 패킷이라는 통신 단위로 데이터 전달 패킷에는 출발지와 목적지 ip가 들어감 IP 프로토콜의 한계 비연결성 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷을 전송 대상 서버가 패킷을 받을 수 있는 상태인지 모름 비신뢰성 중간에 패킷이 사라지면? 패킷이 순서대로 안오면? 패킷소실 중간에 패킷소실 가능 그리고 소실되도 모름 패킷 전달 순서 문제 발생 보내는 패킷용량이 너무 크면 끊어서 보냄 예를 들어 1번 Hello 2번 World 이렇게 순서대로 보냈을 때 1 2 순서가 아니라 2 1 순서로 도착할 수 있음. 프로그램 구분 같은 ip를 사용하는 서버에서 통신하는 애플리케..

Http 기본지식 2021.03.29

#1. 콘솔에 출력, script async 와 defer의 차이점

출력 방법 console.log("hello world") 태그의 async 속성 태그의 async 속성은 스크립트가 나머지 페이지와는 비동기적으로 실행됨을 나타내며, 브라우저가 페이지를 파싱하는 동안에도 스크립트가 사용가능해지면 곧바로 실행됨을 명시합니다. 태그의 defer 속성 태그의 defer 속성은 페이지가 모두 로드된 후에 해당 외부 스크립트가 실행됨을 명시합니다. defer 속성은 불리언(boolean) 속성으로 명시하지 않으면 false 값을 가지게 되고, 명시하면 true 값을 가지게 됩니다. 참조된 외부 스크립트 파일을 다음과 같이 여러 가지 방법으로 실행시킬 수 있습니다. - async 속성이 명시된 경우 : 브라우저가 페이지를 파싱되는 동안에도 스크립트가 실행됨. - async 속성은..

2021.03.29

클래스다이어그램 관계

클래스 다이어그램이란? 시스템을 구성하는 클래스들 사이의 관계를 표현해주는 그림 도식입니다. 1.의존 관계(dependency) 표시 : 점선 화살표 설명 : 연관 관계와 같이 한 클래스가 다른 클래스에서 제공하는 기능을 사용할 때 나타냅니다. 연관 관계와 차이점은 두 클래스의 관계가 한 메서드를 실행하는 동안과 같은, 매우 짧은 시간만 유지된다는 점 의존은 A클래스에서 B클래스의 객체를 함수의 파라미터&리턴값에 사용하거나 메소드 변수로 사용할 경우 해당된다 public class A { public void dependency(B para) { B b = para; System.out.println("dependency"); } } public class B{ } 지역변수로 사용하거나, 파라미터로 사용..

지식창고 2021.03.28

ft_server 따라잡기 (도커, nginx 서버, php웹서버)

목차 1. wsl2 설치 및 도커 설치 www.44bits.io/ko/post/wsl2-install-and-basic-usage WSL2(Windows Subsystem for Linux 2) 설치 및 사용 방법 지난 5월 윈도우10의 대규모 업데이트가 있었습니다. 이번 업데이트에는 WSL2 정식 릴리스가 포함되어있습니다. WSL은 경략 가상화 기술을 통해 윈도우에서 리눅스 배포판을 사용할 수 있게 도와 www.44bits.io 2. 데비안 버스터 이미지 가져오기 docker pull debian:buster 명령어를 사용한다. 내 컴퓨터에 데미안 버스터 이미지가 없기 때문에 도커 허브에서 받아온다. 3. 데비안 버스터 터미널에 들어가기 터미널에 들어가서 여러가지 설정해야 할 것이 많다. nginx라는..

ft_server 2021.01.21

HTTPS 와 SSL 인증서

이것들이 어떻게 동작하는지 확인해보자. 일단 용어정리를 해보자면 http는 Hypertext Transfer Protocol의 약자다. html을 전송하기 위해서 만들어진 통신규약이라고도 한다. url을 즉 도메인을 칠때 http를치고 url을 적는이유가바로 http 통신을 사용하겠다는 것이다.그럼 https와 http의 차이점은 무엇인가? -> s에서 차이난다.시큐어라는 것이 중요하다 바로 보안이다. 예를들어 로그인을 위해서 서버로 비밀번호를 전송하거나, 또는 중요한 기밀 문서를 열람하는 과정에서 악의적인 감청이나 데이터의 변조등이 일어날 수 있다는 것이다. 이를 보안한 것이 HTTPS다. SSL 디지털 인증서SSL 인증서는 클라이언트와 서버간의 통신을 제3자가 보증해주는 전자화된 문서. 통신 내용이 ..

ft_server 2021.01.19

2020 11 20

가변인자 함수에서 가변 인자를 정의할 땐느 고정 매개변수가 한 개 이상 있어야함 고정 매개 변수뒤에 ...을 붙여야 한다. 반환값 자료형 함수이름(자료형 고정매개변수, ...) { } #include #include //va_list, va_start, va_arg, va_end가 정의된 헤더 파일 void printNumbers(int args, ...) //args는 고정매개변수, ...로 가변 인자를 설정 { va_list ap; //가변 인자 목록 포인터 각 가변인자의 메모리 주소를 가질수 있음 va_start(ap, args); //가변인자 포인터에 첫번째 가변인자의 주소를 전달 for (int i = 0; i < args; i++) { int num = va_arg(ap ,int); //int..

Printf 2020.11.21