객체지향 개발과 관련된 용어들클래스 "상태"와 "행위"를 갖는 자바의 기본 단위를 의미한다. 모듈화가 가능한 가장 작은 단위를 클래스라고 보면 된다.상태와 행위어떤 사물을 나타낼 때에는 상태와 행위로 구분하여 표시하는 것이 가능하다. 자바에서 "상태"는 클래스나 인스턴스 변수로, "행위"는 메소드로 표현할 수 있다.캡슐화연관된 "상탱"와 "행위"를 결정하는 기능을 묶어 주는 것을 의미한다. 이렇게 묶어주면 기능을 클래스 밖에서 접근 가능한 대상을 제한하는 정보 은닉이 가능하다. 그리고, 하나의 객체를 위한 코드가, 다른 객체를 위한 코드와 무관하게 수행할 수 있는 모듈화가 가능해진다.객체클래스는 사물의 단위를 의미하지만, 객체는 각 사물을 의미한다.상속부모에 선언된 변수와 메서드에 대한 사용권을 갖는 것..
점층적 생성자 패턴(Telescoping Constructor Pattern)생성자 인자에 대해 생각해 본 적이 있는가? 때로는 생성자 인자가 너무 많을 때도 있다. 예를 들어 항목이 20개 쯤 되는 필드를 상상해 보자. 보통의 프로그래머들은 이런 상황에 점층적 생성자 패턴(telescoping constructor pattern)을 적용한다. 필수 인자만 받는 생성자를 하나 정의하고, 선택적 인자를 하나 받는, 둘 받는 인자를 계속해서 추가하는 식으로 생성자를 쌓아 올리듯 추가하는 것이다. 이런 조합 가능성을 다 고려한다면 생성자는 끊임없이 많아지게 된다. 또한, 설정할 필요가 없는 필드에도 인자를 전달해야 하는 경우가 생긴다. NutritionFacts cocaCola = new NutritionFa..
static factory method클래스를 통해 객체를 만드는 일반적인 방법은 public으로 선언된 생성자(constructor)를 이용하는 것이다. 그러나 모든 프로그래머가 반드시 알고 있어야 하는 방법이 하나 더 있다. 클래스에 public으로 선언된 정적 팩터리 메서드(static factory method)를 추가하는 것이다.정적 팩터리 메서드(static factory method)는 디자인 패턴 중 팩터리 메서드 개념(Factory Method)과 다르다는 점에 유의하자. public static Boolean valueOf(boolean b) {return b ? Boolean.TRUE : Boolean.FALSE;}위 코드는 실제 Boolean class의 method이다. 장점이름이..
모든 개발자가 알면서도 지키지 않는 것이 있다. 바로 문자열 관련 부분이다. String 클래스는 잘 사용하면 상관이 없지만, 잘못 사용하면 메모리에 많은 영향을 준다.String이 GC에 영향을 주는 것은 확실하다. 하지만, 이것만 고친다고 메모리가 효율적으로 사용된다는 것은 아니다. 성능 개선에 있어 작은 부분이지만 기본적인 성능 개선부터 유념하자는 의미이다. StringBuffer 클래스와 StringBuilder 클래스문자열을 만드는 클래스는 String, StringBuffer, StringBuilder가 가장 많이 사용된다. StringBuffer 클래스는 JDK 5.0에서 새로 추가되었다. StringBuffer 클래스나 StringBuilder 클래스가 제공하는 메서드와 동일하다. 차이점은..
시스템의 성능이 느릴 때 가장 먼저 해야 하는 작업은 병목 지점을 파악하는 것이다. System 클래스자바를 처음 배울 때부터 아무 생각 없이 쓰는 클래스가 있다. 다름 아닌 System 클래스다. 모든 System 클래스의 메서드는 static으로 되어 있고, 그 안에서 생성된 in, out, err와 같은 객체들도 static으로 선언되어 있으며, 생성자(Constructor)도 없다.System 클래스에서 알아두면 매우 유용한 메서드에는 어떤 것들이 있는지 알아보자.자바의 JVM에서 사용할 수 있는 설정은 크게 두 가지로 나뉜다. 하나는 속성(Property) 값이고, 다른 하나는 환경(Environment) 값이다. 속성은 JVM에서 지정된 값 들이고, 환경은 장비(서버)에 지정되어 있는 값 들이..
J2EE 디자인 패턴에 대해 간단히 알아보자.위 그림은 사용자의 요청에 처리되는 순서로 생각하면서 위에서부터 아래로 보면 된다. 가장 윗부분은 프레젠테이션 티어이고, 중간 부분은 비즈니스 티어, 하단 부분은 인테그레이션 티어다. 위로 갈수록 화면에 가깝고, 아래로 갈수록 DB와 같은 저장소에 가깝다. Intercepting Filter 패턴요청 타입에 따라 다른 처리를 하기 위한 패턴이다.Front Controller 패턴요청 전후에 처리하기 위한 컨트롤러를 지정하는 패턴이다.View Helper 패턴프레젠테이션 로직과 상관 없는 비즈니스 로직을 헬퍼로 지정하는 패턴이다.Composite View 패턴최소 단위의 하위 컴포넌트를 분리하여 화면을 구성하는 패턴이다.Service to Worker 패턴Fro..
아래 글은 Top 10 Mistakes Java Developers Make 번역본이며 일부 첨언을 하였다. 4. Hashtable VS HashMap Map 인터페이스에 HashMap, TreeMap, Hashtable, LinkedHashMap이 정의되어 있다. Hashtable은 알고리즘 규칙에 의한 자료구조 이름이다. 그러나 자바(Java)에서는 HashMap으로 정의되었다. Hashtable과 HashMap의 주요 차이점 중 하나는 Hashtable은 동기화(synchronized)가 된다는 것이다. HashMap : Hashtable로 구현되었으며, key 또는 value에 대한 정렬은 없다. TreeMap : red-black tree(이진트리의 특수한 형태) 구조를 기반으로 구현되었으며 키..
아래 글은 Top 10 Mistakes Java Developers Make 번역본이며 일부 첨언을 하였다. 1. Convert Array to ArrayList 개발을 하다 보면 배열을 ArrayList로 변환이 필요할 때가 있다. 대부분의 개발자분들이 아주 자연스럽게 아래와 같이 사용을 한다. java.util에는 Arrays 클래스가 존재하며 Array.asList는 배열을 리스트로 반환해 주기 때문이다. List list = Arrays.asList(arr); Arrays.asList 이 메소드는 손 쉽게 배열을 컬렉션 관련 유틸을 사용해 캐스팅하여 사용할수는 있지만 제약사항이 있다. Java API 문서를 참조하면 다음과 같은 설명이 있다. Returns a fixed-size list back..
- 소프트웨어공학
- javascript
- Eclipse
- 오라클
- 회고
- Collection
- effective java
- 이직
- Tomcat
- React
- 자바
- 정렬 알고리즘
- spring
- Linux 명령어
- 리액트 16
- sort algorithm
- 리눅스 명령어
- 리액트
- Java
- 제주도 3박4일 일정
- Maven
- 프로그래머
- 개발환경
- SQL
- 제주도 여행
- 경력관리
- 성능분석
- 프로그래머스
- 자바스크립트
- 오라클 내장 함수
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |