CS 및 면접 질문19 Code Deploy 작업 순서 CodeDeploy 사용을 위한 EC2 IAM 인스턴스 프로파일 생성 EC2 CdoeDeploy agent 설치 CodeDeploy 애플리케이션 생성 Github Action workflow를 위한 yml 파일 생성 CodeDeploy Action를 위한 appspec.yml, script 파일 추가 1. CodeDeploy 사용을 위한 EC2 IAM 인스턴스 프로파일 생성 가장먼저 AWS IAM에 들어와 역할 만들기 클릭 EC2 클릭하고 S3, CodeDeploy에 모든 권한 넣어주고 네이밍을 만들어 역할을 만들어준다. 배포 코드를 압축해 s3에 업로드하고, 해당 빌드 파일을 CodeDeploy를 통해 EC2로 배포할 것이라 두 권한을 부여해주는 것 이제 만든 IAM Role를 우리의 인스턴.. 2022. 9. 6. HTTP와 HTTPS의 차이점 🤔 HTTP(Hyper Text Transfer Protocol)이란? 서버/클라이언트 모델을 따라 데이터를 주고 받기 위환 프로토콜이다. HTTP는 인터넷에서 하이퍼텍스트를 교환하기 위한 통신 규약으로 80포트를 사용하고 있다. HTTP 서버는 80번 포트에서 요청을 기다리고 있고 클라는 80포트로 요청을 보내게 된다. 🔨 HTTP의 구조 => HTTP는 애플리케이션 레벨의 프로토콜로 TCP/IP 위에서 동작한다. => HTTP는 상태를 유지하지 않는 Stateless 프로토콜이며 Method, Path, Version, Headers, Body 등으로 구성되어 있다. 출처: https://mangkyu.tistory.com/98 하지만 HTTP는 암호화가 되지 않는 평문 데이터를 전송하는 프로토콜이라.. 2022. 8. 13. HTTPS 동작 방식 HTTPS란? HTTPS는 HyperText Transfer Protocol Secure의 약자이며 HTTP의 보안 버전이다. 이미치 출처 : https://mysterico.tistory.com/30 HTTPS는 TCP위에 SSL/TLS층을 추가하여 암호화 인증 및 무결성 보장을 통해 웹사이트를 안전하게 만들어주는 프로토콜이다. 이러한 HTTPS의 동작방식을 알아보기 전에 3가지 개념에 대해서 알아야 한다!! 1. 대칭키 💡 암호화와 복호화에 사용되는 키가 동일한 것 만약 클라이언트와 서버가 대칭키 방식으로 통신을 한다면 클라이언트도 대칭키를 가지고 있어야 한다. 이 경우는 클라이언트에게 키를 전달하는 것도 위험하고 클라이언트의 소스코드를 누구나 볼 수 있기 때문에 위험하다. 🤣 원거리에서 대칭키를 안.. 2022. 6. 27. SQL과 NoSQL의 차이 🦁 SQL (관계형 DB) 🔨 특징 데이터는 정해진 스키마에 따라 테이블에 저장된다. 데이터는 관계를 통해 여러 테이블에 분산된다. 데이터는 테이블에 레코드로 저장된다. 각 테이블마다 명확하게 정의된 구조가 있다. 해당 구조는 필드의 이름과 데이블 유형으로 정의된다. 때문에 스키마를 준수하지 않은 레코드는 테이블에 추가할 수 없다. 즉 구조에 맞는 데이터 형식만 추가할 수 있는 것!!! 🤹🏼 관계 하나이 테이블에서 중복없이 하나의 데이터만을 관리하기 때문에 다른 데이블에서 부정확한 데이터를 다룰 위험이 없어지는 장점이 있다. 🐸 NoSQL(비관계형 DB) 🔨 특징 스키마가 없다. 관계도 없다. nosql에서는 레코드를 문서라고 부른다. sql에서는 정해진 스키마에 따르지 않으면 데이터 추가가 불가능했는데.. 2022. 6. 27. Node.js 애플리케이션에서 모듈을 어떻게 사용하나요? 🧐 궁금증 브라우저에서는 다른 js파일을 불러올 때, html `script` 태그를 이용해서 불러올 수 있었다. 그렇다면 html이 없는 Node.js에서는 어떻게 다른 js 파일이나 모듈을 불러올 수 있는 걸까? 🐸 node.js modules node.js에서 모듈은 부품이다. 어플리케이션에 포함될 어떤 기능을 갖는 것의 집합 (함수, 파일), 등이 모듈이다. 🐣 외장모듈 개발자들이 만들어 놓은 것 npm으로 다운받고 required를 통해 사용할 수 있다. 🥚 내장 모듈 Node.js 설치할 때 제공되는 모듈 🐰 모듈 불러오기 const 모듈 담을 변수명 = required ("모듈이름"); node_modules에 저장되어 있는 모듈을 required(모듈)로 불러올 수 있다. node.js에는.. 2022. 6. 26. package.json파일이 왜 필요한가 ? 🦖 package.json 🤪 npm Docs에 써져있는 package.json You can add a package.json file to your package to make it easy for others to manage and install. Packages published to the registry must contain a package.json file. lists the packages your project depends on specifies versions of a package that your project can use using semantic versioning rules makes your build reproducible, and therefore easier t.. 2022. 6. 26. XSS에 대한 설명 XSS 란? XSS는 웹 해킹 공격 중 하나이다 Cross site scripting의 약자로 줄임말은 CSS이지만 이미 Cascading Style Sheets가 약어로 사용되고 있어 XSS라고 한다. XSS는 게시판이나 웹 메일 등 자바스크립트와 같은 스크립트 코드를 삽입하여 개발자가 고려하지 않은 기능이 작동하게 하는 치명적인 공 격이다. 사용자를 대상으로 한 공격이다. XSS 공격은 크게 3가지로 분류할 수 있다. XSS 공격유형 Reflected XSS ex) 아래와 같이 id를 입력하면 Welcome id !! 를 출력해주는 페이지가 있다고 가정 이 페이지에 간단한 스크립트를 삽입하면 별다른 필터링 없이 실행이 되는 것을 확인할 수 있다. 공격자는 이러한 취약점이 존재하는 페이지를 검색후 ,X.. 2022. 6. 22. 쿠키, 세션, 웹스토리지 차이 HTTP 프로토콜의 한계를 보안하기 위해 쿠키, 세션을 사용한다. HTTP 프로토콜 환경은 비연결지향(connectionless) , 무상태(stateless)한 특성을 가져서 요청만으론 서버가 클라이언트를 구별할 수 없다. 🎈비연결성(connectionless) HTTP는 먼저 클라가 요청을 서버로 보내면, 서버는 클라에 맞는 응답을 보내고 TCP/IP연결을 끊는다. HTTP 1.1에선 헤더에 keep-alive라는 값을 줘서 커넥션을 재활용한다. 😶무상태(stateless) 연결을 끊는 순간 클라와 서버의 통신이 끝나며 상태 정보를 유지하지 않는 특성이다. 🍘쿠키(Cookie) 클라이언트에 저장되는 키와 같이 들어있는 작은 파일 클라이언트의 상태 정보를 로컬에 저장했다가 참조 클라이언트에 300개까지.. 2022. 6. 22. setTimeout함수를 실행했을 때 일어나는 과정은? 🤔아래의 문장은 맞는 문장일까?? setTimeout(print, 3000); print 함수는 3초후 호출된다 ??? :: print 함수는 호출 시점이 정확히 3초후라는 걸 보장할 수 없어 틀렸다. 💨이벤트 기반 프로그래밍 이벤트? 이벤트는 사용자가 클릭하는 마우스, 입력하는 키보드 등의 행위가 이벤트이다. 우리는 이 이벤트의 대응해 맞는 행동을 취한다. 컴퓨터는 이 이벤트가 언제 발생할 지 모르지만 브라우저는 이를 감지할 수 있다. 때문에 우리는 브라우저에게 특정 이벤트 발생시 처리할 내용을 알려주고 이벤트 처리를 위임한다. 정리 :: 이벤트 기반의 프로그래밍에서는 어떤 이벤트가 발생할 때, 실행할 작업을 미리 등록해두는데, 작업 내용이 담긴 함수를 이벤트 핸들러라고 하며 브라우저에게 이벤트 처리를.. 2022. 6. 22. Nginx를 사용하는 이유 이미지 출처 :https://jp-hosting.jp/centos7-%EC%97%90-nginx-%EC%84%A4%EC%B9%98/ 🤪Nginx란 무엇일까? Nginx는 경량 웹서버이다. 클라이언트로부터 요청을 받았을 때 요청에 맞는 정적 파일을 응답해 주는 HTTP Web Server로 활용된다 Reverse Proxy Server로 활용하여 WAS 서버의 부하를 줄일 수 있는 로드 밸런서로 활용되기도 한다. 😝Nginx 프로세서 nginx는 Event-Driven 구조로 동작하기 때문에 한 개 또는 고정된 프로세스만 생성하여 사용한다. 비동기 방식으로 요청들을 Concurrency 하게 처리할 수 있다 위 그림에서 보면 요청이 들어오더라도 새로은 프로세스와 스레드를 생성하지 않는다. 따라서 프로세스와.. 2022. 6. 19. Javascript this란 무엇일까?? this란 뭘까?? Javascript에서 this는 쉽게 말하자면 누가 나를 불렀냐 라는 뜻입니다. 즉 선언이 아니라 this의 값은 함수를 호출하는 방법에 의해 결정이 된다는 뜻입니다 실행하는 동안의 할당에 의해 설정될 수 없고, 함수가 호출될 때마다 다를 수 있다. this의 이해 this의 값은 어떻게 변화할까? this가 어떤 값과 연결되는 지는 this의 바인딩을 통해서 확인해 볼 수 있다. 바인딩이란, this의 호출 방식에 따라서 this가 특정 '객체'에 연결되는 것이다. this의 바인딩은 일반 함수 내부, 메서드 내부, 생성자 함수 내부, Call, Apply, Bind를 통한 '호출 방식'으로 나눠서 살펴볼 수 있다. 일반 함수 내부에서의 this는 글로벌 객체와 바인딩된다. 메서드.. 2022. 6. 19. WAS와 WS의 차이점 WS (Web Server ) : 웹서버는 정적인 컨텐츠(html, css, Js)를 제공하는 서버이다. ex) Apache, Nginx WAS (Web Application Server) : WAS는 DB를 조회하거나 로직을 처리해야 하는 동적인 컨텐츠를 제공하는 서버이다. ex) Tomcat, Jeus 결국 둘의 차이는 어떤 타입의 컨텐츠를 제공하느냐의 차이이다. - WAS와 WS는 각각 독립적으로 존재가능하다. - 대부분의 WAS는 정적인 컨텐츠를 제공해주고 있기 때문에 웹 서버 없이 WAS만 존재할 수 있다. - WAS는 WS를 포함하는 개념이라고 볼 수 있다. 위에서처럼 WAS 자체로 웹 서버의 역할을 수행하기 때문에 무조건적으로 웹 서버를 앞단에 두어야 할 필요는 없다. 하지만 일반적으로 WS.. 2022. 6. 17. 이전 1 2 다음