레이블이 자바인 게시물을 표시합니다. 모든 게시물 표시
레이블이 자바인 게시물을 표시합니다. 모든 게시물 표시

2016년 1월 20일 수요일

자바 사용 시 궁금한 내용 메모하기

본문은 자바 프로그래밍 언어를 접하면서 궁금한 내용들을 정리한다.

자바 로컬 환경 구성하기

1. 통합 도구 설치
    1. 통합 개발툴 이클립스 설치
2. 웹 어플리케이션 서버 환경 구성
    1. 톰켓 설치
        1. 바이너리 다운로드
        2. bin/*.sh 실행권한 주기
    2. 이클립스 서버 환경에 톰켓 위치 등록
        1. 프로젝트 구동시에 호출됨
3. 프로젝트 생성하기
    1. 빌드 도구를 통한 자동 관리
    2. 빌드 설정은 매우 난해함
4. 프로젝트 구동하기
    1. 서버(톰켓) 설정에 프로젝트 지정
    2. 서버 구동
5. 브라우저에서 접속
    1. 기본 8080

자바 구문 이해하기

Extends
구문 : A extends B
A는 B 객체를 확장 표현한다.

접근 제어자 (modifier)
(default) 동일 패키지 클래스
public 모든 클래스
protected 동일 패키지 클래스 + 하위 클래스
private 클래스 내

super
생성자는 상속 안되는 이유로 사용한다.
부모 클래스 생성자를 호출한다.

final
최종 상속 객체 선언한다.
클래스나 매소드의 재정의(Overriding)를 막는다.
초기화 이후에 변수의 변경을 막는다.

Implements
구문 : A implements B
A는 B 인터페이스들의 수행 로직을 표현한다.

이클립스 유용한 단축키 (for Mac)

본문 사용 라이브러리 등록하기
 - 시프트 + 커맨드 + O
소스코드 정리 하기
 - 시프트 + 커맨드 + F
클래스 찾아 다니기
 - 커맨드 + 마우스 클릭
 - 앞/뒤 : 알트 + 커맨드 + 좌/우 키
컨텐츠 이름 완성 돕기
 - 알트 + 스페이스 (추가 설정)
리소스 검색
 - 시프트 + 커맨드 + R


커버 사진


2016년 1월 11일 월요일

자바 기반의 웹 프레임워크 구현

자바 기반의 웹 프레임워크 구현을 위한 기반 요소를 다룬다.

1. MVC 아키텍처 패턴
2. 자바 프로젝트 빌드 도구
3. 스프링 프레임워크

모델-뷰-컨트롤러(Model–View–Controller, MVC)

소프트웨어 공학에서 사용되는 아키텍처 패턴이다. 이 패턴을 성공적으로 사용하면, 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있다.

referenced photo by : http://slides.com/antonkril/cqs-cqrs-mvc-http#/


프로젝트 빌드 도구

메이븐(Maven)
pom.xml에 정의된 표준 디렉토리 구조에 따라 빌드된다.

엔트(Ant)
형식적인 규칙에 억메이지 않고 명세한 절차에 따라 빌드된다.

그래들(Gradle)
메이븐의 장황한 XML을 그루비(Grooby) 구문을 통해 쉽게 접근 할 수 있다.
이외에, 기존의 빌드의 장점을 취하였다.

스프링 프레임워크

자바 플랫폼을 위한 오픈소스 어플리케이션 프레임워크이다. 동적인 웹 사이트 개발을 위한 다양한 서비스를 제공한다. 전자정부 표준프레임워크의 기반 기술로 쓰인다.

다음은 스프링 프레임워크의 주요 기능 요소들이다.

IoC (Inversion of Control)
Dependency Lookup과 Dependency Injection을 포함하는 계념이다.
DL의 경우 Bean을 Lookup하기 위한 컨테이너에서 제공하는 API와 의존 관계가 발생한다. 의존 관계를 줄이기 위해서는 DI를 사용한다.

DI (Dependency Injection)
클래스 사이의 의존 관계를 컨테이너 외부의 Bean 설정을 통해서 해소한다.
예시)
의존 관계 A -> B에 가상의 인터페이스를 추가한다.
: A -> IB(인터페이스 정의) -> B
Bean 설정 파일에 의존 관계(IB -> B)를 명세한다.
Bean 설정 명세는 XML, @ (어노테이션) 두 가지 방법으로 가능하다.

AOP (Aspect-Oriented Programming)
트랜잭션, 로깅, 보안등의 핵심적인 비즈니스 로직과 관련이 없으나, 여러 모듈에서 공통적으로 사용되는 기능들을 분리하는 프로그램 패러다임이다.

POJO(Plain Old Java Object)
객체 타입의 부분 속성 변경에서 오는 복잡성을 제거하고, 단지 객체의 표면에 메타데이터를 덧 붙이는 역활을 통해 유연하고 효율적인 프로그래밍을 수행 할 수 있도록 한다.

프레임워크
소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게, 일련의 협업화된 형태로 클래스를 제공하는 것이다. - 랄프 존슨(Ralph Johnson)

References

POJO에 대해서
http://changsuk.me/?p=1800