반응형
반응형

📝유니티 게임엔진

유니티는 3D, 2D 게임 개발 환경을 제공하는 게임 엔진이다

 

📝대화형 프로그래밍

사용자가 일반 언어로 컴퓨터에게 지시하거나 시각적으로 프로그램을 조작하여 쉽게 코드를 생성하고 수정할 수 있도록 도와주는 방식입니다 또한 코드 블록을 중간 중간에 실행시켜서 결과를 보는 등 마치 컴퓨터와 대화를 하는 듯하며 초보자나 비전문가들에게 더 친숙하고 접근하기 쉬운 환경을 제공 누구나 간단하게 코딩을 시도할 수 있게 됩니다

→ Jupyter Notebook, Scratch 등... 제품 존재

 

📝임베디드

임베디드 소프트웨어는 하드웨어를 직접 제어할 수 있게 프로그래밍을 한 것 이다 → 드론, 무인기, 로봇 등...

 

📝워드프레스

PHP로 작성된 오픈 소스 웹사이트 도구(Contents Management System)입니다 간단히 말하면 손쉽게 블로그나 웹사이트를 만들 수 있는 도구 또는 플랫폼입니다.

 

📝소프트코딩

데이터를 상수로 입력하는게 아닌 동적으로 변화를 받을 수 있는 형식으로 코딩하는 걸 의미한다.

코드를 바꿔주지 않아도 값을 동적으로 요청해서 보내면 알아서 동적으로 바뀌기 때문에 동적인 것 즉, 사용자마다 달리 보인다든지 등에 사용하면 좋다

 

📝하드코딩

데이터를 코드 내부에 직접 입력하는 것 → final String Time = "시간" 이런식으로 바뀌지 않게 고정적으로 만들어서 사용한다

페이지를 변경할 때 바뀌는 부분을 하드코딩을하면 계속 바꿔줘야하는 문제점이 있다

 

📝가상환경

A라는 프로젝트는 node.js 16버전이 필요한데 B라는 프로젝트는 node.js 12버전이 필요한 경우 서로 환경을 분리 시켜서 영향을 안 받게 하면 개발할 때 버전 문제로 충돌이 일어날 일도 없고 나중에 Build하거나 프로젝트 공유 등 충돌 문제도 없을 것이다 따라서 각 프로젝트 별로 별개의 가상환경을 만들어놓고 사용하는 것이 정신 건강에 좋습니다

반응형
반응형

📝DOM

브라우저는 HTML 코드를 해석해 요소를 트리형태 구조화해 문서를 생성한다 이를 DOM이라고 한다 DOM을 통해 화면에 웹콘테츠들을 렌더링한다.

예를들어 DOM형태에 자바스크립트 동작이 추가되면(버튼 눌렀을때) DOM에 다시 추가해 다시 렌더링하는 구조

📝드라이버

하드웨어와 소프트웨어 간의 통신을 관리하는 프로그램이나 소프트웨어

 

📝스위프트

iOS와 MacOS를 개발하는 프로그래밍 언어

 

📝IPC

프로세스 간 통신을 의미

 

📝렌더링

HTML 코드를 화면을 통해 보여주는 것

 

📝업캐스팅 & 다운캐스팅

class Animal { }
class Dog extends Animal { }

Animal animal = new Dog();  // 업캐스팅
Dog dog = (Dog) animal;    // 다운캐스팅

부모인 Animal을 상속 받았기 때문에 Dog는 더 많은 기능을 가진다 부모 객체에 자식 객체를 할당하는 걸 업 캐스팅이라고한다그와 반대로 다운캐스팅은 업캐스팅 된 것을 자식 객체로 타입 변화 시키는 것을 의미한다

반응형
반응형

📝ITO (Information Technology Outsourcing)

Information Technology Outsourcing의 약자로 자체적으로 수행하던 IT 관련 업무를 외부 업체에 위탁하는 것을 의미한다 즉, A라는 업체에서 여력이나 능력이 안 되서 다른 업체인 C에게 해당 부분을 만들어달라고 요청할 경우 B라는 회사에서 ITO를 한다고 할 때 B는 A랑 C를 연결해주는 중계역할입니다

 

📝SI (System Integration)

System Integration의 약자로 다양한 IT 시스템이나 소프트웨어를 통합하여 하나의 통합된 시스템을 구축합니다 → 그냥 시스템구축하는 모든 과정이라고 생각하면 된다 [기획, 디자인, 개발, 테스팅 등...]

 

📝Flask

Flask는 약 27,000줄 밖에 안되는 가벼운 웹 개발 프레임워크이기 때문에 개발자가 거의 모든 것을 설정하고 세팅해야 하는 번거로움이 있습니다. 하지만 그만큼 자유롭죠 개발을 다양하게 할 수 있습니다

 

📝Django

Django는 Flask에 비해 10배나 무거운 프레임워크입니다.

필요한 사항 및 디렉토리 구조 등... 이미 거의다 개발되어 있는 표준이 더 명확합니다

표준이 명확하기 때문에 자유롭게 개발하는데에는 제약사항이 있을 수 있습니다

 

📝플러쉬

버퍼에있는 것을 강제로 뿌리는 것 (비워준다)

 

📝질의어 (쿼리문)

데이터에 접근하고 관리하기 위해 특수한 용도로 만들어진 프로그램 언어 → SQL

 

📝Pojo class

Getter과 Setter를 가진 단순한 자바 클래스

반응형
반응형

📝환경변수

Path에 절대경로도 가능하지만 경로값을 변수에 넣어서 Path값에 간단하게 적을 수도 있다

 

📝Path

운영체제가 어떤 프로세스를 실행시킬때, 그 경로를 찾는데 이용

예를 들자면 c:\aaa\bbb 라는 경로에 hello.txt라는 것이 있을 때 저 경로를 path 설정으로 해놓으면 cmd에서 바로 hello.txt를 쳤을 때 그 경로로 안 들어가도 바로 접근이 가능하다

 

자 간단하게 환경변수와 Path를 어떻게 이용하는지에 대해서 알아봅시다.

시스템 변수란 말 그대로 경로값을 간단한 변수로 바꿔서 표현하는 것입니다.

시스템 변수에 등록하면 js = C:\User\.... (경로)가 되는 것이고 이걸 Path영역에 간단하게 적을 수 있죠

이런 변수로 등록한 걸 쓰려면 %변수명% 이렇게 적어야합니다 저는 js로 했습니다. 또한 절대경로를 그대로 입력하셔도 상관 없습니다.

 

그러면 저게 지금 바탕화면 Nodejs라는 폴더에 있는 것인데 그 안에 console.js라는 걸 제가 만들어뒀습니다

cmd를 여시고 경로를 따로 이동 안 해도 console.js를 하면 실행이 됩니다

 

📝index.html

경로 설정을 안 해줘도 기본적인 메인 페이지로 나옵니다.

 

📝cmd 사용 이유

IDE가 없을 때 개발하기 위해 좀 더 세밀한 코딩과정이 필요할 때 → .class파일 생성 등... → 어차피 IDE 기능도 CLI로 구현한 것

반응형
반응형

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

 

 

 

반응형