반응형
반응형

📝AWS(Amazon Web Service)

Amazon에서 서버 호스팅을 해주는 업체

 

📝시스템 가상화

물리적 자원을 추상화(단순하게)해 논리적 자원 형태로 표현 대상을 단수화 하기 위해 추상화 즉 논리화를 한다.

예) AMD, Intel → CPU

 

📝가상화 대상

물리적 서버 하나에 가상의 시스템 여러개 구성 (여러 운영체제가 분리되어 있음)

 

📝VM

가상머신으로 CentOS 따위처럼 또다른 운영체제를 만들어서 사용한다 따로 서버를 구축하는 것이기 때문에 보안엔 좋고 용량이 크다

→ 윈도우에서 리눅스 환경을 구축하는 행동

 

📝하이퍼바이저

단일 물리적 머신에서 여러 가상 머신을 실행하는 데 사용할 수 있는 소프트웨어 → VMware, Oracle VM 등...

 

 

 

 

 

 

📝베어메탈기반 가상화

호스트 OS[메인 OS]가 없거나 최소한으로만 있다

하드웨어에 하이퍼바이저만 설치하고 그 위에 운영체제를 설치한다 → 하드웨어에 가깝기 때문에 "메탈"

하이퍼 바이저가 메인 OS처럼 운영체제를 처리하기 때문에 속도가 호스트 기반에 비해 상대적으로 빠르다

→ VMware ESX, XenServer

 

📝호스트기반 가상화

메인 OS가 존재하고 그 위에 하이퍼바이저를 설치 해 가상화를 한다

베어메탈에 비해 상대적으로 느리다

→ VMware Workstation / VMware Player

 

📝IDC

IDC는 Internet Data Center의 약어로 인터넷 데이터 센터를 가리킵니다

데이터 센터는 대규모의 컴퓨터 시스템과 네트워크 장비, 저장장치, 전력 및 냉각 시스템 등을 호스팅하는 시설입니다

IDC는 주로 웹 호스팅, 클라우드 서비스, 온라인 서비스, 대용량 데이터 저장 등과 관련된 서버와 네트워크 인프라를 제공합니다

반응형
반응형

📝버전관리 = 형상기억

기능 추가로 프로그램이 바뀔 때 버전이 바뀐다고 한다 [버전1 → 기능 추가 → 버전1.1]

예를 들어 RPG게임을 만들어서 1.0버전이라고 뒀다 그 게임에 여러 기능을 추가 및 삭제 한 버전이 1.1버전 이런식이 되는 것이다.

만약 1.1버전이 문제가 생겨서 1.0버전으로 돌아가야할 경우 따로 보관해야하고 복잡하지만 이걸 버전 관리 시스템이 따로 관리 해줘서 1.1버전에서 1.0버전 또는 1.0버전에서 1.1버전으로 편하게 드나들 수 있다.

 

📝버전 관리 시스템

버전 관리를 지원해주는 시스템이다 → Git, SVN

 

📝중앙집중형 시스템

저장소가 서버에 있어서 서버와 연결이 끊어지면 기존 받아둔 소스 수정 이외의 일(이전 로그를 본다던지...)을 못한다SVN

 

📝분산형 버전관리 시스템

모든 개발자가 각자의 저장소를 가지고, 각자 저장소에서 여러가지 작업을 한 뒤 한번에 서버에 반영 가능
오프라인 환경에서도 로컬저장소에 Commit하면 되고 로그를 볼 수 있다 → Git

 

📝SVN

Subversion (SVN)은 버전 관리 시스템 중 하나로, 소스 코드 및 다른 종류의 파일의 변경 이력을 관리하고 추적하는 데 사용 소프트웨어 개발 프로젝트에서 협업과 소스 코드 관리를 향상시키기 위해 널리 사용 다수의 사용자가 동시에 작업하고, 변경사항을 추적하며, 필요한 경우 이전 버전으로 롤백할 수 있는 기능을 제공

반응형
반응형

📝텐서플로

구글에서 만든, 딥러닝 프로그램을 쉽게 구현할 수 있도록 다양한 기능을 제공해주는 라이브러리

텐서플로 어렵지만 디테일하다는 특징이 있습니다.

 

📝케라스 

텐서플로위에서 동작하고 특정한 일에 좋습니다 (이미 만들어진 라이브러리)

OCR, 이미지 분류, 손금 분석 등...

 

📝OCR 

이미지 속에 있는 글자를 읽는 기술

OCR에 필요한 기술 → 오픈소스 기반의 tesseract(테서랙트)는 다양한 운영 체제를 위한 광학 문자 인식 엔진

 

📝NumPy

("넘파이"라 읽는다)는 행렬이나 일반적으로 대규모 다차원 배열을 쉽게 처리 할 수 있도록 지원하는 파이썬의 라이브러리이다. NumPy는 데이터 구조 외에도 수치 계산을 위해 효율적으로 구현된 기능을 제공

 

📝선형회귀분석

Input변수(X)를 기반으로 output변수(Y)의 값을 알아내고자 하는 통계적 모델을 만드는 것

 

 

 

반응형
반응형

📝비즈니스 로직

로그인하고 난 후 XXX님 로그인 하셨습니다 라는 과정을 만드려고 합니다. 

일단 아이디 비밀번호를 받아와 DB에 있는 아이디 비밀번호랑 맞는지 확인하고 그에 대한 정보(여기에서는 이름)을 가져와서 웹 페이지에 보여주게 하는 과정 이러한 로직들이 필요하죠

이러한 로직들을 비즈니스 로직이라고 합니다. (쉽게 말해서 프로그래밍의 과정을 말로 표현 한 것)

 

📝API

Application Programming Interface의 약자로 작업을 편리하게 해줍니다.

STL(라이브러리) , 카카오API(카카오 기능을 사용할 수 있게함) 등이 있습니다.

 

📝NGINX

NGINX는 웹서버로 정적파일 로딩과 로드밸런서 정적파일을 빠르게 로딩하기 위함입니다.  

보안 때문에 앞단에 웹서버 두고 방화벽 뒤에 WAS 놓고방화벽 뒤에 DB 놓는 구성을 많이 합니다. 
물론 DMZ - WAS - DB 존 망분리 다 해놓습니다.

 

📝WSGI server

WSGI server는 많은 request들을 다룰 수 있도록 설계되어 있습니다. (Gunicorn 등이 있습니다.)

WSGI server로 넘어온 동적처리들을 처리할 수 있는 WSGI application으로 넘기는 작업을 합니다.

Web서버가 받은 호출을 Python 어플리케이션에게 전달하고 응답받기 위한 호출조약입니다.

파이썬의 Web Server → Apache와 동일한 기능

 

📝WSGI application

Flask, Django같은 웹프레임워크를 의미합니다

파이썬의 WAS Server → Tomcat와 동일한 기능

반응형
반응형

📝유닉스

운영체제 코드가 공개되어 있지 않아 버그 이슈 같은 경우 IBM사에서 일괄 관리합니다. 

그래서 더욱 비싸지만 전문가들이 관리하기 때문에 전문적으로 처리가 가능합니다.

 

📝리눅스

리눅스는 컴퓨터 운영체제 중 하나입니다. GNU 프로젝트에 따라 쉽게 이용할 수 있게 배포됩니다.

 

📝리눅스 사용 이유

  1. 기계어에 가깝기 때문 적은 메모리 빠른 제어 가능
  2. 서버 운영체제로서 적합 (멀리 있는 곳을 원격으로 제어해야할 때 윈도우의 경우 엄청난 메모리를 먹지만 리눅스같은 경우는 그렇지 않다) 

 

📝GNU 프로젝트

GNU's not Unix의 약자입니다. 유닉스와 호환이 되면서 더 강력한 운영체제를 만들고자하는 프로젝트입니다.

리누스가 만든 리눅스를 도와서 리눅스를 완성시켰다.

 

📝GPL

리눅스를 완성시키고 그에 대한 규칙들을 정했는데 그걸 GPL이라고 한다.

  1. 소스 코드를 용도에 따라 변경할 수 있다.
  2. 프로그램 실행 복사본은 언제나 프로그램의 소스 코드와 함께 판매하거나 무료로 배포해야한다.
  3. 변경된 프로그램 소스 코드를 반드시 공개 배포해야한다.

 

📝우분투

우분투는 데비안(Debian) GNU/리눅스를 기반 리눅스 배포판입니다.

우분투의 개발은 남아프리카 공화국의 사업가이자 캐노니컬의 CEO인 마크 셔틀워스 의해 시작했습니다.

 

📝우분투의 특징

  1. 개인용, 데스크탑 환경에 최적화 대부분의 리눅스 배포판들이 서버용으로 사용되고 있는것에 반하여,우분투는 개인 사용자와 데스크탑 환경에 최적화 되도록 사용자 편의를 중점으로 개발되고 있습니다.
  2. 자유 소프트웨어에 기반으로 앞서 소개한 리눅스의 특징을 그대로 물려 받으며 자유 소프트웨어에 기반하기 때문에 누구나 무료로 다운 받아서 사용할 수 있습니다.

 

📝데비안

리눅스기반으로 만들어진 운영체제입니다. 데비안은 안정성에 중점을 둔 운영체제라서, 안정성의 검증이 덜 된 최신의 패키지는 사용하지 않거나 안정성이 어느 정도 검증된 예전 버전을 이용하는 경우가 많습니다.

 

📝데스크탑버전 vs 서버버전

  • 데스크탑버전
    • 개인이 사용할만한 패키지를 포함합니다
    • 기본적으로 GUI환경이며 오피스 제품들, 동영상 플레이어, 음악 플레이어등을 기본적 패키지로 제공합니다.
  • 서버버전
    • 가장 기본적인 패키지를 포함한체 서버 운영에 필요한 패키지를 설치시 선택하게 되어있습니다
    • 기본적으로 포함할법한 것들도 포함되어있지 않기 때문에 하나하나 설치해야한다.

 

 

 

반응형
반응형

📝Java SE

Standard Edition의 약자로 기본적인 프로그래밍을 다 지원합니다.
Java SE는 Java Software Development Kit(SDK)으로 구현합니다.

데스크톱, 서버, 임베디드시스템 등을 위한 표준 자바 플랫폼입니다.

📝Java EE

Enterprise Edition 기업에서 사용할 때 이 에디션을 구매해서 사용한다 

서버에서 모듈 기반 지원이나 분산 멀티미디어 등등 기업적인 측면 기능들을 지원합니다. (서버 애플리케이션 웹개발자들이 사용하는 배포판)
JAVA SE에 서버측을 위한 기능을 부가하였기 때문에 SE기능을 모두 포함한다.

📝Java ME

Micro Edition의 약자로 임베디드 시스템에서 자바로 프로그램을 개발할 때 이용합니다.

 

📝JDK

Java Dveloplment Kit의 약자 자바 개발 키트
개발에 필요한 것들이 들어있습니다  → JRE + 컴파일러나 javadoc jdbc..

 

📝JRE

Java Runtime Enviroment의 약자자바 실행 환경 자바로 만들어진 프로그램으로 JVM이 들어있다고 생각하시면 됩니다.

반응형
반응형

📝SQLite

주로 소규모 프로젝트에서 사용하는 가벼운 파일을 기반으로한 데이터베이스입니다. 

보통은 SQLite로 개발을 빠르게 진행하고 실제 운영 시스템에 반영할 땐 좀 더 규모가 큰 데이터베이스를 사용 합니다.

응용프로그램이 파일을 읽어서 테이블에 CRUD따위의 작업을 한다

📝127.0.0.1과 localhost

127.0.0.1과 localhost는 현재 컴퓨터를 가리키는 아이피 주소이다.

 

📝ORM

데이터베이스와 객체 지향 프로그래밍 언어간의 호환되지 않는 데이터를 변환하는 프로그램 기법 객체 관계 매핑이라고도 한다. 

즉, 객체 지향 프로그래밍 언어로 작성한 걸 DB에서 읽을 수 있는 걸로 매핑시켜주는 것DB도 객체 지향적으로 개발이 가능 ( DB쿼리문 작성 등을 해당 언어로 할 수 있게 해준다)

 

💗 ORM 장점

  1. 완벽한 객체 지향 코드로서 직관적인 이해가 쉽다 → SQL이 아닌 클래스 메서드를 통해 DB를 조작할 수 있어서 프로그래밍에 집중할 수 있게한다.
  2. 재사용 유지보수, 리팩토링이 용이하다 SQL문이 아닌 프로그래밍을 통해 작성하기 때문에 용이하다
  3. DBMS 종속성 하락 SQL 자동생성은 물론 객체의 자료형 타입까지 사용할 수 있기 때문에 DBMS를 교체 하는 작업에 리스크가 적고 드는 소요 시간도 줄어든다

⚠️ ORM 단점

  1. 모든 것을 ORM으로만 해결할 수는 없다 프로젝트가 복잡할수록 실수를 만들 수 있고 대형 SQL문은 속도를 위해 별도 튜닝이 필요해 SQL을 써야할 수도 있다.

 

📝알고리즘

문제 해결을 위한 방법들입니다.

예를 들자면 지하철역으로 가는 문제를 해결하기 위해서는 걸어가는 방법 또는 차를 타고 가는 방법 또는 버스를 타고 가는 방법 등이 있는데 이러한 것들을 알고리즘이라고 합니다.
우리들은 거기중에서 가장 효율적인방법 (고객이나 본인이 원하는 방법)을 찾아야합니다
어떤 사람은 비용 상관없이 빨리 도착하는 방법이 중요할테고 어떤 사람은 시간이 걸리더라도 비용이 적게 드는 방법을 원하니
그에 맞는 알고리즘을 찾는 게 중요합니다. 

정답은 없습니다만 잘못된 방법은 있죠

 

📝자료구조

알고리즘을 해결하기 위해서 필요한 재료같은 거라고 생각하면 됩니다.
많이 아시는 배열, 리스트, 튜플, 컬렉션프레임워크 등이 해당됩니다.

자료를 담는 공간이라고 생각하시면 편합니다.

반응형
반응형

📝자바스크립트

HTML을 동적으로 움직이게 하는 언어의 종류 요즘은 데스크톱 애플리케이션 개발, 게임등 여러 개발에도 사용

 

📝Nodejs

JavaScript를 크롬(Chrome)같은 브라우저에서만 쓰는 것이 아닌 브라우저 밖. 즉, 컴퓨터에서 다양한 용도로 확장하기 위해 만들어진 것이 바로 Node.js이다.

 

Node.js를 이해하려면 먼저 Javascript를 배워야 한다.

그 이유는 Node.js는 Javascript 기반으로 개조하여 만들어졌기 때문입니다.

 

Javascript를 웹 브라우저에서 독립시킨 것으로 Node.js를 설치하게 되면 터미널프로그램(윈도우의 cmd, 맥의 terminal 등)에서 브라우져 없이 Javascript를 실행할 수 있습니다.

하지만 Javascript에서 분리된 언어이기 때문에 문법은 같습니다.

 

이렇게 Node.js를 이용하여 웹브라우져와 무관한 프로그램을 만들 수 있게 되었고, 중요한 것은 Node.js를 이용하여 서버를 만들 수 있다는 것입니다.

중요한 이유는 이전까지 Server-Clint 웹사이트를 만들 때 웹에서 표시되는 부분은 Javascript를 사용하여 만들어야만 했으며, 서버는 Ruby, Java 등 다른 언어를 써서 만들어야 했는데, 마침내 한가지 언어로 전체 웹페이지를 만들 수 있게 된 것

 

📝디버깅

프로그래밍에서 잘못된 부분을 찾는 것

 

📝프레임워크

효율적으로 구조를 짜놓는 개발 방식 웹 응용 프로그램을 개발하기 위해 프레임워크가 반드시 필요한 건 아니지만

작업 속도를 크게 높이고 단순화 장점이 있다

 

아주 간단하게 이야기하자면 조립식 컴퓨터를 살 때 부품을 사잖아요 근데 부품은 여러가지 회로들로 만들어진 건데

이렇게 만들어진 부품가지고 내가 필요한 거를 써서 조립해서 쓰는 걸 프레임워크라고 생각하시면 됩니다.

내가 회로를 만들어서 RAM만들고 이런식이면 엄청 오래걸리고 실수할 확률도 늘어나잖아요 그게 프레임워크에 장점입니다.

 

라이브러리와의 차이점은 내가 통제할 수 있다는 것(물론 한정된 범위가 존재 → 메뉴얼대로 하는게 좋다)입니다.

 

📝라이브러리

두 지점의 위도와 경도를 가지고 거리를 측정하는 함수를 직접 만드는 것보다 이런 자주 쓰는 걸 모듈화 해 제공해주는 것을 말합니다. 이러한 것들은 공신력있고 검증이 되었기 때문에 내가 임의로 만들어서 사용하는 것보다 훨씬 빠르고 정확할 가능성이 매우 높습니다.

프레임워크랑 차이점은 내가 통제할 수 없습니다 (Git에 올라간 경우 Fork를 이용해 내가 수정해서 사용할 수도 있다)

 

반응형
반응형

 

📝 URI

URI는 리소스의 이름만 나타낸다.

예를 들면 www.naver.com 처럼 프로토콜 방식도 안 적혀 있는 자체를 의미한다.

 

📝 URL

URL은 프로토콜 방식과 URI를 포함한다.

예를 들면  https://www.naver.com 처럼 HTTPS 라는 프로토콜 방식www.naver.com 이라는 URI 이름을 가지고 있다

 

📝 URN

메인 도메인을 제외한 부분을 의미한다

EndPoint이라고 생각하면 된다. 

 

📝 REST API

웹에 존재하는 모든 자원(이미지, 동영상, DB 자원)에 고유한 URI를 부여해 활용 [API서버 중에서 REST방식을 잘 따르는 API] HTTP Method + 모든 개체 Resource화 + URL 디자인 (라우팅)

 

  • HTTP Method
    • HTTP방식(POST, GET, DELETE, PATCH)을 통해 해당 자원에 대한 CRUD를 적용 한 것
  • 모든 개체 Resource화
    • 요청시 Response로 돌려줄 개체의 값들 → Json, XML
  • URL 디자인 (라우팅)
    • 요청할 HTTP URL 주소

예시로 https://192.168.0.40/user의 URL을 통해 GET방식으로 호출할 때 Json형식으로 user에 대한 정보를 보내준다

 

📝 RESTFul

Rest API 설계 규칙을 올바르게 지킨 시스템을 Restful하다 한다

 

📝 SOAP

데이터를 주고 받는 규약으로서 XML으로 작성한다.

데이터를 주고 받을 때 XML 작성 → WSDL로 정의 → UDDI에 등록 → UDDI등록된 프로토콜 기반 호출 → 데이터 획득

 

  • WSDL
    • 웹 서비스를 기술한 언어로 XML을 작성할 때 규약이다 안에는 보낼 데이터에 대한 규약따위가 들어있다
    • 예를 들면 HTTP통신할 때 Header에 들어갈 때 Content-Type이 Application/json 이런식으로 설정하는 것과 같다. json으로 표현하자면 이런 형식인 것이다. { "name" : "lee" }
  • UDDI
    • WSDL로 정의되면 UDDI라는 곳에 등록되어 호출해서 데이터를 받아갈 수 있게 한다.

 

 

🔗 참고 자료 및 출처

https://www.elancer.co.kr/blog/view?seq=74 

 

URI와 URL, 어떤 차이점이 있나요? | 이랜서 블로그

uri와 url, 비슷한 듯 다른 it 용어, 어떤 차이점이 있는지 확인하기 | uri url 차이, uri 뜻, uri 란, uri url urn, uri vs url

www.elancer.co.kr

 

반응형