본문 바로가기
반응형

프로그래밍314

자바 네트워크 프로그래밍 실습환경 구축(java설치) ●java로 네트워크 프로그래밍 공부를 할 것이기 때문에 java 개발환경을 구축한다. ●자바sdk 설치- http://www.oracle.com/ 여기서 자바sdk를 다운받고 설치한다. ●자바 환경변수 설정 - 내컴퓨터 우클릭->속성->고급->환경변수를 클릭한다. - 시스템변수에서 새로만들기를 클릭하고 변수이름은 'CLASSPATH', 변수값은 '.;%JAVA_HOME%lib%tools.jar'를 입력한다. - 시스템변수에서 새로만들기를 클릭하고 변수이름은 'JAVA_HOME', 변수값은 'C:\Program Files\Java\jdk1.7.0_45'(java sdk가 설치된 경로)를 입력한다. - 시스템변수에서 path가 없으면 새로만들기를 클릭하고 있으면 편집을 클릭한 후 변수이름은 'PATH', .. 2014. 1. 18.
네트워크 기본 개념 ●네트워크 구성원 간의 관계에 따른 분류- 피어 투 피어 >1:1 접속을 기본적으로 하며, 각각의 pc가 서로 대등하게 연결되는 방식이다.서버가 필요 없고 소규모 네트워크에 적합하다. - 클라이언트/서버 >서비스를 제공하는 쪽과 이를 요청하고 이용하는 쪽이 구분되는 방식이다. 별도의 고성능 서버 장비가 필요하다. ●네트워크의 서비스 영역에 따른 분류- LAN >근거리 네트워크에 적합하다 -WAN >멀리 떨어져 있는 LAN을 연결한 네트워크라고 할 수 있다. 흔히 우리가 사용하는 인터넷이 WAN이다. ●OSI 7계층- 초기 네트워크 프로토콜은 특정 업체가 자사의 장비들을 연결하기 위해 만들것들 이라서 다른 네트워크 간에는 호환되지 않았다. 그래서 이런 문제들을 해결하기 위해 ISO에서 OSI 7계층을 제정.. 2014. 1. 11.
Node.js 개발 환경 세팅 ●Node.js - 자바스크립트 기반 서버 개발 환경이다. - 기본 웹 서버는 스레드를 기반으로 하는 동기 방식으로 네트워크 입출력을 처리 했다면, Node.js는 이벤트 기반으로 하는 비동기 방식으로 네트워크 입출력을 처리한다. - Node.js는 하나의 스레드만 생성한다. 따라서 메모리 사용량의 변화는 거의 없다. 그래서 대규모 네트워크 프로그램을 개발하기 적합하다. ●개발 환경 구축 - 아래 사이트에서 Node.js를 설치한다. http://nodejs.org/ - 설치 후 설치가 제대로 되었는지 확인 하기 위해서 명령 프롬프트에 들어가서 node를 입력한다. - colsole.log("Hello World"); 를 입력해서 Hello World가 출력되는지 확인한다. 2014. 1. 1.
java 현재 날짜 구하기 ●자바 현재 날짜 구하기java.util.Calendar cal = java.util.Calendar.getInstance(); //현재 년도, 월, 일int year = cal.get ( cal.YEAR );int month = cal.get ( cal.MONTH ) + 1 ;int date = cal.get ( cal.DATE ) ; //현재 시간(시,분,초)int hour = cal.get ( cal.HOUR_OF_DAY ) ; int min = cal.get ( cal.MINUTE ); int sec = cal.get ( cal.SECOND ); 2013. 12. 23.
poi error java.lang.OutOfMemoryError: GC overhead limit exceeded ●poi hssf로 대량의 데이터를 다운로드 했을때 나타난 에러 java.lang.OutOfMemoryError: GC overhead limit exceeded ●hssf와 xssf는 메모리에 데이터를 한번에 담아서 처리하기 때문에 데이터 양이 많으면 메모리 부족 현상이 나타난다.그래서 아파치에서는 자동으로 메모리에 일정량의 데이터가 차면 비워주는 sxssf를 제공한다. http://poi.apache.org/spreadsheet/how-to.html#sxssf 2013. 12. 4.
java int, String 형변환 ●String형 -> int형 String b = "abc"; int a = Integer.parseInt(b); ●int형 -> String형 int b=1; String a = Integer.toString(b); 2013. 12. 3.
poi xlsx 다운 ●예제 -1) {//response.setContentType("application/vnd.ms-excel");response.setHeader("Content-Disposition", "filename=" + fileName + ";");} else {response.setContentType("application/vnd.ms-excel");response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ";");} OutputStream fileOut = null; //워크북 생성XSSFWorkbook objWorkBook = new XSSFWorkbook();//워크시트 생성XSSFSheet objSheet = objW.. 2013. 12. 2.
jsp poi 엑셀 다운 예제 ●index.html 엑셀 다운 ●testxls.jsp -1) { //response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-Disposition", "filename=" + fileName + ";"); } else { response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ";"); } OutputStream fileOut = null; //워크북 생성 HSSFWorkbook objWorkBook = new HSSFWorkbook();.. 2013. 11. 26.
하이차트(highcharts) 기본 구조 ●자바스크립트와 html로 만든 차트 솔루션이다. 비상업용으로 사용할땐 무료이고 상업적으로 사용할땐 비용이 든다.(최소 90달러이상) http://www.highcharts.com ●예제 2013. 11. 12.
javascript 체크박스(checkbox) 하나만 선택, 모두 선택/해제 ●체크박스 하나만 선택되게 하기 a1 a2 a3 ●체크박스 모두 선택, 해제 모두선택/해제 a1 a2 a3 a4 2013. 11. 5.
jsp 개발환경 세팅 이클립스 톰켓 플러그인 ●아래 사이트에서 톰켓 이클립스 플러그인 파일을 다운받는다. http://www.eclipsetotale.com/index.html ●해당 파일을 압춘을 푼 뒤 이클립스 폴더안에 있는 plugin폴더에 복사한다. ●이클립스를 실행하면 상단 메뉴에 고양이 버튼 3개가 나온다. ● - 상단 메뉴 Window->Preferences를 클릭한다. - 왼쪽 Tomcat을 클릭하고 오른쪽에서 톰켓버전, 톰켓 폴더 위치를 지정한 후 ok를 클릭한다. ●3개의 고양이 아이콘 중 왼쪽 버튼을 누르면 톰켓이 실행되고 중간 버튼을 누르면 톰켓이 중지되고 오른쪽 버튼을 누르면 톰켓이 재시작된다.톰켓이 실행되면 http://localhost:8080 으로 들어가서 아래처럼 나오면 정상적으로 설치가 완료된 것이다. 2013. 10. 28.
html 마우스 우클릭 방지, 블럭 방지 태그 ●안에 아래 태그를 입력한다. - oncontextmenu='return false' - 우클릭방지 - onselectstart='return false' - 블럭선택방지 - ondragstart='return false' - 드래그방지 ex) 2013. 10. 9.
html 버튼에 링크걸기 ●버튼에 링크를 걸려면 을 쓰면 안되고 버튼 태그 안에 onclick="location.href='#' "을 넣어줘야한다. ex) 버튼 누르면 자바스크립트 실행 2013. 9. 16.
jsp poi 엑셀 다운받기 ●엑셀 다운받기 예제 -1) { //response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-Disposition", "filename=" + fileName + ";"); } else { response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ";"); } OutputStream fileOut = null; //--------------------------------------------------------------- //엑셀 처리 .. 2013. 9. 4.
jsp poi 폰트, 스타일 적용 ●poi 폰트, 스타일 적용 예제 dddddddddd 2013. 9. 3.
jsp poi 기본 ●poi - java,jsp에서 데이터를 엑셀 등으로 추출, 또는 엑셀 등을 데이터로 저장할 때 사용한다. - http://poi.apache.org/ 에서 다운받은 파일을 압출 해제 후 WEB-INF 아래 lib에 넣는다. - 워크북 생성->워크시트생성->로우생성->셀 생성->셀에 데이터 넣기 순서로 이루어진다. ●hssf - .xls로 처리한다.xssf - .xlsx로 처리한다.sxssf - .xlsx로 처리한다. 위 두개는 데이터를 메모리에 담아서 한번에 처리하기 때문에 데이터가 많으면 메모리 부족현상이 나올수 있다. sxssf는 자동으로 메모리에 일정량의 데이터가 차면 메모리를 비워줘서 데이터가 많을 때 사용하면 좋다. ●poi 2점대 버전에서는 'HSSFCell.ENCODING_UTF_16'과 .. 2013. 9. 2.
부트스트랩2.3 틀 만들기 ●기본격자 - row안에 span을 추가한다. span*의 합은 항상 행마다 12가 되야한다.(열안의 열인 경우 감싼 열 숫자만큼 되야한다) ●열 위치이동 - offset*을 사용한다. ●열안의 열 - span* 안에 새로운 row,span*을 추가한다. 안의 열들을 함하면 감싸는 열의 숫자가 되야한다. ●유동 격자 - 열의 폭을 고정정인 값대신 비율을 사용한다. - 유동 격자 열안의 열인 경우 안의 열의 합은 항상 12가 되야한다. ●유동레이아웃 - container-fluid를 사용한다. 2013. 8. 28.
부트스트랩2.3 시작 ●부트스트랩 - css, 자바스크립트에 관한 프레임워크이다. - http://maczniak.github.io/bootstrap/index.html 에 들어가서 부트스트랩 파일을 다운받아 사용한다. - 부트스트랩은 html5 로 작성해야한다. html5는 문서 앞에 '' 를 붙인다. (html4에서는 ' 2013. 8. 28.
javascript DOM2 ●DOM 예제 - 페이지 리로드 없이 이미지 삭제하기 a - 이미지 객체 테두리 굵기 속성 변경 - css 속성 변경 네이버 고고 Hello World 2013. 8. 13.
javascript DOM1 ●DOM(Document Object Model) - 웹 페이지 화면을 구성하고 있는 모든 요소들에 대한 구조의 정의로, 화면에서 보이는 글이나 테이블, 그림, 내부 구조 스타일 등을 접근 가능하도록 정의해 놓은 것이다. DOM을 사용하게 되면 비동기식으로 처리된 데이터를 동적으로 화면에 접근시킬 수 있다. ●document 객체를 통해 웹페이지를 구성하고 있는 다양한 객체에 접근이 가능하다. ex1) ex2) 2013. 8. 12.
카페24 톰캣 재시작 ●카페24 톰캣 재시작 - putty 프로그램을 다운받아 실행한다. -아래 그림처럼 '카페24아이디.cafe24.com'를 입력한다. - 아이디, 비밀번호를 입력한다. - ./toomcat/bin/shutdown.sh 를 입력하면 톰캣이 정지한다. - ./tomcat/bin/startup.sh 를 입력하면 톰캣이 시작한다. 2013. 8. 12.
Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly. ●ApmSetup에서 mySql페이지 에러 -Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly. -> 브라우저에서 뒤로가기 버튼 누르고 f5눌러 새로고침하고 아이디, 비번 다시 입력하고 들어가면 해결된다. 2013. 8. 2.
c++ 상속(Inheritance) ●상속- 다른 클래스의 멤버를 해당 클래스의 멤버로 포함시키는 것이다. - 상속되는 클래스를 부모클래스,super클래스,base클래스라고 하고 상속받는 클래스를 자식클래스,sub클래스,derived클래스라고 한다. - sub클래스 객체를 생성하면 super클래스의 생성자도 같이 생성된다. ex) - super클래스의 멤버초기화는 멤버변수가 public이면 직접 접근 가능하지만 private로 선언되었으면 아래처럼 멤버 이니셜라이저로 초기화 한다. ●protected 멤버- protected 멤버는 private멤버와 같다. 다만 상속관계에서는 public와 같다. ex) ●상속을 사용하는 이유- 각각의 클래스에 중복되는 부분이 많을 경우, 공통되는 부분을 super클래스로 추상화하고, 이를 상속하면 클래.. 2013. 6. 23.
c++ static ●static 멤버- main함수가 호출되기 전에 메모리 공간에 올라가서 초기화된다. public으로 선언되면 객체 생성전에도 접근 가능하다. - static 멤버는 객체의 멤버로 존재하지 않는다. - static 멤버함수,변수는 클래스 함수, 클래스 변수라고도 표현한다. ex) ●static 사용 이유- static 함수,변수는 전역변수,함수와 비슷하다. - 예를 들어 어떤 전역 변수를 특정 클래스에서만 사용해야 하는데 전역 변수이기 때문에 다른 곳에서 접근될 위험이 있다. 이 전역 변수를 특정 클래스내에서만 접근 하도록 하면 프로그램이 좀더 안정적으로 될것이다. - 전역 변수,전역 함수는 기본적으로 절차지향 프로그래밍에서 사용되고 객체지향에서는 사용되지 않는다. 전역 변수,전역 함수 대신 static.. 2013. 6. 21.
c++ const ●const 쓰임- 변수 선언 앞에 붙어서 변수를 상수화 한다.ex)const int a=10;a=5; //컴파일 오류 - 포인터가 가리키는 데이터를 상수화 한다.ex)int n=10;const int* pN=&n;*pN=20; //컴파일 어류 - 포인터 선언할때 이름 앞에 붙어서 포인터 자체를 상수화 한다.(포인터가 가리키는 대상이 고정됨ex)int a=10;int b=20;int *const pA=&a;pA=&b; //컴파일 오류 ●상수화된 멤버변수의 초기화- 객체를 생성하면 멤버 변수가 초기화된다. 상수화된 멤버변수도 처음에 쓰레기값으로 초기화된다. const로 선언되었기 때문에 일반적인 방법으로는 이 값을 사용자가 원하는 값으로 변경할 수 없다. 이때 '멤버 이니셜라이저'라는 문법을 이용하면 co.. 2013. 6. 20.
c++ 복사생성자 ●복사생성자 - 자기 자신과 같은 형태(자료형)의 객체(자신의 클래스로 생성된 클래스)를 인자로 받는 생성자이다. - 형태는 아래와 같이 '클래스(const 클래스& 객체명){~~}' 이다. 반드시 '&'를 사용해서 레퍼런스로 인자를 받아야 한다. const는 전달된 인자의 내용을 변경하지 못하도록 한다. ex) ●디폴트 복사 생성자- 디폴트 생성자를 별도로 생성하지 않았을 경우 디폴트 복사생성자가 자동으로 생긴다. - 디폴트 복사 생성자는 멤버 변수 대 멤버 변수의 복사를 수행한다. ex) ●깊은 복사- 예를 들어 문자열을 복사할 경우, 실제로 문자열 변수에 저장되는 값은 문자열의 주소이다. 따라서 복사생성자에서 문자열의 값이 아니라, 주소값을 복사하게 된다.이를 막기 위해 직접 복사생성자를 정의해야한.. 2013. 6. 19.
c++ 클래스(class) 3 ●객체 배열- 말 그대로 객체를 배열의 형태로 선언한 것이다. ex) ●객체 포인터 배열- 객체를 가리키는 포인터로 구성되있는 배열이다. 저자이 대상이 객체이면 객체배열, 객체의 주소이면 객체포인터배열을 사용한다.ex) ●this 포인터- 자기 자신 객체를 가리킨다.ex) 2013. 6. 19.
c++ 클래스(class) 2 ●정보은닉- 객체 외부에서 객체 내의 멤버변수에 직접 접근하는 것을 허용하지 않고 객체 내의 변수는 private로 선언하고 여기에 접근하는 멤버함수를 public로 선언하는 기법을 정보은닉이라고 한다. - 아래 코드에서처럼 멤버변수는 private로 선언하고 private로 선언한 변수에 접근하는 멤버함수를 선언한다. - 일반적으로 멤버변수에 데이터를 입력하는 함수는 setter함수, 데이터를 가져오는 함수를 getter함수라고 한다.ex) ●캡슐화- 연관있는 데이터와 함수를 하나의 클래스로 만드는 것이다. - 사용,수정,삭제 등 유지보수의 편의를 위해 하나의 클래스로 만든다. - 개념은 간단하지만 캡슐화를 잘 하려면 많은 경험과 객체지향에 대한 이해,공부가 필요하다. ●생성자- 객체 생성과 동시에 초.. 2013. 6. 17.
c++ 클래스(class) 1 ●클래스=멤버 변수 + 멤벼함수 ●클래스를 이용해서 만든 변수를 객체(Object)라고 한다. 객체를 만드는 것을 객체화 또는 인스턴스화라고 표현한다. ●접근 제어- public - 클래스 외부에서도 접근 가능하다. - private - 클래스 내부에서만 접근 가능하다. 클래스 내부에서 따로 접근 제어를 선언하지 않으면 default로 private으로 인식한다.ex)calss Abc{private: int a;public: setter(int k){ a = k; }}; ●일반적으로 클래스를 만들때 클래스, 변수, 함수 선언은 헤더파일에 하고 멤버 함수 정의는 cpp파일에 구현한다.ex)Abc.h#includeclass Abc{void a();void b();}; Abc.cpp#include "Abc.h.. 2013. 6. 16.
c++ 레퍼런스(Reference) ●레퍼런스(Reference)- 'int &a' 처럼 &를 사용해서 변수를 생성는 것이 레퍼런스이다.('&'는 사용되는 위치에 따라 주소값을 반환 할수도 있고 레퍼런스를 선언할때 사용할 수도 있다.) - 변수는 메모리 공간에 할당된 이름을 의미한다. 레퍼런스는 이름 있는 메모리 공간에 하나의 이름을 더 붙여주는 것이다. - 레퍼런스와 변수는 생성되는 방법만 다르고 일단 생성되고 나면 동일한 것이다. - 아래 두 함수는 동일한 의미를 지닌다ex)int function(){ int a; int &b=a; return a;} int function(){ int a; int &b=a; return b;} ●레퍼런스 선언- 변수는 새로운 메모리 공간에 이름을 부여하지만 레퍼런스는 반드시 이미 이름을 지니고 있는 .. 2013. 6. 13.
반응형