Java 18

[ Java ] 28. 정적 팩토리 메서드?!

정적 팩토리 메서드 우리가 어떤 인스턴스를 새로 생성할 때는 보통 생성자를 이용한다. 보통 실제 개발에 가면 public 생성자(혹은 빌더패턴)를 주로 이용해서 사용하는데, 이보다 좀 더 나은 방법이 있어서 포스팅한다. public class Product { private String name; public Product(String name) { this.name = name; } public static void main(String[] args) { Product product = new Product("book"); } } 위의 예는 생성자를 이용한 매개변수로 객체를 생성하는 모습이다. 매개변수 하나일 때는 쉽게 예상이 가겠지만 매개변수가 점점 늘어나고 복잡해지면 하지만 개발자가 생성자의 매개변..

[ 개념 ] 06. 알고리즘을 위한 자바 IO

알고리즘을 위한 자바 IO codeplus - 프로그래밍 대회에서 사용하는 Java 참고 System.out System.out.println(); System.out.printf("%d", n) 실수형, 문자형 자료 출력 가능 Scanner next[자료형]을 이용해서 입력을 받을 수 있고, hasNext[자료형]을 이용해서 입력받을 수 있는 자료형이 있는지 구할 수 있다. 두 수 입력 public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int a, b; a = scanner.nextInt(); b = scanner.nextInt(); System.out.println(a..

[ Android ] 06. 안드로이드에서 Map(지도) 이용하기

Map, Location, Tab, ViewPage, Fragment https://console.developers.google.com/ Map dependencies에 필요한 라이브러리를 등록 implementation 'com.google.android.gms:play-services-maps:17.0.0' implementation 'com.google.android.gms:play-services-location:17.0.0' layout에 fragment 추가 Manifest에 인터넷 설정과 메타데이터 추가하기. - 발급받은 API-Key Location ㅇㅇㅇㅇ

[ Android ] 05. 안드로이드의 FileSystem

FileSystem 앱별로 내부저장소가 패키지별로 따로 관리가 되고 있고, 아무도 접근하지 못하는 공간. 패키지가 지워지면 자동으로 지워진다~ 외부저장소인데 패키지 이름과 똑같이만들면 삭제될 때 같이 저장된다. 똑같이 외부저장소 똑같이 외부저장소 내부저장소 이 앱만 사용하기 때문에 권한체크 안해도 됨 외부저장소 외부저장소는 다른 것들을 같이 건드리지 못하도록 권한체크 필수 사용자로 하여금 권한을 줄건지 말건지 설정해야 함 데이터를 지워도 외부저장소에는 데이터가 남아있다. // 외부저장소 권한 설정 // 이전버전 저장소 권한 설정 // 외부저장소/임의의디렉토리 생성 // => 앱을 삭제해도 데이터는 남아있다. String dirPath = external.getAbsolutePath()+"/myApp"; ..

[ Android ] 04. Permission 설정하기

Permission 마시맬로 버전 이후부터는 퍼미션 등록뿐 아니라, 사용자가 사용하기 전 퍼미션 안내 및 등록 및 직접 설정 종류 일반권함 위험권한 액티비티를 실행하거나 버튼을 누르거나 어떤 기능을 사용할 때 권한에 대한 처리를 할 수 있도록 구현 사용 메소드 checkSelfPermission : 퍼미션의 현재 상태를 확인하는 메소드 - PERMISSION_DENIED : 퍼미션이 부여되지 않은 상태 - PERMISSION_GRANTED : 퍼미션이 부여되지 있는 상태 requestPermissions : (checkSelfPermission : PERMISSION_DENIED )권한이 체크되어 있지 않은 경우에 권한을 요청하는 메시지를표시 (이 메소드 이외에도 제공되는 메소드는 여러개임) onRequ..

[ Android ] 03. 화면전환을 위한 Intent

Intent(인텐트) 여러 화면간 전환을 위해 사용 ( 두 가지 방법 존재) 실행흐름 : Activity "A" -> Intent -> 안드로이드OS -> Intent -> Activity "B" 20-04-08 수 ** Intent(인텐트) 안드로이드에서 사용하는 주요 컴포턴트 4개는 안드로이드 OS에서 실행되게 해주어야 한다. 이를 이해 Activity간의 화면전환을 위해 데이터 Intent가 전달하며 공유하는 방식. [기본 실행흐름] 인텐트 객체를 생성하고 실행할 액티비티의 정보와 데이터를 셋팅 값 셋팅 : putExtra 메소드를 이용 객체 셋팅 : Parcelable을 implement하여 이용 writeToParcel 메소드 자동호출 안드로이드OS에 인텐트 객체 넘기며 의뢰 startActiv..

[ Android ] 01. 각종 위젯과 이벤트처리방법 & AdapaterView

이벤트처리하기 이벤트소스 : 이벤트를 발생시키는 객체( ex.버튼 ) 이벤트리스너 : 이벤트 발생 시 리스너가 가지고 있는 메소드를 실행 익명이너클래스 20-03-27 금 drawble_test drawble_img_커스터마이징하기 TextTestActivity AppCompat : OS에 맞게 화면으루 맞춰주겟다. - 리소스의 외부화 이너클래스 외부클래스 20-04-06 월 etc뷰 , 선택위젯, 인텐트(액티비티 -> 액티비티의 전환)(레이아웃 인플레이션) 액티비티는 화면. 액티비티A -> 액티비티B를 실행하고싶다? new에서 생성하지 않는다. => 컴포넌트 시스템(안드로이드 내부에서 요청 후 실행) 모든것은 manifest파일을 기반으로 한다!! 현재 안드로이드 버전에서는 캐스팅코드가 필요없다. 안드..

[ Android ] 00. 안드로이드의 개요와 각종 Layout 알아보기

tool은 android studio를 사용합니다. 20-03-24 화 acitivity_main.xml MainActivity.java AndoriodManifest.xml : 설명서(권한 등) java(genrated) 폴더는 자동생성폴더라 건드리면 X res폴더 슬래시 기준으로 뒤에 있는게 피일명, 뒤에있는게 폴더명 @는 참조하고 있다는 뜻 폴더에다가 넣는다고 자동인식하는 거이 아니다. res폴더에 추가하면 => 리소스를 관리하는 R파일에 내용이 자동으로 저장 common attribute는 모든 위젯에 공통으로 가지고있는 속성 > 새로운프로젝트 작성( File - New - NewProject ) App명 : firstPro package : exam.day01.first 프로젝트명 : first..

[ Network ] 00. 네트워크란 무엇인가

Network 20-04-22 수 TCP ? UDP? 프로토콜? 프로토콜 : 약속 TCP통신을 할거야 우린~ => 연결지향 : 데이터를 보내고 잘 갔는지 확인하고 제대로 안갔으면 다시 확인 네트워크프로그래밍 : 서버가 있어야 해요~ pc&pc연결 ~ => 서버와 클라이언트를 만들어야 한다. 어떤식으로 데이트를 받고 데이터를 처리해야하겠다라고 명시해놓은 pc가 있어야한다.(서버) 요청을하는pc(클라이언트) 우리는 그동안 서버역할을 하는 tomcat(웹)이나 oracle(DB)을 설치해서 사용했다. 자바에서 "쓰레드", "네트워크", "IO"에 대한 기본 개념은 필수이다! > URLTest2.java URl객체를 생성 image copy image폴더에 저장

[ Django ] 02. [예습] 전생 알아보기

Past Job APP Create APP APP Name : jobs Model Class Name: Person Fields name CharField past_job TextField makemigrations로 설계도 작성 migrate로 DB에 설계도 반영 직업 리스트 https://bit.ly/past_job_list urls urls 분리 필수: 프로젝트 폴더, jobs 아래 urls app_name, path name 설정 필수 views /index/ index.html 렌더링 /past_life/ 사용자가 form으로 날린 이름을 받아 저장 DB에 사용자가 입력한 이름이 있는지 확인 만약 사용자가 입력한 이름이 DB에 있다면 기존 그 사용자의 past_job을 past_job 변수에 담..

[ Django ] 00. Django 알아보기

django 파이썬으로 이루어진 WEB 프레임워크. django의 성격 파이썬을 이용하기 때문에 개발 속도가 빠르다. 프레임워크라는 것은? ----> 프랜차이즈의 성격을 갖는다 ( 내가 다 줄테니 너넨 사용만 해라~ ) why django? 풍부한 언어와 프레임워크 사용 경험을 배양하기 위함. MTV 스프링의 MVC패턴과 같은 패턴임 Model - Template(사용자가 보는 화면) - View(중간 관리자) URLs: 단일 함수를 통해 모든 URL 요청을 처리하는 것이 가능하지만, 분리된 뷰 함수를 작성하는 것이 각각의 리소스를 유지보수하기 훨씬 쉽습니다. URL mapper는 요청 URL을 기준으로 HTTP 요청을 적절한 view로 보내주기 위해 사용됩니다. 또한 URL mapper는 URL에 나타..

[ JAVA ] 03. Spring에서 JDBC를 활용하여 DB사용하기

1. JDBC JDBC(Java Database Connectivity)는 자바에서 데이터베이스를 접속하기 위한 기술 19-12-23 월 드라이버로딩 드라이버를 로딩한다는 것은 JVM이 어 떤 DBMS를 사용하는지 인식시키는 작업으로 java에서 오라클을 연동할 수 있도록 오라클에서 제공해준 드라이버 파일을 JVM의 메모리에 로딩시키는 작업을 하는 단계 커넥션설정하기 우리가 프린트기를 설치하고 케이블로 연결하는 것처럼. 혹은 네트워크에서 공유된 프린트기를 찾아 연결하는 것과 같이 DBMS에 저장된 데이터에 접근하기 위해서는 DBMS에 접속을 해야 합니다. getConnection Statement객체 생성하기 SQL문실행하기 결과처리 자원반납 statament의 주된 역할 => dbms의 sql을 실행 ..

[ Bigdata ] 04. MongoDB

20-03-16 월 MongoDB NoSQL? 비정형데이터 스키마가 아니다 ( 이 컬럼은 무슨 타입이고 저건 무슨 타입이고 .. ) JSON으로 처리한다. 문서를 기반으로 하기 때문에 조인을 할 수 없다.(하나의 문서 안에 모든 데이터가 들어가있음) 레드햇계열의 리눅스? 데드뭐뭐계열의 리눅스? C:\Program Files\MongoDB\Server\3.6\bin 를 windows path 등록 데이터가 저장될 폴더가 필요하다! iot에 bigdata에 mongodata라고 만들자~ MongoDB Enter Prise로 서버 접속하기 실행됐구나~ 확인~ 웹에서 포트 접속해보기 데이터베이스를 만들고 그 안에서 작업하는 개념! ( ex. conn scott/tiger ) ​ => mydb에 아직 아무것도 안..

IT/[ Bigdata ] 2020.08.10

[ Bigdata ] 02. Hadoop 커스터마이징하기

20-03-09 월 mapreduce의 기본동작은 분류와 집계하기. - 빈도수체크 csv파일 hdfs에 옮겨놓기. 컴바이너는 mini reducer 합을 구하는 작업에서는 컴바이너쓴거랑 안쓴거랑 차이가 많이 난다. 아래는 컴바이너 쓴 것들. 기존에 비해서 데이터가 엄청 줄었음. - 컴바이너 클래스 셔플(shuffle)할 데이터의 크기를 줄이는 데 도움을 준다. => 성능 UP ! - 파티셔너 클래스 mapreduce 동작 순서 : mapper - combiner - partitioner(맵에서 가져온 거를 같은 키를 기준으로 정렬) - reducer combiner와 partitioner가 셔플 단계임 Partitioner를 사용자 정의로 커스터마이징 하겠다. 정렬이 될 수 있게..

IT/[ Bigdata ] 2020.08.10

[ Bigdata ] 01. 하둡의 HDFS와 MapReduce

20-02-17 월 빅데이터는 무엇인가? volume + velocity + variety + veracity + value = "5V" 심야버스노선도 데이터수집 - 데이터저장 - 데이터처리 - 데이터분석 - 분석결과활용 flume, sqoop, R, MongoDB namenode(hadoop01)와 secondarynamenode(hadoop02)는 달라야한다. hadoop01(keygen 수행) 비공개키, 나머지 02,03,04는 공개키 따라서 01머신에서만 나머지 머신으로 접속 가능하다. 인코딩 버전확인하기 su - echo $LANG input폴더에 NOTICE.txt 복사 ( hadoop/hadoop01 로 실행 ) /home/hadoop/hadoop-1.2.1/bin/hadoop fs - co..

IT/[ Bigdata ] 2020.08.10