비동기? 자바스크립트에서 비동기 처리란 특정 코드의 연산이 끝날 때까지 코드의 실행이 멈추지 않고 다음 코드를 먼저 실행하는 자바스크립트 특성을 의미한다. 첫 번째 사례 비동기 처리의 가장 흔한 사례는 ajax이다. 제이쿼리로 실제 웹 서비스를 개발할 때 ajax통신은 모든 요소에서 빠지지 않고 등장한다. 화면에 렌더링 할 이미지나 데이터를 서버에 호출하여 표시하게 되는데 이때 ajax통신을 사용한다. function getData() { var tableData; $.get('https://domain.com/system/users/PTN001112', function (response) { tableData = response; }); return tableData; } console.log(getD..
java.lang.Object 클래스가 toString 메서드를 제공하긴 하지만 이 메서드가 반환하는 문자열은 일반적인 문자열이 아니다. 클래스 이름 다음에 @ 기호와 16진수로 표현된 해시 코드가 붙은 문자열이다. toString의 일반 규약에는 '모든 하위 클래스는 이 메서드를 재정의함이 바람직하다.(It is recommended that all subclasses override this method.)' 라는 구절도 있다. toString을 재정의 하면 디버깅할 때에도 많은 도움이 된다. 그리고 객체를 바로 문자열과 연결시켜 사용할 때도 편하게 작업할 수 있다. 가능하다면 toString 메서드는 객체 내의 중요 정보를 전부 담아 반환해야 한다. toString이 반환하는 문자열의 형식을 떠나 ..
많은 버그가 hashCode 메서드를 재정의하지 않아서 생긴다. equals 메서드를 재정의하는 클래스는 반드시 hashCode 메서드도 재정의 해야 한다. 그렇지 않으면 Object.hashCode의 일반 규약을 어기게 되므로 HashMap, HashSet, Hashtable 같은 hash 기반 컬렉션과 함께 사용하면 오동작하게 된다. 일반 규약 같은 객체의 hashCode를 여러 번 호출하는 경우 equals가 사용하는 값이 변경되지 않았다면 언제나 동일한 정수(Integer)가 반환되어야 한다. 단 프로그램이 재시작되었을 경우 같은 값이 나올 필요는 없다. equals 메서드가 같다고 판정한 두 객체의 hashCode 값은 같아야 한다. equals 메서드가 다르다고 판정한 두 객체의 hashCod..
equals 메서드는 재정의하기 쉬워 보이지만 실수할 여지도 많다. 이런 문제를 피하는 가장 간단한 방법은 equals 메서드를 재정의 하지 않는 것이다. 아래 조건 중 하나라도 만족하면 equals 메서드를 재정의 하지 않아도 된다. 각각의 객체가 고유한 경우 상위 클래스에서 재정의한 equals가 하위 클래스에서 사용하기에도 적당 한 경우 그렇다면 Object.equals를 재정의하는 것이 바람직할 때는 언제인가? 객체 동일성(Object equality)이 아닌 논리적 동일성(Logical equality)의 개념을 지원하는 클래스인 경우 상위 클래스의 equals가 하위 클래스의 필요를 충족하지 못하는 경우 값 클래스(Value Class)는 대체로 그 조건에 부합한다. Value Class (I..
종료자(finalizer)는 예측 불가능하며, 대체로 위험하고, 일반적으로 불필요한다. 종료자는 C++의 소멸자(destructor)와는 다르다는 것을 유념해야 한다. C++의 소멸자는 생성자와 쌍으로 움직이기 때문에 소멸 즉시 호출된다. 하지만 Java에서는 사용되지 않는 객체에 할당된 공간을 GC가 알아서 반환하므로 프로그래머 입장에서 특별히 할 일이 없다. 신경 쓰지 않아도 된다는 말은 다른 말로는 즉시 처리가 되지 않는다는 의미이기도 하다. 따라서 긴급한 작업을 종료자 안에서 처리하면 안 된다. Java에서는 try-finally를 이용하여 해제되어야 할 상황이라면 객체 종료를 보장하기 위해 반드시 그 즉시 직접 해제해야 한다. Java 1.7부터 try-with-resources 문을 지원하므로..
자바는 C/C++ 과는 다르게 더 이상 참조되지 않으면 객체들이 사용하던 메모리가 자동으로 회수된다. public Object pop(){ if(size == 0) throw new EmptyStackException(); Object result = elements[--size]; elements[size] = null; // 쓸모없는 reference 를 제거 return results; } 불필요한 객체를 null로 만들면 메모리에서 바로 제거되며 나중에 실수로 그 참조를 사용하더라도 NullpointException이 바로 일어나도록 할 수 있다. 자체적으로 관리하는 메모리가 있는 클래스를 만들 때는 메모리 누수가 발생하지 않도록 주의해야 한다. (ex. element 가 free 되면 objec..
자바 프로그래밍에서 성능을 향상하는 방법은 여러 가지가 있다. 그중에서 한 가지는 static을 사용하는 것이다. 하지만 잘 모르고 statis을 사용하다가는 시스템이 더 느려지거나, 오류를 내뿜는 시스템이 될 수도 있다. static의 특징 자바에서 static으로 지정했다면, 해당 메서드나 변수는 정적이다. public class VariableTypes { int instance Variable; static int classVariable; public void method(int parameter) { int localVariable; } } 여기서 static으로 선언한 classVariable은 클래스 변수라고 한다. 왜냐하면 그 변수는 '객체의 변수'가 되는 것이 아니라 '클래스의 변수'가..
이번 포스팅은 이클립스 플러그인 설치에 대해 작성하겠다. STS(Spring Tool Suite) 첫 번째로는 스프링 애플리케이션 개발을 위한 이클립스 기반 개발환경을 제공하는 STS이다. Help -> Marketplace를 선택하여 STS를 검색하여 install 한다. STS에 포함되어있는 각종 기능들에 대한 선택 여부를 묻고 있다. 광고도 아니고 악성코드도 아니므로 다 설치하자. I accept the.... 라이선스 동의 선택 설치가 완료되고 이클립스 재시작에 대한 물음에 나타난다. Restart Now 정상적으로 설치되었다면 친절하게 STS 관련 정보를 표시해 준다. SVN(Subversion) 버전 관리 프로그램으로 Git과 더불어 형상관리 양대 산맥으로 꼽히고 있는 SVN이다. Help -..
어떤 프로그래밍을 하든 반복 구분 사용은 기본 중의 기본이다. 이 반복 구문도 잘만 사용하면 성능 향상을 가져올 수 있다. 반복 구문에서의 속도는? 자바에서 사용하는 반복 구문은 세 가지이다. for do-while while 일반적으로 for문을 많이 사용한다. while문은 잘못하면 무한 루프에 빠질 수 있으므로 되도록이면 for문을 사용하기를 권장한다. JDK 5.0 이전에는 for 구문을 다음과 같이 사용하였다. 여기서 list는 값이 들어있는 ArrayList이다. for(int loop=0; loop
- SQL
- Maven
- 자바스크립트
- 리액트
- 회고
- sort algorithm
- 리액트 16
- Linux 명령어
- 이직
- 제주도 3박4일 일정
- 리눅스 명령어
- 프로그래머스
- 경력관리
- React
- 개발환경
- 소프트웨어공학
- spring
- 제주도 여행
- 성능분석
- Collection
- 프로그래머
- javascript
- 오라클 내장 함수
- 오라클
- Eclipse
- effective java
- Java
- 자바
- Tomcat
- 정렬 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |