til 7

[web]웹 통신

INDEX 1. 클라이언트-서버 아키텍쳐 2. HTTP 통신 3. API 4. 브라우저 작동원리 5. URL & URI 6. IP 주소 & 포트 1. 클라이언트-서버 아키텍쳐 리소스가 존재하는 곳과 리소스를 사용하는 앱을 분리시킨 아키텍쳐. 위의 2단 아키텍쳐에 db를 따로 빼면 3-tier 아키텍쳐. 클라이언트는 리소스를 사용, 서버는 해당 리소스를 전달, db는 리소스를 저장하는 방식. 공통적으로 클라이언트가 인터넷을 통해서 서버에게 요청(Request) 하면 서버가 인터넷을 통해 클라이언트에게 응답(Response)한다. 이때, 인터넷을 통해 데이터를 주고받을 수 있도록 하는 규칙이 프로토콜. 프로토콜에는 몇 가지 종류가 있음 2. HTTP 통신 1번에서 서술한 인터넷을 통해 데이터를 주고받도록 하..

CS/네트워크 2022.02.17

[Linux]입출력, 표준 스트림

1. 표준 스트림 표준 스트림, 사실 리눅스에서 처음 배우는건 아니다. 프로그래밍 언어를 배우지 않고 바로 리눅스로 들어오는 경우는 잘 없으니까..?! c를 했다면 우린 이미 이걸 알고있다. 표준 입출력 이라는 이름으로 들어봤을 것이다. 그때 그 개념이랑 같다. 입력장치로부터 바이트 단위로 정보가 들어오면 프로그램이 처리해서 출력장치로 보내는 이 일련의 과정을 스트림이라고 표현할 뿐이다. 이게 프로그램 언어로 가면 표준 입출력이 되는거고, 유닉스 환경에서는 표준 스트림이다. + ) 이게 옛날에 어려웠던 이유는 각 디바이스 별로 설정이나 소통방식이 달랐던 것을 중간에서 조율해야하니 어려웠지만 그걸 os가 추상화 라는 개념을 도입해 디바이스를 파일로 관리하는 방식을 취해 쉬워졌다. 즉, 이것과 관련한 명령어..

CS/운영체제 2022.02.11

[Linux]패키지&프로세스

1. 패키지 윈도우에서 말하는 .zip, .msi 프로그램을 다운받고 실행시키려면 필요한 잡다한 파일들이 많은데 그걸 하나하나 따로 받기는 힘드니, 한번에 받을 수 있게 묶어놓는은것. 1-1. 구성 프로그램 파일 프로그램 설치 파일 프로그램 설치 설명서 프로그램에 대한 정보를 담은 파일 패키지 안에는 하나의 프로그램이 정상적으로 설치되고 동작하기 위한 모든 파일이 압축 그중에는 프로그램에 대한 정보를 담은 파일이 있는데, 프로그램 A를 설치하기 위해 프로그램 B가 필요하다는 정보도 함께 담겨있다. == 디펜던시 패키지를 이용해 프로그램을 설치하면, 패키지에 포함된 정보를 이용해 프로그램 B를 먼저 설치하고 나서 프로그램 A를 설치합니다. 1-2. 종류 소스 패키지 바이너리 패키지 1) 소스패키지 소스 코..

CS/운영체제 2022.02.10

[Linux]_CLI 기본명령어(2)

#2. 리눅스 운영체제(2)_텍스트편집 Today I Learned, 텍스트편집기 nano 앗...vim 쓸 줄 알았는데 nano를 쓴다고해서 당황했다. vim도 자유롭진않지만 그래도 써본거라 좀 덜 무서웠는데... 나노 열기 nano 다행이 vim이랑 큰 차이는 모르겠다. 명령어가 조금 다른것 같다. 혹시 nano를 실행했는데 저런 보조화면이 안나온다면 nano -c 아무래도 도와주는게 있으면 편하니까.. nano -m 파일명 이건 무려 마우스를 사용할 수 있게 해준다. 기본은 방향키 이동 ^O : write out 되어있는데, 파일 저장한다는 뜻. 저장할 파일명을 입력할 수 있고 디폴트는 최초파일명 ^X : 그냥 나가기. 저장안돼있으면 저장할지 Y,N로 물어봐준다. 친절쓰 *** 참고문헌 *** ht..

CS/운영체제 2022.02.09

[Linux]CLI 기본명령어

#2. 리눅스 운영체제(1)_CLI 기본 명령어 Today I Learned, 1. 리눅스 리누스 토발즈가 만든 오픈소스 운영체제. 공짜다. 그 종류로 데비안, 우분투, 레드햇,,, 가계도를 찾아보면 어마무시하게 다양하다. 애초에 오픈소스이기 때문에 원한다면(할 수 있다면) 커스터마이징한 나만의 리눅스를 가질 수도 있기 때문이다. 하지만 난 그런 거 못하기 때문에 공식문서 잘되어있고 소스많은 우분투 써야지! 듀얼부팅같은 것도 어려우니까 가상머신써야지! +) 흔히 운영체제니까 데스크탑위주 시장에서 사용되는 것 같지만 물론 맞다. 맞는데, 안드로이드 역시 모바일 시장에서 리눅스 커널을 사용한다. 최근에 핫해진 이유는 클라우드, 웹서버 이런데서 사용하다보니 맞물려서 인기가 늘어난 것 같다. 대학생때 이걸 만들..

CS/운영체제 2022.02.09

[TIL]0208_개발프로세스와 DevOps 업무개요

#1. 개발프로세스와 DevOps 업무개요(2) Today I Learned, 1. 단일 서버 1) 서버란, 클라이언트에게 리퀘스트를 받아 네트워크를 통해 서비스를 제공하는 컴퓨터 시스템으로 sw, hw둘 다 의미함. 커다란 상자 안에 서버, 스위치, 라우터, vpn을 설치한 것이 우리가 아는 그 서버실의 hw서버들. 웹서버, dns 서버 등과 같이 sw 서버도 있음. +) 아파치가 웹 서버 sw의 종류였다. 조사하면서 처음 알게되었다. 톰캣, was 로 알고있었는데 얘들은 웹어플리케이션 서버로 분류된다고 한다. 2. 수직 확장 vs 수평 확장 단일 서버로 감당하기 힘든 트래픽이 발생했을 때 서버를 늘려야한다는건 직감적으로 와닿는다. 늘리는 방식에는 두 가지가 있다. 1) 수직확장 : 서버를 제공하는 하..

[TIL]0207_개발프로세스와 DevOps 업무개요

#1. 개발프로세스와 DevOps 업무개요(1) Today I Learned, 1. DevOps란? 2. CI/CD 파이프라인이란? 3. DevOps의 탄생배경 4. 클라우드란? +) 이하는 개인적 카더라 통신. 신뢰도 없는 개인적인 의견 1. DevOps의 개념 요약하자면 개발(Dev) + 운영(Ops). 서비스 개발에는 보통 직접 서비스의 기능을 구현하는 개발팀과 그 서비스를 사용자와 만나게 해주고 서비스의 안정화 및 유지보수에 힘쓰는 운영팀. 그리고 별도로 각 개발된 유닛들을 단위로 케이스 테스트를 전문적으로 담당하는 QA팀으로 이루어진다. 그 외에도 기획, 마케팅, 서포트 등등 다양하게 있겠지만 우선 개발에만 집중해보자. 큰 기업(혹은 전통적 it개발방식을 가진 팀)에서는 개발팀, 운영팀, QA팀..