반응형

SW 65

R : 네이버 데이터랩 (개념 및 활용법)

네이버 데이터랩 텍스트로 되어있는 데이터를 다루는 여러 가지 방법이 있습니다. 하지만 네이버 데이터랩이라고 하는 데를 한 번 방문해보셨나요? 네이버 데이터랩은 네이버가 검색 엔진을 제공하는 기관입니다. 키워드를 통계를 내서 정보를 제공해주는 사이트입니다. 그러면 키워드를 가지고서 분석을 하면 뭐가 나올 수 있을까요? 기본적으로는 실시간 검색어가 나올 수 있습니다. 현재 지금 사람들이 무엇에 관심을 갖고 있는가, 어떤 검색어가 뜨고 있는가, 이런 것들도 알 수 있습니다. 이제 시간대별로 누적해서 보면 어떤 주제가, 어떤 키워드가 언제 관심이 있었는지 볼 수 있습니다. 활용법 여러분들이 알다시피 컴퓨터에서 뭔가 일을 하면 여러분이 어떤 위치, 어느 지점에서 컴퓨터를 사용하고 있는지가 대략 수집이 됩니다. 그..

SW/R 2019.02.02

R : 워드클라우드-wordcloud ( 개념 및 예제 )

텍스트 마이닝텍스트 마이닝은 비정형 텍스트에서 의미 있는 정보를 추론하는 기술을 의미합니다. 단어를 분류하거나 문법적 구조를 분석합니다. 이러한 자연 언어 처리 기반의 기술입니다. 문서들을 분류하고 문서들을 군집화합니다. 그리고 정보를 추출하고 문서를 요약할 때 주로 활용합니다. 문서내에서 자주 활용되는 단어일 수록 폰트의 크기를 크게 배치하여 강조합니다. 아래 그림을 참고하세요. 필요한 패키지는 총 3가지입니다. wordcloud, KoNLP, RColorBrewer를 설치해주세요. wordcloud는 워드클라우드를 작성할 때 활용합니다. 또 KoNLP는 한국어를 처리할 때 사용합니다. 마지막으로 RColorBrewer는 단어의 색을 처리할 때 사용합니다. KoNLP 오류 해결 먼저 java se를 다..

SW/R 2019.02.01

R : help 기능 개념 및 사용법

help 기능함수의 사용법 알고 싶을 때 (함수 이름을 알면) help(sum) # help("sum") 도 가능 ? sum함수의 이름을 알고 있다면 위와 같은 명령어를 활용하면 됩니다. 함수의 사용법 알고 싶을 때 (함수 이름을 모르면) help.search("average")함수의 이름을 정확히 모른다면 위와 같은 명령어를 활용하면 됩니다. 그러면 기능과 관련된 내용을 찾아줍니다. history()R은 최근에 사용한 명령어를 25개까지 기억합니다. 위아래 화살표 키를 이용해 사용한 명령어를 불러올 수 있습니다. history() 함수를 사용하면 25개의 목록을 한눈에 확인할 수 있습니다. 이 함수를 활용해 최근에 내가 무슨 함수를 썼는 지 알 수 있겠죠? Rstudio에서 help 사용 직접 Rstu..

SW/R 2019.01.30

R : 벡터(vector) 개념 및 예제

벡터이번 포스팅에서는 벡터에 대해 알아보겠습니다. 우리가 분석하고자 하는 데이터는 어떤 모양일까요? 대부분 1차원 배열과 2차원 배열의 형태를 가지고 있습니다. 그 이상의 데이터는 복잡하겠죠? 1차원 배열 데이터의 모양은 위와 같습니다. 아래와 같은 데이터는 위와 같은 모양을 가집니다.- 1학년 학생들의 성적 자료- 2학년 학생들의 키 자료- 1학년 학생들의 선호하는 도형 자료 2차원 배열 데이터는 위와 같습니다. 아래와 같은 내용의 데이터는 위와 같은 모양을 가집니다.- 3학년 학생들의 전과목 성적 자료 R에서 벡터는 1차원 데이터를 저장하기 위한 자료 구조를 뜻합니다. 수학에서 사용하는 벡터의 의미와 다루는 방법이 같습니다. 벡터는 따라서 동일한 자료형의 값이 여러 개 연속되어 있는 것입니다. 변수들..

SW/R 2019.01.29

C++11 : 멤버 함수 선언과 정의 분리에 대해 알아볼까요? (개념 및 예제)

클래스의 멤버 변수는 클래스 내부에 선언한 변수이며, 클래스의 멤버 함수는 클래스 내부에 선언한 함수입니다. 객체를 생성하면 클래스의 멤버 변수는 객체의 속성이 되고, 클래스 멤버 함수는 객체의 기능이 됩니다. 이를 통해서 추상화를 구현할 수 있습니다. C에서 선언문은 보통 헤더 파일에 작성하고, 정의는 소스 파일에 작성해보았던 경험이 있을 것입니다. 마찬가지로 C++ 에서도 보통 헤더 파일에 클래스 멤버 변수와 함수를 선언하고, 소스 파일에 멤버 함수를 정의하는 방식을 따릅니다. #include using namespace std;#define NAME_LEN 20#define SEX_LEN 10#define JOB_LEN 20#define CHARACTER_LEN 20class Chulsoo { pr..

SW/C++ 2019.01.05

C++11 : 클래스와 객체에 대해 알아볼까요? (개념 및 예제)

클래스가 왜 필요할까요? 컴파일러가 int형의 모든 속성과 연산 기능에 대해 이미 정의했으므로 컴파일러가 알아서 프로그램을 수행합니다. 하지만 1실생활의 여러 상황을 프로그래밍하려면 int와 같은 기본 자료형으로는 표현에 한계가 있습니다. 이러한 한계를 극복하려면 앞서 배운 C++ 구조체처럼 사용자가 직접 정의할 수 있는 자료형이 필요합니다. 실생활의 상황을 표현하는 자료형을 사용하는 것은 추상화라는 개념의 출발이라 할 수 있습니다. 추상화란 실생활에서 객체의 속성과 기능을 표현하는 개념이라고 양지해주세요. C++ 클래스 역시 실생활의 상황을 추상화할 수 있는 사용자 정의 자료형인 것입니다. C++ 클래스와 객체 개념 바로 알기이전에 포스팅하고 다루어 보았던 구조체 예제를 클래스로 바꾸어 보겠습니다. #..

SW/C++ 2019.01.04

C++11 : 구조체에 대해 알아볼까요? (개념 및 예제)

이번 포스팅에서는 C에서의 구조체를 이해하시고 있다는 가정하에 C++ 구조체에 대해 말씀드리겠습니다. 하지만 처음 보신다 해도 잘 이해하실 수 있을 것입니다. #include using namespace std; #define NAME_LEN 20#define SEX_LEN 10#define JOB_LEN 20#define CHARACTER_LEN 20 struct Chulsoo{ char name[NAME_LEN]; char sex[SEX_LEN]; char job[JOB_LEN]; char character[CHARACTER_LEN]; int age; bool marriageStatus; void introduce() { cout

SW/C++ 2019.01.03

C++11 : 람다 함수에 대해 알아볼까요? (개념 및 예제)

람다 함수는 인라인 함수처럼 복잡한 함수 호출 과정을 생략해서 시간을 절약할 수 있을 뿐만 아니라, 코드의 가독성까지 높여줍니다. 람다 함수는 C++11부터 사용할 수 있으면 고급 함수이므로 처음 배울 때는 어려울 수 있으므로 반복 학습이 필요합니다. 먼저 다음 예제를 살펴보겠습니다. 인라인과 람다 함수를 비교하였습니다. 코드가 다소 난해하다면 넘기고 읽으셔도 됩니다. #include using namespace std; class Chulsoo{public: void eat(int steakWeight); inline void eatInline(int steakWeight) { cout

SW/C++ 2019.01.02

C++11 : 인라인 함수에 대해 알아볼까요? (개념 및 예제)

인라인이라는 단어 그대로의 의미는 줄 안쪽을 의미합니다. 실제 인라인 함수의 의미와도 일맥상통합니다. 일반 함수와 호출 과정부터 비교해보며 예제를 통해 알아보겠습니다. 함수 호출은 보통 메모리상의 점프를 이용하며, 여러 가지 상태 정보 등을 저장하고 복원해야 하므로 내부적으로 복잡한 과정을 거칩니다. 인라인 함수를 사용하면 복잡한 함수 호출 과정을 단순하게 대체할 수 있습니다. 인라인 함의 문법은 다음과 같습니다. 일반 함수와 같은 형태이지만 inline 키워드로 시작하는 점이 다릅니다. inline 반환형 함수명(매개변수 목록); 인라인 함수가 앞에서 배운 일반 함수와 어떻게 다른지 다음 예제를 보면서 비교해보겠습니다. #include using namespace std; class Chulsoo{pu..

SW/C++ 2019.01.01

C++11 : 함수 오버로딩에 대해 알아볼까요? (개념 및 예제)

오버로딩은 사전 상에서는 짐을 많이 싣는다는 의미를 가지고 있습니다. 함수 오버로딩은 과연 무슨뜻일까요? 단어의 의미는 함수를 짐처럼 많이 싣는다고 생각할 수 있습니다. A 함수, B 함수, C 함수가 있다고 가정하겠습니다. 여러 함수를 하나의 장소, 즉 하나의 함수 이름에 쌓는 것을 함수 오버로딩이라고 설명할 수 있습니다. 함수 오버로딩은 객체지향의 특징 중 하나인 다형성이라는 개념과 일맥상통합니다. 함수의 다형성이란 하나의 함수를 다양한 형태로 나타내는 것을 의미합니다. 다양한 함수를 결합하는 방식에 대해 알아보겠습니다. #include using namespace std; class Chulsoo{public: void Eat(void); void Eat(int SteakNum); void Eat(..

SW/C++ 2018.12.31

C++11 : 디폴트 매개변수에 대해 알아볼까요? (Default Argument)

디폴트 매개변수는 말 그대로 기본 매개변수를 의미합니다. 함수를 정의할 때 매개변수를 넣거나 안 넣으면 되지 왜 디폴트 매개변수가 필요할까요? 그러나 실제로 프로그래밍을 하다보면 항상 넣어줘야 하는 값 마저도 귀찮아 지는 날이 옵니다. 프로그래머는 아주 현명하고 게으른 사람들이 만드는 것이라고 교수님의 말씀이 생각납니다. 다음 예제를 살펴보겠습니다. #include using namespace std; class Chulsoo{public: int Eat(int SteakNum);}; int main(void){ Chulsoo chulsoo; chulsoo.Eat(); return 0;} int Chulsoo::Eat(int SteakNum){ cout

SW/C++ 2018.12.30

C++11 : 형변환에 대해 알아볼까요?

배열의 포인터 변환배열을 포인터로 변환해 주소 이동만 가지고 효율적으로 배열의 값들을 읽거나 수정할 수 있습니다. ptr 포인터 변수에 arr배열을 대이배 자동으로 포인터 형으로 변환합니다. 다음으로 배열의 두번째 요소 값을 출력하는데, 포인터 변수 ptr의 주소를 한 칸 옮긴 값과 일치함을 알 수 있습니다. 배열의 원리가 기본적으로 포인터와 같으므로 자동으로 형변환이 되는 것입니다. #include using namespace std; int main(){ int i; int arr[10]; for (i = 0; i

SW/C++ 2018.12.26

C++11 : 포인터에 대해 알아볼까요?

포인터는 참조자와 유사하게 주소로 특정 변수나 객체를 참조할 수 있습니다.포인터변수에는 특정 변수의 주솟값이 저장됩니다.참조자와 다른 점은 가리키는 대상이 없을 수 있고 가리키는 대상을 언제든 변경할 수 있습니다.따라서 초기화할 필요도 없겠죠? 변수명 앞에 *를 선언하면 포인터 변수를 지정할 수 있습니다.정수형 변수 value를 선언하고 100으로 값을 초기화합니다.그 다음 pointerValue를 포인터 변수로 선언해 value 변수의 주소 참조 값을 저장합니다. int value = 100;int* pointerValue = &value; 다음의 예제의 결과를 생각해보세요. 그리고 한번 돌려보시고 메모리 주소를 확인해봅시다.이번 포스팅에서는 간단하게 다루겠습니다.이미 좋은 강좌들이 많으니 참고하여 다..

SW/C++ 2018.12.20

C++11 : 참조자와 한정자에 대해 알아볼까요?

참조자의 이해이번 포스팅에서는 변수의 별칭을 만드는 참조자와 포인터에 대해 알아보겠습니다.어떤 변수를 참조자로 선언하려면 다음처럼 주소 연산자(&)를 변수명 앞에 지정합니다. int peter = 185;int &seoul = peter; 이렇게 선언하면 seoul 변수는 int형으로 선언한 peter를 참조하게 되며 peter 변수의 별칭이 됩니다.참고로 cout을 이용해 변수를 그대로 출력하면 값이 출력되고 주소 연산자(&)를 변수명 앞에 붙여서(&변수명) 출력하면 해당 변수의 메모리 주소가 출력됩니다. #include using namespace std; int main(){ using salary = double; salary peter = 100.12; salary &sangwon = peter..

SW/C++ 2018.12.18

C++11 : 변수와 자료형에 대해 알아볼까요?

변수이름을 지을 때 일반적으로 지켜야 할 사항1. 의미를 파악할 수 있도록 식별할 수 있는 단어로 구성2. 일반적으로 소문자로 구성클래스 이름은 일반적으로 대문자로 시작3. 숫자는 변수 이름의 첫 글자로 사용할 수 없음4. 여러 단어를 조합할 때는 일관성 있는 규칙을 적용할 것5. 예약어는 변수 이름으로 사용할 수 없음 c++ 기본자료형C++11 표준 문서에 정리된 기본 자료형은 아래 표와 같습니다.데이터를 담을 수 있는 최소 크기를 비트 단위로 명시하고 있는데요.실제 크기는 운영체제나 cpu에 따라 달라질 수 있습니다.최대 크기는 달라질 수 있으나 최소 크기는 준수할 수 있도록 컴파일러에게 기준을 제시합니다. 자료형 의미 최소크기 short 짧은 정수 16bit int 정수 16bit long 긴 정수..

SW/C++ 2018.12.18

[ C++ ] namespace에 대해 알아볼까요?

C++ 공부를 하면 namespace라는 문법을 자연스럽게 접합니다.하지만 정확한 의미를 모르고 using namespace std 라고 입력할 뿐입니다.화면에 자열을 출력할 때 필요한 규칙 정도로 생각하고는 합니다. 네임스페이스는 지정한 라이브러리를 사용할 수 있도록 소속을 알리는 역할을 합니다. using namespace std using 키워드로 std 라이브러리에 포함된 내용들을 사용할 것이라고 선언합니다. 따로 소속을 알리지 않아도 사용할 멤버가 std 라이브러리에 포함된 것으로 간주하게 됩니다. 만약 using 키워드로 네임스페이스를 지정하지 않고 cout을 활용한다면 어떻게 될까요?std::cout 처럼 std 라이브러리에 포함된 멤버임을 알려주어야 합니다. 다음은 네임스페이스를 활용한 간..

SW/C++ 2018.12.15

IoT와 네트워크의 관계에 대해 알아볼까요?

네트워크는 토대이다. 500억 개의 사물들이 수조개의 기가바이트 단위의 데이터를 제공한다. 그러한 데이터들이 어떻게 우리가 의사결정을 더 잘 할 수 있게 하고, 어떻게 우리의 삶과 우리의 비즈니스를 개선시키기 위해 상호작용할까? 이러한 연결들이 가능하도록 하는 것은 우리가 매일 사용하고 있는 네트워크이다. 이러한 네트워크는 인터넷의 토대를 제공하며 궁극적으로는 만물인터넷(IoE)를 제공한다. 네트워크는 계속해서 진화하고 있다.우리가 의사소통을 하기 위한 방법은 계속해서 진화하고 있다. 과거의 우리는 얼굴을 마주보고서 의사소통을 했지만, 기술의 발전이 우리의 의사소통의 범위를 매우 광활하게 확장시켰다. 동굴 벽화에서부터 인쇄매체로, 라디오로, 텔레비전으로, 텔레프레즌스로, 각각의 새로운 발전은 우리가 다른..

SW/네트워크 2018.11.27

IoT와 우리 삶의 변화에 대해 알아볼까요?

변화하는 행동사람, 비즈니스, 그리고 정부는 끊임없이 변화에 적응해야한다. 2012년에 인터넷에 연결된 장비들의 숫자는 전 인류의 수를 넘어섰다. 이렇게 기술의 이용이 증가함에 따라서 현재, 사람들은 전보다 더 많은 정보와, 아이디어 와 의견들은 교환하고 있다. 인터넷은 우리가 의사소통하고, 협력하고, 배우는 방식을 바꿔놓았다. 인터넷은 다른 사람들과, 그리고 우리가 사용하는 물건들과 관계를 맺는 방식 또한 바꿔놓고 있다. 사람들은 과거와는 다르게 현재의 뉴스,행사, 광고, 그리고 상품들에 대해 반응할 수 있는 능력을 갖게 되었다. 정보를 모으고 이러한 정보들을 디지털 처리능력을 이용하여 처리하는 것은 클릭한번 혹은 스크린을 터치하는 것 만으로도 가능해졌다. 적응하거나, 경쟁력을 잃거나 조직들은 기술 트..

SW/네트워크 2018.11.27
반응형