728x90

전체 글 41

7. Static

Static의 이해 필요에 의해 class를 만들고, 생성자를 통해 객체로 만들어서 사용을 했다. 이러한 방식으로 모든걸 처리하면 다음과 같은 문제가 생긴다. 예시를 살펴보자. 아빠 지갑(class)에 200원이 있다. 아이들이 100원을 달라고 할때 100원의 아빠지갑 객체가 형성된다고 하자. 세명의 아이들이 100원을 받는다면 3개의 객체가 생긴다. 프로그래밍의 입장에선 클래스에선 무한한 객체 생성이 가능하고, 각 객체는 독립적이므로 실행이 가능한 경우가 된다. 하지만 현실세계에선 200원밖에 없는데 300원을 준것이므로 불가능한 경우이다. 이를 해결하는 방법은 아빠 지갑 객체가 세 아이들 모두에게 '공유'되면 된다 그렇다면 세번째로 돈을 받아간 아니는 100원을 받지 않고, 오류없이 동작한다. 이를..

Programming/Java 2021.01.03

6. 패키지 및 접근제한

패키지의 이해 패키지란? 자바에는 수많은 .java파일(class)이 존재한다. 이러한 많은 파일의 효율적 관리를 위해 자바는 패키지라는 구조를 사용한다. 즉, 패키지란 수많은 관련 class들을 그룹지어 관리하는 폴더라고 볼 수 있다. 패키지 설계 상식 패키지 이름을 정할 때, 이름은 유일한 이름일수록 좋다. 다른 패키지와 겹치면 안좋기 때문이다. 우리 회사에서 만든 소스를 다른곳으로 이식하려 할 때 이름이 중복되면 좋지 않기 때문이다. Import의 이해 다른 패키지의 클래스를 가져올땐 import를 사용한다. 서로 다른 클래스를 사용하려 할때는 반드시 import해줘야한다. 이클립스는 자동으로 import해주기 때문에 번거로울것은 없다. //예시 //import로 클래스 가져오기 import com..

Programming/Java 2021.01.03

5. 객체지향 프로그래밍

클래스 제작 클래스를 직접 만들어보자 package Manpackage; public class ManClass { //instance 변수, private 선언을 해주었기에 다른 class에서 변수에 접근 및 사용이 불가능 //정보보호를 위한 '은닉화' private int age; private int height; private int weight; private String phoneNum; public static void main(String[] args) { // TODO Auto-generated method stub } //생성자 public ManClass() { } //parameter를 포함한 생성자 public ManClass(int age, int height, int weigh..

Programming/Java 2021.01.03

4. 객체지향 프로그래밍

객체지향 이전의 프로그래밍 절차지향 프로그래밍 절차지향 프로그래밍은 코딩한대로 위에서 아래로 순차적으로 쭉 실행된다. 절차지향의 단점 - 비효율적인 부분이 존재한다. 1) 값이 변경되는 경우엔 동일한 작업이지만 매번 소스코드를 수정해야한다. 2) 기존의 로직을 다시 사용할때 다시 코딩하거나 기존코드를 카피해 재사용하는 방식이나 모두 비효율적이다. 3) 2)의 방법은 동일한 로직의 코드가 반복되어 코드의 양이 길어지고 유지보수가 어려워진다. 메소드의 이해 이를 위해 등장한 방식이 함수 or 메소드이다. 로직만 만들어놓고, 사용할 때 소스(데이터)를 주면 메소드가 알아서 결과값을 반환하는 방식이다. 예시를 통해 메소드에 대해 이해해보자. /*자바의 메소드는 접근제한자 - 반환type - 메소드명(input ..

Programming/Java 2021.01.03

3. 배열

배열이란? 여러개의 변수(데이터)를 모아놓은 요술주머니라 생각하면 된다. #이 강의에서는 할당되는걸 요술주머니에 집어넣는거라 표현하신다.. 6년점 컴프수업 갬성마냥..ㅎ 배열문법 1. 배열선언 변수선언과 비슷함. 여러개의 데이터가 모여있어서 중괄호{} 사용. 배열의 크기는 최초에 한번 설정되면 변경이 불가함 //배열선언 예시 //1 int[] iArr = {10,20,30,40} //2 int[] iArr = new int[5] //배열의 크기만 정하고 이후에 할당 int[0] = 10; int[1] = 20; int[2] = 30; int[3] = 40; int[4] = 50; 2. 메모리구조 배열 안 각 데이터의 주소값을 배열 안에 저장함. 3. 레퍼런스의 이해 위에 주소값등르 '레퍼런스'라고 한다...

Programming/Java 2020.12.30

2. 변수와 연산자

(기초적인 내용은 생략된 부분이 많습니다.) 1. 기본자료형 vs 객체자료형 기본자료형(Primitive) - java언어에 이미 존재하는 데이터타입. ex) int, double, boolean, char 등등 - 메모리에 직접 할당 객체자료형(Object) - 여러가지 데이터들이 모여 있는 복잡한 데이터로 기본 자료형에 비해 크기가 크다. ex)String, System, ArrayList 등 - 메모리 어딘가에 저장 후 그 주소값을 할당 2. 형변환 묵시적 형변환 작은 데이터를 큰 데이터로 변환 int a = 10 double b = a 위의 경우 b 출력시 10.0으로 출력됨. int(4byte) a 가 double (8byte)로 형변환됨 반대의 경우를 큰데이터 -> 작은데이터 인 경우 명시적 ..

Programming/Java 2020.12.30

1. Java란

초보 개-발자의 자바공부 스타트! 1) Java 언어의 특징 - Virstual Machine 운영체제(윈도우, 리눅스, 맥OS 등)의 영향 받지 않는다. 즉 프로그래밍 해놓고 각 OS에 맞는 Virtual Machine만 있다면 실행 가능하다는것. - Garbage Collection 메모리 관리에 용이한편. 사용하지 않는 메모리 회수, 할당이 Garbage collector에 의해 이뤄지기 때문에 메모리 관리가 용이한 장점이 있다. - Object Oriented Program(OOP) 객체지향 언어로 개발과 유지보수를 효율적으로 진행할 수 있음! 2) 자바 개발 환경설정 - JDK(Java Development Kit) : Java 개발 키트. - IDE(Integrated Development E..

Programming/Java 2020.12.29

데이터 전처리(Sampling, Handling, Partition 등)

데이터의 처리에 대해서 알아보자. 데이터 전처리라 하면 너무 포괄적인 개념이지만 몇몇가지 중요 개념 위주로 살펴볼 것이다. 내용으로 들어가기 전에 데이터마이닝의 기본단계를 살펴보자 Define/understand purpose Obtain data (may involve random sampling) Explore, clean, pre-process Reduce the data; if suprevised DM, partition it Specify task (classification, clustering etc.) Choose the techniques(regression, Neural networks, etc) Iterative implementation and tuning Assess result ..

2. Data Visualization

오늘은 R을 이용한 데이터시각화 예제를 몇가지 다뤄볼 것이다. 데이터 분석을 크게 3가지로 나타내면 Data processing(데이터처리), Modeling(모델링), Visualization(시각화)로 나타낼 수 있다. 기본 통계적 방법을 이용한 시각화(회귀분석 그래프, 산점도, 히스토그램 등)의 예제는 제외하고 오늘은 titanic 데이터를 이용해 시각화 예제를 다뤄보자. 1) Data, package load #데이터 & 패키지 불러오기 library(data.table) library(ggplot2) titanic = read.csv('titanic.csv') https://cran.r-project.org/web/packages/data.table/vignettes/datatable-intro..

1-2. Process and Purpose of Big Data Analysis

1. Infra Technique in Big Data 빅데이터의 분석만큼이나 더욱 중요한건 데이터의 수집과 관리이다. 실제로 데이터 분석(Analysis)단계보다 초기단계의 데이터 수집과 관리(Collection and Management)가 훨씬 큰 비중을 차지한다. 100%의 전체 비중에서 보았을때 Collection and Management : 95% vs Analysis : 5% 라고 많이들 이야기한다. 물론 이러한 데이터 수집과 관리를 유용하게 하는 다양한 툴들이 있다. 1) Hadoop HDFS(Hadoop Distributed File System)기반의 오픈소스이다. 다양한 데이터 서버를 이용해 Virtual HDFS를 구성하고, MapReduce Framework를 통해 큰 사이즈의 ..

728x90