본문 바로가기

CS지식/개발 상식

(12)
[CS지식 - 개발상식]devops란? 1. devops devops = Development + Operation 개발(development)담당자와 운영(operation)담당자가 연계하여 협력하는 개발 방법론 시스템 개발자와 운영을 담당하는 정보기술 전문가 사이의 소통, 협업, 통합 및 자동화를 강조하는 소프트웨어 개발 방법론 등장배경 이전 : 개발자가 개발을 완료하면 운영자에게 전달해야하는 루트가 있었음 개발을 완료하더라도 운영자를 통해 배포되어야 하고, 운영자는 개발자가 만든 프로그램을 이해하는 시간 필요 ▶ 이러한 상황을 타개하고자 나오 새로운 문화(환경) 데브옵스 적용이 가능한 툴을 묶어 하나의 체인 형식으로 모든 과정인 기획- 개발 -빌드 - 테스트- 배포 - 모니터링 - 산출물 - KnowledgeBase을 묶으 사용할 수 있..
[CS지식 - 개발상식] HTTP 메소드 1. HTTP 메소드 HTTP는 요청 메서드를 정의하여, 주어진 리소스에 수행하길 원하는 행동을 나타냄 각각의 메서드는 서로 다른 의미를 구현하지만, 일부 기능은 메서드 집합간에 서로 공유하기도 함 1-1. REST(Representational State Transfer) REST의 탄생 2000년도에 로이 필딩(Roy Fielding)의 박사학위 논문에서 최초로 소개됨 로이 필딩은 그 당시 웹(HTTP)설꼐의 우수성에 비해 제대로 사용되어지지 못하는 모습에 안타까워하며 웹의 장점을 최대한 활용할 수 있는 아키텍처로써 REST를 발표함 지원(Resource) : URI 행위(Verb) : HTTP Method 표현(Representations) ▶HTTP Method : REST를 지키면서 행위를 전달..
[CS 지식 - 개발 상식] 프레임워크 vs 라이브러리 1. 프레임워크(Framwork) 원하는 기능 구현에 집중하여 개발 할 수 있도록 일정한 형태와 필요한 기능을 갖추고 있는 골격, 뼈대 사용자는 이러한 프레임워크 위에 코드를 작성해 애플리케이션 개발 소프트웨어의 구체적인 부분에 해당하는 설꼐와 구현을 재사용 가능하도록 협업화된 클래스들을 제공 종류 및 예시) Java 서버 개발에 사용되는 Spring Python 서버 개발에 사용되는 Django, Flask 안드로이드 앱 개발에 사용되는 Android 아이폰 앱 개발에 사용되는 Cocoa Touch 웹 개발에 사용되는 Angular, Vue.js 등 자바 기반의 JSP를 위한 프레임 워크 Struts 루비로 작성된 MVC패턴을 이용하는 Ruby on Rails 1-1. 프레임워크의 장점 획일화 확장성 ..
[CS지식 - 개발 상식] 메모리 구조 1. 프로그램의 실행 의미 - 파일 시스템에 존재하던 실행파일이 메모리에 적재된다는 의미 - 프로그램이 CPU를 할당받고 명령을 수행하고 있는 상태 파일 시스템에 있는 실행 파일이 메모리에 적재될떄, 실행 파일 전체가 메모리에 올라가지 않음 ▶ 일부만 메모리에 올라가고 나머지는 디스크의 특정영역인 스왑 영역에 존재 2. 메모리구조 운영체제(OS)의 메모리구조 1. 커널 영역 : kernel은 운영체제의 핵심. 커널영역은 system call을 통해 커널모드로 전화해야 접근가능 2. 유저 영역 : Code, Data, Stack, Heap 4가지로 구성 → 가상메모리 OS Kerner Space : 드라이버 설치 Stack : 지역변수, 매개변수 메모리의 높은 주소에서 낮은 방향으로 할당 Free : 여유..
[CS 지식 - 개발 상식] Ajax & axios & fetch js에서 비동기 HTTP통신(클라이언트와 서버 간 데이터를 주고받는 것)을 위해 사용 되는 것들 1. Ajax Asynchronous JavaScript And XML의 약자 Javascript를 사용한 비동기 통신, 클라이언트와 서버간에 데이터를 주고 받는 기술 →Javascript에서 비동기 HTTP통신이 가능하도록 해줌 **비동기 HTTP : response와 request 비동기 식으로 다룰 수 있는 것 Ajax 프레임 워크 : Ajax를 이용해 개발을 손쉽게 할 수 있도록 여러가지 기능을 포함해 놓은 개발환경 가장많이 사용되는 프레임 워크 : Prototye, script.aculo.us, dojo, jQuery 2.axios 등장배경 - 기존 비동기 요청 : WEB에서 리소스를 비동기로 요청하..
[CS 지식 - 개발 상식] Web Server와 WAS의 차이 1. 정적 페이지(Static Pages)와 동적 페이지(Dynamic Pages) 1-1. 정적 페이지(Static Pages) Web Server는 파일 경로 이름을 받아 경로와 일칠하는 file contents를 반환 항상 동일한 페이지를 반환 ex)html, css, js, image파일과 같이 컴 퓨터에 저장되어 있는 파일 1-2. 동적 페이지(Dynamic Pages) 인자의 내용에 맞게 동적인 Contents반환 웹 서버에 의해 실행되는 프로그램을 통해 만들어진 결과물 2.Web Server와 WAS의 차이 2-1. Web Server 웹 브라우저 클라이언트로부터 HTTP요청을 받아 HTML문서나 각종 리소스(Resource)를 전달하는 컴퓨터 → 정적 컨텐츠를 제공하는 서버(WAS를 거치지..
[CS 지식 - 개발상식] TDD의미 및 장점 1. TDD(Test Driven Development)란? 테스트 주도 개발 반복 테스트를 이용한 소프트웨어 방법론 → 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현 짧은 개발 주기의 반복에 의존하는 개발 프로세스 2. TDD 개발주기 Red : 실패하는 테스트코드를 먼저 작성 Green : 테스트 코드를 성공시키기 위한 실제 코드 작성 Blue : 중복코드 제거, 일반화등의 리팩토링 수행 → 실패하는 테스트 코드를 작성할 때까지 실제코드를 작성하지 않는것 실패하는 테스트를 통과할 정도의 최소 실제코드를 작성해야함 → 이를 통해, 실제 코드를 명확하게 정의함으로써 불필요한 설계를 피할 수 있고 , 정확한 요구사항에 집중 할 수 있음 3. 일반 개발 방식 vs ..
[CS 지식 - 개발상식] 함수형 프로그래밍 1. 프로그래밍 패러다임 대표적으로 절차적, 개체지향, 함수형 프로그래밍 존재 크게 분류하면 명령형, 선언형 프로그래밍 명령형(Imperative) 프로그래밍 선언형(Declarative) 프로그래밍 정의 프로그래밍 상태와 상태를 변경시키는 구문의 관점에서의 연산을 설명 필요한 것이 어떤 것인지를 기술하는 것에 초점을 맞추는 프로그래밍 구조 분류 절차적 프로그래밍 (수행되어야 할 연속적인 계산 과정 포함) 객체지향 프로그래밍 (객체들의 집합으로 프로그램의 상호작용을 표현) 함수형 프로그래밍 (순수 함수를 조합하고 프로그램을 만드는 방식) 언어 C,C++, Java, Pascal, Ruby HTML, Lisp, Haskell, Prolog,SQL,XML 2. 함수형 프로그래밍 하나의 프로그래밍 패러다임으로..