반응형

분류 전체보기 133

CORS 란?

CORS 란 - Cross-ORigin Resource Sharing - 교차 출처 자원 공유 - 서로 다른 출처에서 데이터를 주고받는것을 허용하는 정책 - 브라우저에서 크로스 도메인 요청은 기본적으로 제한 되어있다. (서버가 허용한 범위 내에서 Cross Origin 요청 허용) => 서버가 웹 브라우저에서 리소스를 로드할 때 다른 오리진을 통해 로드하지 못하게 하는 HTTP 헤더 기반 메커니즘 defaultCorsHeaders - 제시된 조건을 갖춘 요청은 Cross 도메인에서 리소스 요청이 가능하도록 허용 // 모든 도메인에서 허용한다. (*) // 사용 가능 메소드 : GET, POST, PUT, DELETE, OPTIONS // 허용된 헤더 타입 : content-type, accept // p..

DevOps/DevOps 2022.12.16

[Mac OS]Mac 환경에서 nginx 실행하기

nginx란 - HTTP 기반의 서버를 생성하는 소프트웨어 - 웹 서버를 생성 및 정적 웹페이지 호스팅 - Event-Driven 구조로 동작한다 (고정된 프로세스 사용) - 적은 자원으로 효율적인 운용이 가능하다는 장점 nginx 설치 $ brew install nginx // hombrew가 미리 설치 되어있어야함 nginx.conf 파일 - 논리적으로 작성되어 있는 지시어 목록이다 - 어플리케이션 전체가 지시어에 부여하는 값에 의해 동작한다. $ sudo find / -name nginx.conf // find 명령어를 이용하여 nginx.conf 파일의 위치를 찾는다 필자의 nginx.conf 위치는 아래 와 같다. /opt/homebrew/etc/nginx cat 명령어를 통하여 conf 파일의..

DevOps/DevOps 2022.12.15

git hub 사용법 및 업무협업 (git, repository, branch ...)

git 이란 - 형상관리 도구 중 하나이며, 여러명의 사용자들 간의 파일 변경사항 추적 및 작업 조율을 위한 분산 버전 관리 시스템 - 소프트웨어 개발에서 소스코드를 효과적으로 관리할 수 있는 공개 소프트웨어 - 프로젝트 폴더 내 작업을 기록하고 버전 관리를 통한 체계적인 개발이 가능 git 장점 - 분선적 개발 (전체 개발 내역을 각 개발자의 로컬 컴퓨터로 복사 가능, 데이터 Merge를 할 수 있다.) - 효율적 개발 (많은 변경이력에 대해서도 효율적인 처리가 가능하다.) - 비선형적 개발 (branch 라는 개념으로 프로젝트의 가지치기가 가능하다.) - 변경 이력 보장 (작업되는 모든 내역(commit)모두 별도의 영역에서 안전하게 관리된다.) github란 - 분산 버전 관리 툴인 깃(git)을 ..

업무 관련 툴 2022.12.12

[Mac OS]웹서버 - 클라이언트 간단 실습 (netcat-nc)

nc 명령어를 사용하여 웹서버 (멀티패스)와 클라이언트 (웹 브라우저 접속) 구성의 간단한 통신을 테스트 해보고자 한다. nc 명령어 - nc 란 TCP 또는 UDP 프로토콜을 사용하는 네트워크 환경에서 데이터를 읽고 쓰는 용도로 사용된다. - 상대 포트 상태 확인 또는 서버가 되어 원격 서버에서 접속이 가능한지 확인하는 용도로도 사용된다. - 사용법 : $ nc 실습 1. 멀티패스 (우분투 가상환경) 에서 포트 8000번에 LISTEN 모드 실행 - 별다른 응답이 발생하지 않는다. 2. 웹 브라우저를 실행하여 서버 IP의 8000번 포트로 진입한다. 3. 웹 브라우저의 데이터 요청에 대한 내용이 서버에게 출력된다. HTTP 메시지 요청 구조 중 몇가지를 살펴본다. GET / HTTP / 1.1 // S..

DevOps/DevOps 2022.12.11

[Mac OS]HTTP 요청 메소드 및 상태코드 (Postman, OpenWeatherMap 사용)

https://openweathermap.org/ Сurrent weather and forecast - OpenWeatherMap Access current weather data for any location on Earth including over 200,000 cities! The data is frequently updated based on the global and local weather models, satellites, radars and a vast network of weather stations. how to obtain APIs (subscriptions w openweathermap.org HTTP 메소드의 몇가지는 OpenWeatherMap 사이트에서 제공해주는 날씨 데이터..

DevOps/DevOps 2022.12.10

HTTP Message 구성 및 특징

HTTP - Hyper Text Transfer Protocol - HTML과 같은 문서를 전송하기 위한 응용계층 프로토콜 이다. - 웹 브라우저와 웹 서버의 통신에 사용됨 (서버와 클라이언트가 HTTP Messages 양식에 맞춰 요청 및 응답 실시) - HTTP는 특정 상태를 유지하지 않는 특징이 있다. (Stateless : 무상태성) HTTP Messages - HTTP Message는 요청(Requests) 과 응답(Responses)으로 구성되어 있다. - 구성파일, API (Application Programming Interface), 기타 인터페이스에서 HTTP Messages를 자동으로 생성한다. HTTP Messages 구조 - Start Line(요청), Status Line(응답)..

DevOps/DevOps 2022.12.08

클라이언트 - 서버 아키텍처 (2티어 아키텍처, 3티어 아키텍처, API)

우리는 평소 스마트폰 내 어플리케이션을 많이 사용합니다. 그 중 쇼핑몰 어플리케이션의 경우 인터넷을 통하여 쇼핑 품목을 확인 할 수 있습니다. 사용자 (Client)는 인터넷을 통하여 원하는 정보를 요청하고 제공자 (Server)는 마찬가지로 인터넷을 통하여 요청 받은 정보에 대한 응답을 합니다. 서버는 어플리케이션의 최신정보를 사용자에게 제공하게 되는데 리소스를 사용하는 어플리케이션 (사용자 입장)과 리소스가 존재하는 (서버)를 분리하여 2-Tier 아키텍처 (클라이언트 - 서버 아키텍처) 로 구성을 한다면 사용자의 별다른 업데이트 없이 서버의 최신정보 제공이 가능하게 됩니다. 서버의 역할은 리소스를 전달하는 것이며 리소스를 데이터베이스에 별도로 마련해 둔 형태를 3-Tier 아키텍처 라고 합니다. 클..

DevOps/DevOps 2022.12.06

리다이렉션, 파이프라인

* 리다이렉션(Redirection) - 표준스트림 (stdin, stdout, stderr)의 흐름을 파꿔 파일로 표준 입/출력을 할 수 있도록 합니다. - 리다이렉션 기호 1) > : 표준 출력 - 명령의 결과를 파일로 저장 (기존 파일 덮어쓰기) 2) > : 표준 풀력 (append) - 명령의 결과를 기존 파일에 추가 - 리다이렉션 실습 (표준 출력) 1. $ nano test.txt 를 통해 Hello World 텍스트를 입력한다. 2. $ cat test.txt > test2.txt를 입력한다. 3. $ test.txt 출력을 test2.txt에 입력한다. 4. $ cat test2.txt 로 데이터가 제대로 입력되었는지 확인한다. 위와..

OS/리눅스 2022.12.06

cron 데몬

* cron 데몬 실습 - cron 이란 스케줄에 따라 명령을 실행한다. - 어떤 프로세스를 특정 기간 또는 시간 마다 가동 시키고자 할때 사용한다. * mac OS 터미널에서 실습을 진행하였습니다. 참고 : https://f-dever-error-log.tistory.com/29 Mac OS 에서 crontab 사용 - 크롤러 크론탭으로 돌려보기 크론탭은 어떤 스크립트를 특정 기간 또는 시간 마다 가동시킬 때 사용하는 것으로 맥이나 리눅스에는 내장되어있다. 내 프로젝트에 크롤러가 있는데 나중에 크론탭으로 상태체크, 재실행 등을 f-dever-error-log.tistory.com 1. $ crontab -e => 새로운 crontab job을 등록 또는 기존 설정을 편집 한다. => 실행중인 크론탭이 ..

OS/리눅스 2022.12.02

리눅스 기본 명령어

리눅스 기본 명령어 pwd (Print Working Directory) - 현재 위치한 디렉토리 정보 출력한다. cd (change directory) - 경로 이동 - cd /User/name => User 디렉토리 내 name 디렉토리로 이동한다. - cd ../ => 상위 디렉토리로 이동한다. - cd or cd ~ => home으로 이동 가능하다. ls (List) - 현재 위치한 디렉토리 내 파일 목록 조회 - ls -l : 파일 상세정보 확인 가능 (권한, 생성자, 생성 날짜 등등) - ls -a : 숨김 파일 포함하여 조회 - ls -t : 파일 생성 시간순으로 표시 (최신 생성 파일 부터) - ls -rt : 파일 생성 시간순으로 표시 (오래된 파일 부터) cp (Copy) - 파일을 복..

OS/리눅스 2022.12.01

클라우드 서비스에 대한 규모 확장의 종류 (수직확장, 수평확장)

서버의 클라이언트들에 대한 서비스를 제공할 때 상황에 맞게 규모를 확장해야 하는 경우가 있다. 1대의 컴퓨터로 서버의 역할을 수행할 때 서버가 감당할 수 없을 만큼의 큰 규모의 클라이언트가 동시에 서버에 접속하게 된다면 제대로된 서비스를 제공할 수 없게된다. 이때 규모확장을 고려하게 될것이다. 규모확장의 종류로는 수직확장과 수평확장이 있다. 수직확장이란 - 서버의 성능 (CPU, RAM, 스토리지, 네트워크 등)을 높이는 방법 - 장점 : 하나의 서버로 동작 가능한 정도의 수요를 보인다면 수직확장이 적절하다. - 단점 1. 수직적 규모 확장에는 한계가 존재한다 (가격, 성능 한계 등) 2. 장애 대응에 어려움이 있다. 아무리 고 성능의 하드웨어를 사용한다고 해도 하드웨어 고장 시 서비스가 중단되어 버린다..

DevOps/DevOps 2022.11.30

클라우드 서비스 개발 및 전달 프로세스 - DevOps 역할

* 클라우드 서비스 개발 및 전달 프로세스 ( CI/CD 파이프라인 (지속적 통합 / 지속적 전달) ) => 지속적 배포 (Continuous Deployment) = Plan -> Code -> Buile -> Test -> Release -> Deploy -> Operate => 지속적 배포 = 지속적 통합 (주로 Dev팀 역할) + 지속적 전달 (주로 Ops팀 역할) = 지속적 배포란, 모든 코드의 변경이 배포로 이어지는 것 => 지속적 통합 (Continuous Integration) = Code -> Build -> Test - 지속적 통합 단계에서 기능 테스트 및 버그 수정을 반복하며 안정적인 배포가 가능하도록 한다. => 지속적 전달 (Continuous Delivery) = Test -> ..

DevOps/DevOps 2022.11.30

전통적 소프트웨어 전달 방식과 클라우드 서비스 전달 방식의 비교

* 전통적 소프트웨어 전달 방식 특징 1. 출시기한을 정해놓고 소프트웨어를 완성 시킨다. - 폭포수(Waterfall) 모델이다. (순차적 소프트웨어 개발프로세스 이며 개발의 흐름이 지속적으로 흐르는 구조) - 출시 시점에 소프트웨어에 대한 신뢰성 및 안정성을 보장할 수 없다. (출시기한에 쫓겨 개발하게 되므로 갑작스러운 이슈에 대한 유연한 대처가 불가능하다. ) - 이를 해결하고자 베타 버전 등을 통한 안정성 테스트를 진행한다. 2. 사용자가 직접 프로그램을 다운받아 사용하며 버그가 수정된 어플리케이션을 사용하려면 수동으로 업데이트 및 재 다운로드를 해야함. - 버그가 수정된 어플을 사용자에게 전달하기 어렵다. - 이를 해결하고자 일부 어플리케이션은 자동 업데이트를 도입함. * 클라우드 서비스 전달 방..

DevOps/DevOps 2022.11.30
반응형