반응형

이글의 동영상 강의

https://youtu.be/u5dwJv6jxWg

 

초간단 NodeJS 설치하기

 

NodeJS는 쉽게 설치할 수 있습니다.

설치하기

 

다운로드 | Node.js

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

  • 자신의 OS에 맞게 선택합니다.
  • LTS와 현재버전 둘 중에 하나를 선택하여 다운로드 받을 수 있습니다.
  • 우리는 LTS(Long Term Support, 장기 지원) 버전을 선택합니다.
  • NPM도 같이 설치가 됩니다.

nodejs download

  • 다운로드된 파일을 실행합니다.
  • Next를 클릭합니다.

Welcom to the Node.js Setup Wizard

  • 라이선스 동의합니다.
    Next를 클릭합니다.

  • 설치 위치를 지정합니다.
  • 디폴트로 설치를 진행 합니다.
    Next를 클릭합니다.

Destination Folder

  • Custom Setup을 설정합니다.
  • 디폴트로 진행합니다.
    Next를 클릭합니다.

Custom Setup

  • Tools for Native Module 설치 화면입니다.
  • 체크박스를 클릭해서 체크해주고, Next를 클릭합니다.
    필요한 tool들을 설치하겠다는 뜻입니다.
    Tools for Native Modules
  • Ready to Install Node.js
  • 설치 준비가 완료되었습니다.
    Install을 누릅니다.

Ready to install

  • 설치가 진행됩니다.

Installing Node.js

  • 설치가 완료되었습니다.

Completed the Node.js

  • 추가 Tool들을 설치하는 화면입니다. 아무키나 누릅니다.

Install Additional Tools for Node.js

 

설치 확인하기

  • cmd를 실행합니다.(windows key 옆 검색창에서 cmd로 검색)
  • node -v를 실행합니다.
  • 같이설치된 npm -v를 실행합니다.

version 확인

Nodejs 설치가 완료되었습니다.

수고하셨습니다.

반응형
반응형

nodejs

이글의 동영상 강의

https://youtu.be/1iaSSvS64Sw

 

Nodejs 뭐가 좋죠?

 

Nodejs는 Javascript Runtime 플랫폼입니다.

크롬 브라우저의 기반이 된 V8 자바스크립트 엔진으로 빌드되었습니다. 이 말은 V8 엔진의 탄생으로 말미암아 Nodejs가 나오게 되었다는 뜻이기도 합니다.

 

그렇다면 기존에도 사용하고 있었던 Javascript에 비해 Nodejs는 뭐가 좋은걸까요?

Nodejs의 핵심적인 장점 3가지는 아래와 같습니다.

 

1. Nodejs는 브라우저 없이도 실행이 가능합니다.

  • Javascript는 브라우저에서만 실행이 가능했었습니다.
  • 하지만 Nodejs가 나오면서 브라우저를 벗어나 단독으로 실행이 가능해졌습니다.
  • 이로인해 Backend 서버의 개발이 가능해졌습니다.
  • 현재는 서버개발에서 가장 많이 사용하는 언어 중 하나가 되었습니다.

Nodejs website

출처 : https://www.similartech.com/technologies/nodejs

 

NodeJs Market Share and Web Usage Statistics

See which Websites are using NodeJs and more market share statistics. Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js uses an...

www.similartech.com

  • Nodejs는 서버에서 고성능 IO처리를 위해 만들어졌기 때문에 속도가 빠릅니다.
    아래는 nodejs를 사용하는 website들입니다.
    이중 twitter.com은 traffic rank가 5위로 트래필이 많은 사이트인데도 불구하고,
    nodejs를 사용하여 원할하게 서비스를 하고 있습니다.

Top Websites using nodejs

2. Nodejs는 Javascript로 만들어졌습니다.

  • 요즘 가장 핫한 언어는 누가 뭐래도 Javascript입니다.
  • Frontend 개발에서 Javascript를 빼놓을 수 없습니다.
  • Angular, React, Vue등이 대표적인 Javascript 기반의 프레임워크입니다.
  • 이제 Nodejs를 사용하면 javascript로 Frontend와 Backend 모두를 개발할 수 있습니다.
  • 한 가지 언어로 양쪽 개발이 모두 가능하다는 것은 엄청난 메리트입니다.

Javascript

3. Nodejs는 NPM 오픈소스를 사용합니다.

  • NPM은 노드패키지매니저(Node Package Manager)입니다.
  • Node 기반으로 패키지를 만들어 https://www.npmjs.com/에 배포할 수 있습니다.
  • 이는 엄청난 크기의 오픈 소스 생태계를 만들었습니다.
  • 이 라이브러리들을 이용해 빠르게 개발을 할 수 있게 되었습니다.
  • 또한 사용이 편리한 이 컴퍼넌트들은 무료로 이용할 수 있습니다.
 

npm

Bring the best of open source to you, your team, and your company Relied upon by more than 11 million developers worldwide, npm is committed to making JavaScript development elegant, productive, and safe. The free npm Registry has become the center of Java

www.npmjs.com

npmjs.com

 

결론

Nodejs를 이용하면 javascript로 backend+frontend를 모두 개발할 수 있으며, 다양한 패키지들을 무료로 사용할 수 있습니다. 또한 처리속도도 빠르기 때문에 Enterprise 환경에서도 많이 사용되고 있습니다.

그리고, 다른 언어들에 비해 훨씬 적은 코드로 프로그램을 완성할 수 있습니다.

앞으로 한 동안은 nodejs를 많이 사용할 것 같습니다.

반응형
반응형

다음은 이 글의 동영상 강의입니다.

https://youtu.be/0YsMEPxi_wc

Github Desktop 5분컷 사용법

 

 

GIT 개념

여러곳에서 다른 컴퓨터로 개발을 하다보면 서로 소스가 맞지 않은 상황이 발생합니다.

소스 불일치

이때 GIT을 사용하면 소스를 여러곳에서 동기화 시킬수가 있습니다.

 

git 개념

여러사람이 동일한 프로젝트를 개발할 때도 Git을 통해 이런 문제를 해결할 수 있습니다.

 

github 초보자도 쉽게 사용할 수 있는 github desktop의 사용법을 알아보겠습니다.

 

Github 가입

우선 Git을 사용하시려면 아래 github 사이트에 가입을 해야합니다.

https://github.com/

 

GitHub: Where the world builds software

GitHub is where over 73 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and feat...

github.com

회원 로그인 후 Repository를 만들기 위해 Your repositories로 이동합니다.

Your repositories

New 버튼을 클릭하고 새로운 Repository를 만듭니다.

New Repository

Repository 이름 "test"로 입력하고 하단의 "Create Repository" 버튼을 클릭합니다.

Create a new repository

아래와 같이 test repository가 만들어졌습니다.

test repository

 

Github Desktop 설치

 

아래 사이트에서 github desktop을 download 합니다.

https://desktop.github.com/

 

GitHub Desktop

Simple collaboration from your desktop

desktop.github.com

다운로드 버튼을 클릭합니다.

download

설치가 완료되면 아래와 같이 github desktop이 실행됩니다.

github desktop

소스 clone

github.com의 repository에서 code 버튼을 클릭

repository code

clone에서 url을 copy합니다.

clone

github desktop에서 add 버튼을 클릭하고 clone repository를 선택합니다.

clone repository

URL 탭을 클릭하고, github.com에서 복사한 주소를 붙여넣기 한 후, clone 버튼을 클릭합니다.

이때 local path 변경도 가능합니다.

clone a repository

test repository가 로컬에 clone 되었습니다.

 

소스를 수정하고 commit 하고 push하기

Open in Visual Studio Code를 선택하면 VSCode가 실행됩니다.

clone된 test repository

README.md 파일을 수정하고 저장합니다.

README.md

github desktop에 가시면 변경된 파일이 아래와 같이 표시됩니다.

중간에 변경내용 요약해서 작성해 주시고 ("update README.md"),

아래 commit 버튼을 클릭합니다.

commit

push origin을 클릭하시면 서버에 소스가 upload 됩니다.

push origin

github.com에 가시면 변경된 내용을 확인 할 수 있습니다.

github.com 변경내역확인

변경 소스 받기

이번에는 다른쪽에서 소스가 수정되었을 경우 테스트를 진행합니다.

github.com에서 파일을 하나 추가하기 위해 Add file 버튼을 클릭합니다.

Add file

파일 내용을 입력 후 Commit 버튼을 클릭합니다.

edit text

test.txt 파일이 생성된 것을 확인할 수 있습니다.

test.txt

github desktop에서 fetch origin을 선택합니다.

fetch origin

1개의 파일이 commit 되었음을 표시해줍니다. Pull origin 버튼을 클릭해서 소스를 pull(땡겨옴) 합니다.

Pull

VSCode를 열면 새로 추가된 test.txt 파일을 확인할 수 있습니다.

test.txt

이상으로 github desktop의 기본적인 사용법을 알아보았습니다.

반응형
반응형

이 글의 동영상 강의입니다.

https://youtu.be/0w2xmQ8q--s

 

title

최종 소스는 github를 참고하시기 바랍니다.

https://github.com/CodeGearGit/react-electron

 

GitHub - CodeGearGit/react-electron: React + Electron Project - Basic Setting

React + Electron Project - Basic Setting. Contribute to CodeGearGit/react-electron development by creating an account on GitHub.

github.com

 

이전에 진행했던 05.React 프로젝트에 일렉트론을 추가하는 법 에 이어서

 

05.React 프로젝트에 일렉트론을 추가하는 법

동영상 강좌 https://youtu.be/o4ZjkibiD8A 리액트 프로젝트 만들기(create-react-app) npx create-react-app "프로젝트명"을 사용하여 React Application을 만듭니다. npx create-react-app react-electron 리액..

codegear.tistory.com

보다 더 개발이 편리한 형태로 환경 구축을 진행해 봅니다.
이 환경을 기반으로 일렉트론 실전 프로젝트를 진행할 예정입니다.

npx create-react-app을 이용해 react-electron이라는 React 프로젝트를 만듭니다.

npx create-react-app react-electron

프로젝트 폴더로 이동후 vscode(visual studio code)를 실행합니다.

cd react-electron code .

vscode의 터미널을 열고 yarn start로 프로젝트를 실행하여 프로젝트가 잘 작동하는지 확인합니다.

yarn start

프로젝트에 일렉트론 패키지를 추가합니다.

  • electron 패키지는 개발시에만 사용하므로 --dev 옵션을 사용합니다.
yarn add --dev electron

package.json에서 electron 관련 설정을 추가합니다.

  • "main": "src/main.js" --> 일렉트론의 entry point를 main.js로 설정
  • "electron": "electron ." --> 일렉트론 실행 스크립트
{ ... "main": "src/main.js", 
  ... "scripts": { 
       ... "electron": "electron ." 
       } 
  ... 
}

src/main.js를 다음과 같이 만듭니다.

  • 이때 리액트 화면을 일렉트론에서 보여주기 위해서,
  • win.loadFile을 win.loadURL("http://localhost:3000")로 변경합니다.
const { app, BrowserWindow } = require('electron') 
const path = require('path') 
function createWindow () { 
  const win = new BrowserWindow({ 
    width: 800, 
    height: 600, 
    webPreferences: { 
      nodeIntegration: true,
      contextIsolation : false
    } 
  }) 
  win.loadURL("http://localhost:3000")
} 
app.whenReady().then(() => { 
  createWindow() 
}) 
app.on('window-all-closed', function () { 
  if (process.platform !== 'darwin') app.quit() 
})

Electron과 React를 같이 실행하기 위해 다음 패키지를 추가합니다.

  • concurrently : 일렉트론과 리액트 프로세스를 동시에 실행하기 위해 사용합니다.
  • wait-on : 프로세스 동시 수행시 한개의 프로세스가 완료되기를 기다리다 완료된 후 다음 프로세스를 수행하게 만들어 줍니다.
yarn add --dev concurrently wait-on

package.json에 스크립트를 변경합니다.

  • start 스크립트 수행시 concurrently를 이용해 react와 electron을 같이 시작하게 합니다.
  • electron 스크립트는 react가 완료되길 기다린 후 실행하게 합니다.
"scripts": {
    "start": "concurrently \"yarn react-scripts start\" \"yarn electron\" ",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject",
    "electron": "wait-on http://localhost:3000 && electron ."
},

프로젝트를 실행합니다.

yarn start

이때 브라우저가 창이 먼저 뜨고 electron이 실행됩니다. 브라우저 창은 불필요하므로 띄우지 않도록 환경 설정을 합니다.

  • 루트 폴더에 .env 파일을 만들고, 다음 내용을 추가합니다.
BROWSER=none

다시 실행하면 다음과 같이 일렉트론에서 리액트를 실행한 화면이 나옵니다.

Electron with React

소스 코드 변경 후 화면이 바로 변경되는지 확인합니다.

  • App.js에서 다음 코드를
<p> Edit <code>src/App.js</code> and save to reload. </p>
  • 아래 코드로 변경합니다.
<p> Hello! World. </p>

파일을 저장하면 다음과 같은 화면이 보입니다.

  • 소스 변경시 자동 반영되는 것을 "hot deploy"라고 합니다.

hot deploy

변경된 화면은 다음과 같습니다.

Hello! world!

이상으로 일렉트론과 리액트를 이용한 개발환경 구성을 마쳤습니다.
리액트를 좀 아시는 분이라면 이 환경에서 편하게 개발을 하실 수 있습니다.

수고하셨습니다.

반응형
반응형

일렉트론 MySQL 연동

일렉트론에서 MySQL을 연동하여 데이터를 읽어오는 것을 배워봅니다.

 

이 글의 동영상 강의입니다.

https://youtu.be/3EqAud7cBGY

Database와 Data 생성

MySQL Workbench를 실행합니다.

아래 쿼리로 스키마를 생성합니다.

 

CREATE SCHEMA test;

사용자를 생성하고 권한을 설정합니다.

CREATE USER 'test'@'localhost' identified with mysql_native_password by 'test';
GRANT ALL PRIVILEGES ON test.* TO 'test'@'localhost';
flush privileges;

Workbench에서 Connection을 추가합니다.

New Connection

설정한 Connection으로 접속합니다.

Connection

테이블을 생성합니다.

CREATE TABLE IF NOT EXISTS `test`.`user` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `userid` VARCHAR(50) NULL,
  `username` VARCHAR(50) NULL,
  PRIMARY KEY (`id`))
ENGINE = InnoDB;

아래와 같이 생성된 테이블에 데이터를 입력합니다.

insert into test.user(userid, username) values ('codegear', '코드기어');
insert into test.user(userid, username) values ('ironman', '아이언맨');
insert into test.user(userid, username) values ('spiderman', '스파이더맨');

data 확인

일렉트론 Appllication 만들기

다음 스크립트로 일렉트론 Application을 만듭니다.

npx create-electron-app electron-mysql

mysql 사용을 위해 'mysql' 패키지를 설치합니다.

npm i mysql

src/index.html을 다음 코드를 입력합니다.

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <meta http-equiv="Content-Security-Policy" content="script-src 'self';">
    <title>Hello World!</title>
    <link rel="stylesheet" href="index.css">
  </head>
  <body>
    <h1>💖 Hello World!</h1>
    <p>Welcome to your Electron application.</p>
    <input type="button" id="btn" value="connectToMysql"/>
    <div id='users'></div>
    <script src='./function.js'></script>
  </body>
</html>

src/function.js를 만들고 다음 코드를 입력합니다.

const mysql = require('mysql');

function setInnerHTML(text) {
    const element = document.getElementById('users');
    element.innerHTML += '<div>'+text+'</div>';
  } 

document.getElementById("btn").addEventListener("click", ()=>{
    //ipc.send('getUsers');
    var connection = mysql.createConnection({
        host     : 'localhost',
        user     : 'test',
        password : 'test',
        database : 'test'
    });

    connection.connect();

    connection.query('SELECT * from USER', function (error, results, fields) {
        if (error) throw error;
        console.log('users: ', results);
        results.forEach(user => {
            setInnerHTML(user.username);
        });
    });

    connection.end();
})

application을 실행합니다.

npm start

"require is not defined" 오류를 확인할 수 있습니다.

require is not defined

src/index.js의 createWindow에 다음 내용을 추가합니다.

    webPreferences: {
      nodeIntegration: true,
      contextIsolation : false
    }

const createWindow = () => {
  // Create the browser window.
  const mainWindow = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      nodeIntegration: true,
      contextIsolation : false
    }
  });

Application을 다시 실행하면 아래와 같은 결과를 확인할 수 있습니다.

Completed!!!

반응형
반응형

title image

이 글의 동영상 강의입니다.

https://youtu.be/vjgI7MNNxsE

지난 시간에 아래와 같이 모델링한 내용으로 MySQL Workbench를 이용하여 테이블을 만들어봅니다.

모델링

  • 우선  MySQL Workbench를 실행합니다.
  • 상단 메뉴에서 File - New Model을 선택합니다.
    New Model
  • Schema에서 마우스 오른쪽 클릭 후 Edit Schema를 선택합니다.
    Edit Schema
  • Schema name을 변경합니다.
    Schema name 변경
  • Add Diagram을 더블클릭합니다.
    Add Diagram
  • New Table 아이콘을 선택합니다.
    New Table
  • 마우스를 다이어그램 내부에 클릭하면 Table이 생성 되고, 생성된 Table을 더블 클릭하면 Table 설정 창이 하단에 나타납니다.
    Table 설정
  • Table의 컬럼 정보를 아래와 같이 입력하면 다이어그램의 Table 정보가 아래와 같이 변경됩니다.
    Table명 : user
    id, INT
    username, VARCHAR(50)
    icon_url, VARCHAR(200)
    컬럼 정보 입력
  • photo table 정보도 아래와 같이 입력합니다.
    photo table
  • Foreign key 설정을 위해 스포이드 그림이 있는이 있는 1:n 아이콘을 선택합니다.
    1:n
  • 먼저 photo의 user_id 컬럼을 선택 후 user의 id 컬럼을 선택합니다.
    foreign key 선택
  • 아래와 같이 foreign key 가 연결 됩니다.
    foreign key 연결
  • 나머지 테이블도 아래와 같이 만듭니다.
    전체 테이블 다이어그램

다음은 만들어진 모델을 이용해 테이블을 생성합니다.

  • 메뉴에서 Database - Forward Engineer를 선택합니다.
    Forward Engineer
  • connection을 선택합니다.
    connection 선택
  • 첫 페이지 Option은 default로 선택합니다.
    Option setting
  • Select Object에 우리가 만든 table 4개가 선택된것을 확인 후 Next를 클릭합니다.
    Select Object
  • 생성된 SQL문을 확인하고, 전체 선택하여 복사(Ctrl+C)합니다.
    Review SQL
  • 메뉴의 홈아이콘을 클릭합니다.
    Home
  • test connection으로 연결합니다.
    database connection
  • 해당 Script를 붙여넣기 한 후, 실행 아이콘을 클릭합니다.
    script 실행
  • 하단 output에 테이블 생성 스크립트 실행 결과가 다음과 같이 나타납니다.
    스크립트 실행 결과
  • SCHEMA 창에서 test schema에 마우스 오른쪽 버튼을 클릭하여 Refresh All을 선택합니다.
    Refresh All
  • 아래와 같이 4개의 table이 만들어 진것을 확인할 수 있습니다.
    table list

이상으로 MySQL의 Workbench를 이용해서 모델링 실습을 해보았습니다.

 

반응형
반응형

MySQL 모델링 기초

이번시간은 인스타그램으로 모델링을 같이 진행합니다.

 

이 글의 동영상 강의입니다.

https://youtu.be/nEW9MsmEKF8

 

인스타그램은 아래와 같이 4개의 구성 요소로 이루어져 있습니다.(더 있을 수 있지만 나머지는 생략합니다.)

  • 작가(사용자)
  • 사진
  • 좋아요
  • 댓글

인스타

각 구성요소는 아래와 같이 데이터를 생성하게 됩니다.

  • 1명의 사용자가 여러개의 사진을 올릴 수 있습니다.
  • 1개의 사진에는 여러명이 좋아요를 누를 수 있습니다.
  • 1개의 사진에는 여러명이 댓글을 달 수 있습니다.

인스타 데이터 생성

실제 데이터가 들어가면 다음과 같은 형태가 됩니다.

  • 작가(사용자) 테이블에는 여러명의 사용자가 들어갑니다.
  • 사진 테이블에는 모든 사용자의 사진 정보가 들어갑니다.
  • 사진 테이블에는 사용자 한명의 여러 사진이 들어갑니다.
  • 좋아요에는 사진 아이디와 좋아요를 누른 사람의 아이디가 들어갑니다.
  • 댓글에는 사진 아이디와 댓글을 작성한 사람의 아이디가 들어갑니다.

데이터 예시

위의 정보를 이용하면 아래와 같이 테이블을 만들 수 있습니다.

테이블 설계

다음 시간에는 MySQL Workbench를 이용하여 모델링을 실습해보도록 하겠습니다.

반응형
반응형

Title

이 글의 동영상 강의입니다.

https://youtu.be/hOOiqk8Z1gQ

MySQL Workbench를 이용하여 가장 기본적인 Schema와 User를 생성하고, User에게 Schema의 권한을 주는법과, Schema에 Table을 생성하는 법을 알아보겠습니다.

우선 이전글에서 설치한 MySQL Workbench를 실행합니다.

MySQL Workbench

root 계정으로 접속

  • MySQL Connections 아래 Local instance MySQL의 root 계정으로 설정되어 있는 부분을 클릭하여 MySQL에 접속합니다. 
    Local Instance root connection

Schema 생성

  • 상단 아이콘 중 Database Icon을 클릭합니다. 
    Create Schema Icon
  • Schema 이름을 입력하고, Apply 버튼을 클릭합니다.
    Create Schema Info
  • 생성될 Schema의 review 화면이 나오면 확인 후 Apply 버튼을 클릭합니다.
    Schema Review
  • 다음창에서 Finish 버튼을 클릭합니다.
    Create Schema Appling

User 생성 및 Schema 권한 주기

  • 좌측 메뉴 중 Administration tab에서 "Users and Privileges"를 선택합니다.
    Left Administration Menu 
  • Add Account 버튼을 클릭합니다.
    Users and Privileges
     
  • Login Name과 Password를 입력한 후 상단 tab 메뉴 중 Schema Privileges를 클릭합니다.
    Input Login Name & Password


  • Schema Privileges에서 Add Entry를 클릭합니다.
    Click Add Entry
  • 앞에 생성한 test Schema에만 권한을 주기 위해 "Selected Schema"를 선택하고, 목록 중 "test"를 선택합니다.
    Select Schema
  • 해당 Schema의 전체 권한을 주기 위해 "Select All"을 클릭하고 "Apply"를 선택합니다.
    Click Select All

Connection 만들기

  • 홈화면으로 돌아와 MySQL Connections 옆의 +버튼을 클릭하여 Connection을 새로 만듭니다.
    New Connection
  • Connection 정보를 입력한 후 Test Connection을 클릭하여 확인합니다.
    Setup New Connection
  • 다음창에서 패스워드를 입력합니다.
    Enter password
  • "Successfully"라는 메시지가 나오면 연결에 성공하신것입니다. OK 버튼을 클릭합니다.
    Successfully connection
  • 다시 Setup 화면으로 돌아오면 OK 버튼을 클릭합니다.
    Setup OK
  • Home 화면에 새로운 Connection이 나타납니다. 그 부분을 클릭하여 접속합니다.
    Connection created
  • 왼쪽 메뉴 하단의 Schema tab을 클릭하면 default schema가 test로 나오는 걸 확인할 수 있습니다.
    default schema

테이블 만들기

  • test schema 아래 Tables에서 마우스 오른쪽버튼을 클릭한 후 "Create Table"을 클릭합니다.
    Create Table

다음과 같이 테이블 정보를 입력합니다.
Table Name : user
Column : id(INT), username(VARCHAR(45)), password(VARCHAR(45))
입력 후 "Apply" 버튼을 클릭합니다.

create table

  • Table script를 확인 후 Apply 버튼을 클릭합니다.
    confirm create table script
  • test schema의 tables를 확장하면 생성한 table을 확인할 수 있습니다.
    table list
  • 테이블명 "user"에서 마우스 오른쪽 버튼을 클릭한 후 "Select Rows - Limit 1000"을 클릭합니다.
    Select Rows
  • 다음과 같이 수행된 쿼리와 결과를 확인할 수 있습니다.

query & result

 

이상으로 MySQL에서 Schema 생성, User 생성과 권한 설정, Table 생성을 해 보았습니다.

반응형
반응형

Windows에 MySQL을 설치하는 방법입니다.

 

이 글의 동영상 강의입니다.

https://youtu.be/yZtub4AbbAo

 

mysql download

  • 구글에서 mysql download for windows로 검색합니다.

google 검색

  • 검색 결과창에서 "Download MySQL Community Server"를 선택합니다.
    download mysql
     
  • 다운로드 페이지에서 "Go to Download Page" 버튼을 클릭합니다.
  • "Download" 버튼을 클릭합니다.
    Installer Download
  • 로그인 창에서 "No Thanks, just start my download."를 클릭합니다.
  • download 된 파일을 클릭하시면 설치가 시작 됩니다.
    \Installer start
  • "Developer Default" 선택 후 "Next" 버튼을 클릭합니다.
    Setup Type 선택
  • Visual Studio Library 설치가 필요합니다. 설치가 안되어 있다면 설치 안내에 따라 진행하면 됩니다.
    Visual Studio Library 설치
  • Download 화면에서 "Excute"를 클릭합니다.
    Download
  • 다운로드가 진행됩니다.
    Status에 Error가 나올 경우 옆의 "Try again"을 클릭하여 다시 다운로드를 진행합니다.
    downloading
  • Download 완료 후 "Next" 버튼을 클릭하면 Install이 진행됩니다.
    Installation
  • Install이 완료되면 "Next" 버튼을 클릭하고 포트를 설정합니다.
    내용 변경없이 default로 설치하면 됩니다.
    port 설정
  • root 계정의 패스워드를 입력합니다.
    root password 입력
  • Windows Service 명을 확인합니다.
    변경없이 그대로 사용하면 됩니다.
    Windows Service Name
  • 다음화면에서는 환경 설정 내용이 적용됩니다.
    Apply Configuration
  • "Finish" 버튼을 클릭합니다.
    Router Configuration
  • Connect To Server에서 root password를 입력하고 "Next" 버튼을 클릭합니다.
    Connect to Server
  • 설치가 완료되고 MySQL Workbench가 실행됩니다.
    "Local instance MySQL57"을 클릭합니다.
    Workbench


  • 패스워드를 입력하고 "OK" 버튼을 클릭합니다.
    password 입력
  • Local instance에 접속이 되면 다음과 같이 화면이 나타납니다.
    Local instance 접속

    이상으로 MySQL 설치 및 Workbench 접속까지 진행을 해봤습니다.
반응형
반응형

이 글의 동영상 강의입니다.
https://youtu.be/7mpiKHkkVD4

 

JSON 기초 이론과 실습

 
요즘 가장 많이 사용하는 Data Type인 JSON에 대해 알아보고 실습을 진행합니다.
* 이 문서는 Mozilla의 MDN 사이트의 내용을 참고하여 작성하였습니다.
  https://developer.mozilla.org/ko/docs/Learn/JavaScript/Objects/JSON
 

JSON은 JavaScript Object Notation 의 약어입니다.

JSON의 특징

  • JSON은 문자열 형태로 만들어집니다.
  • 따라서 네트워크로 전송할 때 유용합니다. (객체 직렬화가 가능하기 때문)
  • JSON의 데이터에 Access하기 위해서는 문자열 형태를 JSON 객체로 변환해야 합니다.
  • Javascript에서는 기본적으로 JSON과 문자열의 상호 변환을 지원합니다.

JSON의 구조

  • JSON은 {} 로 감싸여 있는 구조를 갖고 있습니다.
  • 내부 데이터는 "Key : Value"의 형태로 구성되어 있습니다.
  • Key는 "name"로 만들어진 문자열을 사용함. 예) "id", "password"등
  • Value는 Javascript의 type 즉, 문자열, 숫자, 배열, Boolean등을 사용할 수 있습니다.
  • 아래는 예제 프로그램에서 사용할 샘플 JSON입니다.
{ 
  "squadName": "Super hero squad", 
  "homeTown": "Metro City", 
  "formed": 2016, 
  "secretBase": "Super tower", 
  "active": true, 
  "members": [ 
    { 
      "name": "Molecule Man", 
      "age": 29, 
      "secretIdentity": "Dan Jukes", 
      "powers": [ 
        "Radiation resistance", 
        "Turning tiny", 
        "Radiation blast" 
      ] 
    }, 
    { 
      "name": "Madame Uppercut", 
      "age": 39, 
      "secretIdentity": "Jane Wilson", 
      "powers": [ 
        "Million tonne punch", 
        "Damage resistance", 
        "Superhuman reflexes" 
      ] 
    }, 
    { 
      "name": "Eternal Flame", 
      "age": 1000000, 
      "secretIdentity": "Unknown", 
      "powers": [ 
        "Immortality", 
        "Heat Immunity", 
        "Inferno", 
        "Teleportation", 
        "Interdimensional travel" 
      ] 
    } 
  ] 
}

JSON Data에 접근하는 방법

  • Javascript에서는 아래와 같이 JSON 객체로 선언하면 사용이 가능합니다.
    (실무에서는 RESTAPI등을 호출하여 JSON 데이터를 가져오는 형태로 많이 사용합니다.)
const superHeroes = { 
      "squadName" : "Super hero squad",
      ...
}
  • 위 JSON을 다음과 같이 호출하여 사용합니다.
superHeroes.homeTown 
superHeroes['active']
  • 배열일 경우에는 "[index]"의 형식으로 사용 가능합니다.
    (index로 사용하는 숫자는 첫 번째가 0부터 시작됩니다)
superHeroes['members'][1]['powers'][2]

 

실습

프로젝트 생성 및 코드 작성

  • hero라는 이름의 폴더를 생성합니다.
mkdir hero
cd hero
  • VSCode에서 폴더를 오픈합니다.
  • 아래와 같이 index.html을 만듭니다.
<!DOCTYPE html> 
<html> 
  <head> 
    <meta charset="utf-8"> 
    <title>Our superheroes</title> 
    <link href="https://fonts.googleapis.com/css?family=Faster+One" rel="stylesheet"> 
    <link rel="stylesheet" href="style.css"> 
  </head> 
  <body> 
      <header> 
      </header> 
      <section> 
      </section> 
    <script> 
    const header = document.querySelector('header'); 
    const section = document.querySelector('section'); 
    </script> 
  </body> 
</html>
  • 아래와 같이 style.css를 만듭니다.
/* || general styles */ 
html { 
  font-family: 'helvetica neue', helvetica, arial, sans-serif; 
} 
body { 
  width: 800px; 
  margin: 0 auto; 
} 
h1, h2 { 
  font-family: 'Faster One', cursive; 
} 
/* header styles */ 
h1 { 
  font-size: 4rem; 
  text-align: center; 
} 
header p { 
  font-size: 1.3rem; 
  font-weight: bold; 
  text-align: center; 
} 
/* section styles */ 
section article { 
  width: 33%; 
  float: left; 
} 
section p { 
  margin: 5px 0; 
} 
section ul { 
  margin-top: 0; 
} 
h2 { 
  font-size: 2.5rem; 
  letter-spacing: -5px; 
  margin-bottom: 10px; 
}

프로젝트 실행

  • 우리는 프로그램 실행을 편하게 하기 위해서 VSCode의 확장 프로그램인 Live Server를 사용합니다.
    • VSCode의 extention에서 Live Server를 검색하여 설치합니다.
VSCode Extention LIve Server
  • VSCode의 탐색기에 index.html을 마우스를 우클릭하여 LIve Server를 실행합니다.
  • 브라우저가 실행되며 아래와 같이 실행됩니다.
Live Server Run
  • Live Server가 잘 작동하는지 확인하기 위해 아래와 같이 index.html의 header를 수정합니다.
<header>
    <h1>Heroes!!!</h1>
</header>
  • 다시 브라우저를 확인합니다.
    • 아래와 같이 Title이 나오면 정상입니다.
Live Server Test

JSON Data 가져오기

var requestURL = 'https://mdn.github.io/learning-area/javascript/oojs/json/superheroes.json';
var request = new XMLHttpRequest();
request.open('GET', requestURL);
request.responseType = 'json'; 
request.send();
  • Response가 왔을때 처리하는 코드를 아래와 같이 작성합니다.
request.onload = function() { 
  var superHeroes = request.response; 
  populateHeader(superHeroes); 
  showHeroes(superHeroes); 
}
  • 위의 populateHeader function의 Code를 아래와 같이 작성합니다.
function populateHeader(jsonObj) { 
  var myH1 = document.createElement('h1'); 
  myH1.textContent = jsonObj['squadName']; 
  header.appendChild(myH1); 
  var myPara = document.createElement('p'); 
  myPara.textContent = 'Hometown: ' + jsonObj['homeTown'] + ' // Formed: ' + jsonObj['formed']; 
  header.appendChild(myPara); 
}
  • 위의showHeroes function의 Code를 아래와 같이 작성합니다.
function showHeroes(jsonObj) { 
  var heroes = jsonObj['members']; 
  for (var i = 0; i < heroes.length; i++) { 
    var myArticle = document.createElement('article'); 
    var myH2 = document.createElement('h2'); 
    var myPara1 = document.createElement('p'); 
    var myPara2 = document.createElement('p'); 
    var myPara3 = document.createElement('p'); 
    var myList = document.createElement('ul'); 
    myH2.textContent = heroes[i].name; 
    myPara1.textContent = 'Secret identity: ' + heroes[i].secretIdentity; 
    myPara2.textContent = 'Age: ' + heroes[i].age; 
    myPara3.textContent = 'Superpowers:'; 
    var superPowers = heroes[i].powers; 
    for (var j = 0; j < superPowers.length; j++) { 
      var listItem = document.createElement('li'); 
      listItem.textContent = superPowers[j]; 
      myList.appendChild(listItem); 
    } 
    myArticle.appendChild(myH2); 
    myArticle.appendChild(myPara1); 
    myArticle.appendChild(myPara2); 
    myArticle.appendChild(myPara3); 
    myArticle.appendChild(myList); 
    section.appendChild(myArticle); 
  } 
}
  • index.html의 최종 소스는 아래와 같습니다.
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Our superheroes</title>
    <link href="https://fonts.googleapis.com/css?family=Faster+One" rel="stylesheet">
    <link rel="stylesheet" href="style.css">
  </head>
  <body>
    <header>
    </header>
    <section>
    </section>

    <script>
      const header = document.querySelector('header');
      const section = document.querySelector('section');

      let requestURL = 'https://mdn.github.io/learning-area/javascript/oojs/json/superheroes.json';
      let request = new XMLHttpRequest();
      request.open('GET', requestURL);
      request.responseType = 'json';
      request.send();

      request.onload = function() {
        const superHeroes = request.response;
        populateHeader(superHeroes);
        showHeroes(superHeroes);
      }

      function populateHeader(obj) {
        const myH1 = document.createElement('h1');
        myH1.textContent = obj['squadName'];
        header.appendChild(myH1);

        const myPara = document.createElement('p');
        myPara.textContent = 'Hometown: ' + obj['homeTown'] + ' // Formed: ' + obj['formed'];
        header.appendChild(myPara);
      }

      function showHeroes(obj) {
        const heroes = obj['members'];

        for(let i = 0; i < heroes.length; i++) {
          const myArticle = document.createElement('article');
          const myH2 = document.createElement('h2');
          const myPara1 = document.createElement('p');
          const myPara2 = document.createElement('p');
          const myPara3 = document.createElement('p');
          const myList = document.createElement('ul');

          myH2.textContent = heroes[i].name;
          myPara1.textContent = 'Secret identity: ' + heroes[i].secretIdentity;
          myPara2.textContent = 'Age: ' + heroes[i].age;
          myPara3.textContent = 'Superpowers:';

          const superPowers = heroes[i].powers;
          for(let j = 0; j < superPowers.length; j++) {
            const listItem = document.createElement('li');
            listItem.textContent = superPowers[j];
            myList.appendChild(listItem);
          }

          myArticle.appendChild(myH2);
          myArticle.appendChild(myPara1);
          myArticle.appendChild(myPara2);
          myArticle.appendChild(myPara3);
          myArticle.appendChild(myList);

          section.appendChild(myArticle);
        }
      }
    </script>
  </body>
</html>

 

최종 실행 화면

  • 문제 없이 실행 되었을 경우 아래와 같은 화면을 보실 수 있습니다.
최종 화면

 
이상으로 JSON에 대해서 알아보고 간단한 실습을 수행하여 보았습니다.
JSON은 어려운 문법이 아니고 많이 사용하고 있습니다.
사용법을 잘 익혀 두시면 프로그램 개발시 많은 도움이 될것입니다.

반응형

'자바스크립트' 카테고리의 다른 글

Javascript 기초 문법  (0) 2021.12.12

+ Recent posts