본문 바로가기

전체 글124

AJAX란 Ajax(Asynchronous JavaScript and XML) 빠르게 동작하는 동적인 웹 페이지를 만들기 위한 개발 기법 중 하나. 웹 페이지 전체를 다시 로딩하지 않고도, 웹 페이지 일부분만을 갱신할 수 있게 해준다. 즉, 백그라운드 영역에서 서버와 통신하여, 그 결과를 웹 페이지의 일부분에만 표시할 수 있다. Ajax의 한계 클라이언트가 서버에 데이터를 요청하는 클라이언트 풀링 방식(사용자가 직접 원하는 정보를 서버에 요청하여 얻는 방식)을 사용하므로, 서버 푸시 방식(사용자가 요청하지 않아도 서버가 알아서 자동으로 특정 정보를 제공하는 것, 앱 푸시 알림)의 실시간 서비스는 만들 수 없음. Ajax로는 바이너리 데이터를 보내거나 받을 수 없음. Ajax 스크립트가 포함된 서버가 아닌 다른 서버.. 2019. 12. 21.
[중급] Object 클래스 Object 클래스 최상위 클래스, 아무것도 상속받지 않으면 자동으로 Object 상속. 오브젝트의 메소드 중 가장 많이 쓰는 메소드 셋. (반드시 오버라이딩) equals 객체가 가진 값 비교 toString 객체가 가진 값 문자열로 변환 hashCode 객체의 해시코드 값 반환 package com.company; import java.util.Objects; public class Student { String name; String number; int birthYear; //generate @Override public String toString() { return "Student{" + "name='" + name + '\'' + ", number='" + number + '\'' + ", .. 2019. 12. 19.
[기초] 예외 처리 예외 처리 1) try{ } catch(Exception e){ } finally{ } 2) throws Exception public class Main { public static void main(String[] args) { int i =10; int j =0; try{ int k = divide(i,j); System.out.println(k); }catch(ArithmeticException e){ System.out.println("0으로 나눌 수 없음."); }finally{ System.out.println("----끝----"); } } public static int divide(int i ,int j) throws ArithmeticException{ int k = i/j; retu.. 2019. 12. 19.
[기초] 내부 클래스, 익명 클래스 1) 중첩 클래스 / 인스턴스 클래스 (필드 선언 위치에 선언됨) 밖에 Main 객체를 만든다 -> Main.Cal cal = m.new Cal(); 생성 후 사용 public class Main { class Cal{ int val = 0; public void plus(){ val++; } } public static void main(String[] args) { Main m = new Main(); Main.Cal cal = m.new Cal(); cal.plus(); System.out.println(cal.val); } } 2) 정적 중첩 클래스 / static 클래스 (내부 클래스가 static으로 정의됨) Main 객체 생성할 필요 없이 Main.Cal cal = m.new Cal(); 생.. 2019. 12. 19.
[기초] String 클래스 문자열 인스턴스 생성 방법 2가지 1. new 연산자를 사용하지 않고 인스턴스를 만드는 경우 상수 저장 영역에 저장됨 이미 같은 문자열 상수가 만들어져 있다면 그 인스턴스를 참조한다 2. new 연산자로 인스턴스를 만드는 경우 무조건 새로운 인스턴스 생성 그래서 내용이 같더라도 서로 다른 인스턴스를 참조한다 public class Main { public static void main(String[] args) { String str1 = "hello"; //상수 저장 영역(변하지 않는 값)에 저장됨. String str2 = "hello"; //이미 문자열 상수가 만들어져 있으므로 str1 이 참조하는 인스턴스를 str2도 참조한다. String str3 = new String("hello"); //n.. 2019. 12. 19.
Java 개발 환경 Intellij 설치 아무래도 이클립스는 너무 무겁고 느리다. 게이밍 노트북을 사용하는데 소리가 위이이이이잉 나서 주변에서 한 번씩 볼 정도다. 그동안 더 익숙하다는 이유로 주로 이클립스를 사용했는데, 인텔리 제이를 사용했을 때의 빠른 준비 시간과 가벼운 파일 구성, 편리함 등을 잊을 수 없어서 당분간은 인텔리 제이를 사용해보려고 한다. 이클립스는 굳이 필요하지 않은 듯한 파일도 같이 껴있고, 이클립스가 아니면 돌아가지 않는 프로젝트가 되는 경우가 있었기 때문에, (뭐 만들 때의 이슈였는지 잊어버렸다.. 안드로이드였는지 웹이었는지) 커스텀이 비교적 자유롭고 가벼운 인텔리 제이를 선택했다. Windows 보안 설정도 해주고, 학생용으로 설치도 완료했다. 주 목적은 1) 알고리즘 공부와 2) 웹 프로젝트 만들기. IDE 처음 설.. 2019. 12. 19.
[JavaScript] 자바스크립트와 웹 프론트엔드 파트4. Networking 01. AJAX - Request 보내기 AJAX 브라우저에서 페이지를 이동하지 않고 자바스크립트를 통해 HTTP Request를 보내고 받아 JS에서 처리할 수 있음 사용자에게 더 나은 사용 경험 제공, 대부분의 웹사이트에서 사용되고 있는 기술 1. AJAX를 위한 객체 생성 var req = new XMLHttpRequest(); // HTTP 요청을 만들 수 있는 새로운 객체를 생성하는 명령 2. 요청의 방식과 URL 설정 req.open("GET", "./data.txt"); // http request method와 URL 설정 3. 요청 전송 req.send(); 4. 응답 확인 req.response에 저장됨 비동기 방식으로 요청하기 때문에 send 메소드 호출 후, 바로 코드에서 접근하면 .. 2019. 12. 18.
[JavaScript] 자바스크립트와 웹 프론트엔드 파트3. Event 01. 시간을 기반으로 콜백함수를 호출 setTimeout( function, time ) time 시간이 지난 경우 function 함수를 콜백하는 함수 time 은 millisecond (1/1000초) 단위 timerId를 반환함 clearTimeout( timerId ) setTimeout 함수 호출의 결과로 반환된 timerId를 인자로 받아 예약되어 있던 function호출을 취소 이미 function이 호출된 경우(시간이 지나 이벤트가 발생한 경우)에는 효과 없음 setInterval( function, time ) time 시간이 경과할 때마다 function 함수를 콜백하는 함수 timerId를 반환함 clearInterval( intervalId ) setInterval 함수 호출의 결.. 2019. 12. 18.
[JavaScript] 자바스크립트와 웹 프론트엔드 파트2. DOM 01. DOM 소개 및 탐색 JS로 HTML문서에 접근이 가능한 것은 HTML문서가 DOM(Document Object Model)에 따라 기술되고, 이 돔 인터페이스를 통해 기술된 HTML엘리먼트가 객체로서 자바스크립트와 연결되기 때문입니다. tree 형태로, 컴퓨터가 문서를 잘 처리할 수 있도록 문서의 구조를 약속한 것. 이해하기: document.children[0] 최상위 엘리먼트 html document.children[0].children[0] 다음 엘리먼트 head document.children[0].children[1] body document.children[0].children[1].parentNode 는 html Element API 자식, 부모 엘리먼트에 접근하는 방법 .child.. 2019. 12. 18.