Variable(변수)

 

Javascript에서 변수의 종류는 3가지이다.

 

var, let, const

 

ES6등장부터 let, const가 추가되었으며, 그 전에는 var 한개뿐이였습니다.

 

let 과 const가 등장한 이유는 var가 너무 유연한 변수이기 때문입니다.

 

보통 프로그램 언어에서 변수는 선언 -> 초기화 -> 할당 이 3단계가 기본적이나 

var는 선언을 생략할 수 있으며, 중복하여 선언도 가능하며 변수 호이스팅으로 인해 선언과 초기화가 동시에 이루어집니다.

 

그래서 이 문제를 해결하고자 나온것이 let, const입니다.

 

다시 정리하면

1. var (변수 재선언 가능 ) : function-level-scope

2. let (변수 재선언 불가능, 변수 재할당 가능) : block-level-scope

3. const (변수 재선언 불가능, 변수 재할당 불가능) : block-level-scope

 

예를 들면

 

{
	var age1 = 20;
}
console.log(age1);
//20찍힘

{
	let age2 = 20;
}
console.log(age2);
//Uncaught ReferenceError: age2 is not defined

'JS > Javascript' 카테고리의 다른 글

5. JavaScript 반복문  (0) 2020.10.03
4. JavaScript 조건문  (0) 2020.10.03
3. JavaScript 연산자  (0) 2020.10.03
1. JavaScript 소개  (0) 2020.09.16

1993년 NCSA의 마크 앤드리슨(Marc Andreessen)과 에릭 비나가 만든 UI요소가 들어간 첫번째 웹브라우저가 탄생하였다.

 

1994년 마크 앤드리슨(Marc Andreessen)넷스케이프(Netscape)회사를 설립 후 넷스케이프 내비게이터(Netscape Navigator, 또는 간단히 넷스케이프)를 개발하게 되며

HTML과 CSS로 만든 이 정적인 웹 브라우저는 점유율은 80% 이상을 차지된다.

 

1995년 동적인 웹사이트를 만들기 위해 영입한 브렌던 아이크(Brendan Eich)가 Scheme을 기반으로 당시 인기가 좋았던 JAVA와 비슷한 구문으로 개발하게 되는데  이것은 최초에 내부적으로 Mocha라는 이름으로 나중에는 LiveScript 이름으로 개발하였으며,  그해 12월 네스케이프와 썬은 ‘LiveScript ’를 ‘JavaScript 라고 최종 이름을 결정하였다.

사실 이름에 JAVA가 들어가지만 자바보다 프로토타입 개념 기반의 개체 지향 프로그래밍언어인 셀프(Self) 혹은 함수형 프로그래밍 언어 스킴(Scheme) 과 유사성이 많다.

좀더 자세히 말하자면 변수 스코프와 클로져등의 규칙은 Lisp dialect Scheme 에서 가져오고

프로토타입 상속은 스몰토크에서 파생된 셀프(Self)언어에서 영향을 받았다.

 

Javascript가 나온 이후, MS사는 Javascript를 리버스엔지니어링(reverse engineering)하여 Jscript라는 똑같은 언어를 만들어냈고 인터넷익스플로러(IE)를 개발하여 windows 운영체재에 무료로 포함시켰다.

그러면서 넷스케이프의 시장점유율이 급격히 떨어졌고 1999년 AOL에 인수되었으나 결국 2008년 넷스케이프는 모든 개발을 중단하게된다.

 

1996년 넷스케이프사는 자바스크립트를 표준화 하기 위해, 표준화 기구인 Ecma International에 요청을 했다.

1997년 ECMAScript1 이 첫탄생하게 된다.

1998년 ECMAScript2

1999년 ECMAScript3

2000년 ECMAScript4

하지만 ECMAScript4  이후 인터넷익스플로러(IE)가 95%라는 막강한 점유율을 가지게 되면서  MS사는 IE를 표준으로 지정하게된다. 그러면서 MS사는 더이상의 ECMA표준화에 참가하지 않게 되었다. 

2008년 Google은 자바스크립트 실행 속도가 엄청 빠른 JIT(just-in-time compilation)엔진이 포함된 Chrome 브라우저를 출시하게되고  Chrome 브라우저 등장 이후 모든 브라우저들이 다시 표준화를 하기 시작한다.

2009년 ECMAScript5

2015년 ECMAScript6

.

.

.

현재도 계속하여 표준화 작업은 진행중이다.

 

현재의 자바스크립트의 동향을 살펴보자면

SPA (Single Page Application) 

하나의 페이지안에서 데이터를 받아와 필요한 부분만 업데이트하는 기술이 유행이다.

이러한 기술을 위해 Angular, React, VueJS 등등이 등장하고 있다.

 

'JS > Javascript' 카테고리의 다른 글

5. JavaScript 반복문  (0) 2020.10.03
4. JavaScript 조건문  (0) 2020.10.03
3. JavaScript 연산자  (0) 2020.10.03
2. JavaScript 데이터타입(변수)  (0) 2020.10.02

아래의 URL을 클릭하여 Maven을 다운로드 한다.

maven.apache.org/download.cgi

 

Maven – Download Apache Maven

Downloading Apache Maven 3.6.3 Apache Maven 3.6.3 is the latest release and recommended version for all users. The currently selected download mirror is http://mirror.navercorp.com/apache/. If you encounter a problem with this mirror, please select another

maven.apache.org

 

 

Binary zip archive를 받아서, 원하는 위치에 풀어 놓는다.

 

고급 시스템 설정 -> 환경변수 를 설정해야한다.

 

 

 

환경변수 설정이 끝났으면 CMD창을 통해 정상설치를 확인한다.

> mvn -version

 

'Java > Spring' 카테고리의 다른 글

1. Spring Boot 소개  (0) 2020.09.08

스프링 프레임워크를 더 빠르고 쉽게 그리고 제품수준의 어플리케이션을 만들수 있는 툴이다.

 

스프링부트 요구사항

Spring boot 2.3.3.RELEASE 기준 java 8 이상을 필요로 한다.

빌드툴은 Maven(3.3+), Gradle6.x

지원하는 servletContainer로는 tomcat9.0, jett9.4y Undertow2.0가 있다.

 

docs.spring.io/spring-boot/docs/2.3.3.RELEASE/reference/htmlsingle/#getting-started-introducing-spring-boot

 

Spring Boot Reference Documentation

This section goes into more detail about how you should use Spring Boot. It covers topics such as build systems, auto-configuration, and how to run your applications. We also cover some Spring Boot best practices. Although there is nothing particularly spe

docs.spring.io

 

'Java > Spring' 카테고리의 다른 글

2. Spring Boot - Maven설치(윈도우)  (0) 2020.09.08

1.MySQL Connector/J 다운로드

 

다운로드 경로 : https://dev.mysql.com/downloads/connector/

 

commands 사용 : $ wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.17.tar.gz

 

2. 압축 해제 후 Wildfly Module에 MySQL JDBC Driver 설치

 

압축을 풀어 mysql-connector-java-8.0.17.jar 를

(com/mysql/main) 폴더를 생성하여 main폴더안에 넣습니다.

 

$ mkdir -p WILDFLY_HOME/modules/system/layers/base/com/mysql/main

 

그리고 jar파일이 있는 폴더에 module.xml을 생성합니다.

 

$ vim module.xml

 

해당 내용을 복사하여 붙여넣습니다.

 

<?xml version="1.0" encoding="UTF-8"?>

<module xmlns="urn:jboss:module:1.5" name="com.mysql">
  <resources>
  	<resource-root path="mysql-connector-java-8.0.17.jar" />
  </resources>
  <dependencies>
    <module name="javax.api"/>
    <module name="javax.transaction.api"/>
  </dependencies>
</module>

 

3. standalone.xml 에 datasource 작성

            <datasources>
                <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true" statistics-enabled="${wildfly.datasources.statistics-enabled:${wildfly.statistics-enabled:false}}">
                    <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>
                    <driver>h2</driver>
                    <security>
                        <user-name>sa</user-name>
                        <password>sa</password>
                    </security>
                </datasource>
                
                <datasource jndi-name="java:jboss/MySqlDS" pool-name="MySqlDS" enabled="true" use-java-context="true" use-ccm="true">
                    <connection-url>jdbc:mysql://[ip]:[port[/[sid]?characterEncoding=euc_kr&amp;serverTimezone=UTC</connection-url>
                    <driver>mysql</driver>
                    <security>
                        <user-name>id</user-name>
                        <password>passwd</password>
                    </security>
                </datasource>
                
				<drivers>
                    <driver name="h2" module="com.h2database.h2">
                        <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
                    </driver>
                </drivers>

				<drivers>
                    <driver name="mysql" module="com.mysql">
                        <driver-class>com.mysql.cj.jdbc.Driver</driver-class>
                        <xa-datasource-class>com.mysql.cj.jdbc.MysqlXADataSource</xa-datasource-class>
                    </driver>
                </drivers>
            </datasources>

 

4. 확인방법

 

WILDFLY 관리자화면 webconsole 화면 기본포트:9990

 

 

Test Connection 을 클릭하여 Successfully가 나오면 성공이다.

 

commands 사용 : cli에 접속하여 커넥션 테스트를 해보면됨

 

5. 주의사항

– 에러 유형 –

1. The server time zone value ‘KST’ is unrecognized or represents more than one time zone : mysql-connector-java 버전 5.1.X 이후 버전부터 KST 타임존을 인식하지 못하는 이슈

 

jdbc:mysql://ip:port/TestDB?characterEncoding=UTF-8&serverTimezone=UTC

 

2. JDBC-Driver 클래스 지정을 com.mysql.jdbc.Driver 으로 한 경우

mysql-connector-java 버전 6.xx 이상이 되면 JDBC-Driver 클래스를  com.mysql.cj.jdbc.Driver 로 해야한다.

 

3. JDBC 클래스 XA 이슈

(failure description: "WFLYJCA0114: Failed to load datasource class: com.mysql.jdbc.Driver")

 

<driver name="mysql" module="com.mysql">
  <driver-class>com.mysql.cj.jdbc.Driver</driver-class>
  <xa-datasource-class>com.mysql.cj.jdbc.MysqlXADataSource</xa-datasource-class>
</driver>

혹은

<driver name="mysql" module="com.mysql">
	<xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
</driver>

이렇게 설정 정확한 JDBC XA Driver를 적어줘야합니다.

이클립스 window -> preference 클릭 후 

Team > SVN > Label Decorations > Text 탭 에서

본인의 스타일에 맞게 세팅하면 됨.

 

 

find "$(cd ..; pwd)" -name "filename"

'Linux > Centos' 카테고리의 다른 글

한글 깨진글자의 파일 지우기  (0) 2020.11.05
심볼릭 링크 생성하기  (0) 2020.06.26
/etc/profile이랑 ~/.bash_profile 차이는?  (0) 2020.06.26
콘솔 프롬프트 절대경로 표시하기  (0) 2020.06.26
vi 편집기 명령어  (0) 2018.10.29

생성 명령어는 ln 입니다.

 

-s 옵션을 주면 심볼릭링크입니다.

옵션을 주지 않는다면 하드링크입니다.

 

ln -s {원본파일} {링크파일}

 

심볼릭링크는 윈도우에서 바로가기 처럼 링크만 걸려있는것이고

하드링크는 완전히 동일한 파일입니다.

 

심볼릭링크의 삭제는 rm -f 로 진행하면 됩니다.

rm -rf 명령어를 사용하면 삭제가 가능하지만, 원본이 삭제되므로 주의한다.

+ Recent posts