전체 글 107

[Node] React, NodeJS hppt통신 CORS 문제 해결

보안상의 이유로 서로 다른 포트나 도메인에 http 통신을 시도하면 CORS 에러가 발생한다. localhost 환경이라면 react 프로젝트 파일의 package.json에서 "proxy":"[접근할 포트]를 입력해주면 된다. 또 다른 방법은 nodeJS의 cors 라이브러리를 활용하는 것이다. sudo npm install cors --save 명령어를 사용해 cors를 설치해준다. 이후 자원 공유를 허락할 origin을 지정해주면 된다. origin 부분에 '*' 를 넣어주면 모든 origin과의 자원 공유를 허락하게 되지만 보안에 취약하므로 이와 같은 방법은 피하자.

Node.js 2021.09.13

[React]React서버, Node서버 동시에 실행하기

프론트엔드로 React, 백엔드로 Node를 사용한 경우 http통신을 테스트하기 위해 React서버와 Node서버를 동시에 실행해야 하는 경우가 있다. 즉, npm start 로 React서버를 실행시킴과 동시에 node [파일명] 명령어를 통해 Node서버까지 실행시키는 방법을 알아보자. 먼저 concurrently 라이브러리를 프로젝트의 root 디렉토리에 설치해준다. 설치가 끝나면 package.json 파일을 열고 "scripts"의 내용을 변경해주어야 한다. "dev" 부분을 먼저 살펴보자. npm run dev 명령어를 실행했을 때 동작하는 부분이다. npm run node, npm run react를 동시에 실행시킨다는 내용이다. node와 react에는 각각 Node서버, React서버를..

React.js 2021.09.11

[Node.js] 전역 변수와 전역 객체

웹 브라우저에서 동작하는 자바스크립트의 최상위 객체는 window객체다. 하지만 window객체는 웹 브라우저에서 동작하므로 Node.js에는 존재하지 않는다. 대신 전역 변수와 전역 함수를 가지고 있다. __filename 전역변수는 현재 실행 중인 코드의 파일 경로를 나타내며, __dirname 전역변수는 현재 실행중인 코드의 폴더 경로를 나타낸다. 코드를 실행시키면, 파일과 폴더의 경로가 정상적으로 출력되는것을 확인할 수 있다. console 객체는 log(), time(), timeEnd() 메소드를 갖고 있다. log()메소드를 통해 특수 문자를 이용해 문자열을 출력할 수 있으며 time()과 timeEnd() 메소드를 사용해 실행 시간을 출력할 수 있다. time()과 timeEnd() 메소드..

Node.js 2021.09.07

[데이터 과학] 라이브러리의 활용

라이브러리는 R함수를 모아둔 소프트웨어 패키지라고도 부른다. 예를 들어, ggplot2 라이브러리는 데이터를 깔끔하고 일관성 있게 시각화하는 함수의 모음이다. 또한 gapminder 라이브러리는 1952년부터 2007년까지 5년 간격으로 여러 나라의 인구, 1인당 GDP, 기대 수명 등을 모은 갭마인더라는 데이터를 사용하는 데 필요한 함수를 제공하는 라이브러리다. dplyr과 ggplot2 라이브러리를 설치하고 사용해보자. install.packages 명령어를 사용하여 라이브러리를 설치할 수 있으며 library() 명령어를 사용하여 라이브러리를 부착할 수 있다. 두 라이브러리를 사용하기 위해 부착하였다. tips 데이터를 사용하기 위해 csv를 사용하여 데이터를 가져와보겠다. 데이터를 잘 가져왔는지 ..

데이터 과학 2021.09.06

[데이터 과학] R/R Studio 설치 및 기본 환경 설정

먼저 R을 사용하여 데이터 분석을 하기 위해서는 먼저 R을 다운로드 해주어야 하며, 조금 더 편리하게 작업하기 위해 R Studio를 설치해준다. R은 https://cran.r-project.org/ 에서 설치할 수 있다. 개인의 운영체제에 맞게 설치해주면 된다. 다음으로 R Studio를 설치해 주어야 한다. R Studio는 https://www.rstudio.com/products/rstudio/download/ 에서 설치할 수 있으며 마찬가지로 개인의 운영체제에 맞게 설치해주면 된다. 설치를 한 후 R Studio를 실행하고 Tool -> Global options에서 테마와 레이아웃을 변경할 수 있다. 편한 방식대로 설정 해주면 된다. R Studio가 잘 동작하는지 확인하기 위해 기본적인 몇..

데이터 과학 2021.09.06

[JAVA] 추상 메소드와 추상 클래스

JAVA에서 추상 메서드, 추상 클래스의 선언은 abstract 키워드를 사용하여 선언할 수 있다. 클래스 안에 한 개 이상의 추상 메소드가 존재 하면 해당 클래스는 반드시 추상 클래스로 선언해 주어야 하며, 추상 클래스는 상속을 위한 클래스이므로 인스턴스를 생성할 수 없다. 또한 추상 클래스로부터 상속을 받은 클래스는 추상 메소드의 구현부를 모두 작성해주어야 하며, 또는 다시 추상 클래스로 선언해야 한다. 보통 상속을 위한 부모 클래스를 작성할 때 이를 추상 클래스로 선언하며, 자식 클래스에서는 상속받은 추상 메소드를 Override하여 다형성을 실현한다. 만약, 상속받은 추상 메소드를 구현하지 않을 경우 반드시 해당 클래스도 abstract 키워드를 사용하여 추상 클래스로 선언해야 한다.

Java 2021.09.05

[JAVA] 향상된 for문

Java에서는 향상된 for문을 사용하여 더욱 효과적으로 배열의 인덱스에 접근하여 엘리먼트를 다룰 수 있다. 기존의 for문을 사용하여 ArrayList인 customerList에 있는 모든 엘리먼트를 출력하는 방법이다. 초기값과 조건, 증감식을 작성해 주어야 한다. 이와 달리 향상된 for문은 : 을 기준으로 뒤에 배열을 넣어주고 앞에 자료형과 이름을 입력해 주면 해당 이름으로 넣어준 배열의 인덱스를 순회하며 처리할 수 있다. 위 코드에서는 customerList의 모든 인덱스를 customer이라는 이름으로 순회하고 customer의 showCustomerInfo() 메소드를 호출하여 ArrayList 안에 있는 모든 customer의 정보를 출력할 수 있게 한다.

Java 2021.08.29

[JAVA] ArrayList 선언과 사용

ArrayList는 배열과 다르게 크기가 가변적으로 변하며 , 여러 내장 메소드를 사용하여 쉽게 삽입, 삭제, 조회가 가능하다. ArrayList를 사용하기 위해서는 import java.util.ArrayList; 키워드를 통해 API를 import 해주면 된다. 또는 import java.util.*을 해주면 ArrayList를 포함한 대부분의 API를 사용할 수 있다. 먼저 기존에 선언한 Customer 클래스를 통해 Customer 자료형의 객체를 저장하는 ArrayList를 선언해보겠다. 이름은 customerList이다. ()안에 값을 넣으면 초기 용량 또한 지정해 줄 수 있다. 엘리먼트를 ArrayList에 삽입하기 위해서는 add() 메소드를 사용하면 된다. 먼저 삽입할 객체를 만들기 위해..

Java 2021.08.29