목록Programing & Coding (86)
S E P H ' S
자바 프로그램의 실행 C나 다른 언어의 실행 방식과 Java 실행 방식을 비교한 간단한 그림이다. JDK가 운영체제에 맞게 존재하고 그 안에 자바 컴파일러(javac.exe)가 자바 코드를 해석하면 바이트 코드(.class 형태의 파일)가 되고 그를 JRE이 지니고 있는 자바 프로그램 실행기(java.exe)를 포함하고 있고 JVM이 중재자로서 각 플랫폼에서 프로그램을 구동하는 데 문제 없게끔 만들어준다. 자바 프로그램의 메모리 사용 방식 프로그램이 실행될때 메모리는 보통 다음과 같이 영역이 나눠서 사용된다. 자바와 같이 객체 지향 프로그램에서는 데이터 저장 영역을 다시 세 개의 영역으로 분할해서 사용한다. 위의 그림을 다시 더 상세한 설명을 덧붙인다면 스태틱 영역은 클래스가 위치하고 스택 영역은 메소드..
SOA (Service Oriented Architecture) SOA 란? SOA란 Service Oriented Architecture의 약자로 서비스 지향 아키텍쳐를 의미한다. 기존의 애플리케이션의 기능들을 비즈니스적인 의미를 가지는 기능 단위로 묶어서 표준화된 호출 인터페이스를 통해 서비스로 구현하고, 이 서비스들을 기업의 업무에 따라 애플리케이션을 구성하는 SW 개발 아키텍쳐를 의미한다. SOA는 또한 서비스 인터페이스를 통한 소프트웨어 컴포넌트의 재사용을 가능하게 하는 방법을 정의한다. 이러한 인터페이스는 매번 깊은 통합을 수행하지 않고도 새 애플리케이션이 빠르게 통합될 수 있는 방식으로 공통 통신 표준을 활용한다. SOA의 각 서비스는 완벽한 개별적 비즈니스 기능(예: 고객 신용 확인, 월별..
CBD (Component Base Development) CBD는 개발 방법론의 핵심 기술인 컴포넌트란 인터페이스로 접근 가능하고 독립적인 기능을 수행하는 모듈로서 교체가 가능한 SW 부품이다. 컴포넌트는 사용방법을 알려주는 설명서를 제공해야 한다. 주변에서 쉽게 볼 수 있는 컴포넌트들에는 윈도우에서 사용할 수 있는 DLL, OCX와 자바로 개발된 Spring 등이 있다. CBD 개발 방법론은 크게 “컴포넌트를 개발하는 CD 단계”와 개발된 “컴포넌트를 사용해서 개발을 진행하는 CBD 단계”로 나눌 수 있다. CD 단계 에서는 도메인을 분석해 컴포넌트 대상 업무를 선별하고 컴포넌트를 개발해 저장소에 입력한다. CBD 단계에서는 요구 분석을 통해 컴포넌트 기반으로 설계하고 필요한 컴포넌트를 저장소에서 찾..
무지성으로 기능 구현에만 집중했던 프로젝트를 리팩토링하면서 여러가지 문제점들이 있다는 것을 알게 됐다. 그 덕에 열심히 다시 Spring에 대한 공부를 하고 있다. 지금 작성하고 있는 포스트에 대한 문제도 사실 해결을 못한 것은 아니다. 하지만 왜 이렇게 해결이 되었는지 문제는 왜 발생한건지 궁금해서 하나씩 다 열어보고 싶어졌다. 그래서 리팩토링을 거친 순서대로 한번 짚어보면서 내용을 정리해보기로 했다. 생성자 주입 방식 프로젝트 리팩토링 대상 중 하나는 바로 생성자 주입 방식으로 변경하는 것이었다. Spring 4.3 버전부터는 생성자 주입 방식을 권장하고 있고 그 이유에는 대표적으로 3가지가 있다. 먼저 이것부터 간단히 짚고 넘어가자. 1. 객체 불변성 확보 @Controller public clas..