목록자바/관련상식 (13)
gpffh1011

절차지향(procedural Programming) 절차지향 프로그래밍은 물이 위에서 아래로 흐르는 것처럼 순차적인 처리가 중요시 되고 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법을 말합니다. 대표적인 절차지향 언어에는 C언어가 있는데, 이는 컴퓨터의 작업 처리 방식과 유사하기 때문에 객체지향 언어를 사용하는 것에 비해 더 빨리 처리되어 시간적으로 유리하다고 볼수 있습니다. 옛날에는 하드웨어와 소프트웨어의 개발 속도차이가 크지 않았다면 지금은 하드웨어의 개발속도가 소프트웨어의 속도를 따라오지 못하는 상황이 발생합니다. 이는 객제치향 언어가 나타나면서 이러한 현상이 존재하게되었습니다. 장점 - 컴퓨터의 처리구조와 유사해 실행속도가 빠르다 - 메모리를 직접 조작할수있다. 단점 - 유지보수가 ..
1. 디자인패턴 (디자인 패턴은 소프트웨어 공학론 안의 좋은 코드를 설계하기 위한 일종의 설계 디자인 방법론) 디자인 패턴은 객체지향 언어에서 클래스와 클래스의 메서드를 사용하는 패턴, 즉 특정 의도를 가지는 방법을 의미한다. 코딩을 혼자 하는 경우는 드물며 보통 다른 개발자와 함께 개발을 하기 때문에 내가 작성한 코드가 다른 사람이 알아볼 수 없으면 제법 곤란하지 않을 수가 없다. 그러므로 작성 코드는 최대한 간결하고 모두가 알아 볼 수 있는 내용으로 작성해야 한다. 1). 코딩이 명확하고 단순하며, 2). 모듈( class나 function 등 )은 한 가지 기능만 하도록 작게 세분화 시킬 수 있으며 3). 재사용성이 높고 4). 유지 보수가 쉬우며 5). 리소스의 낭비가 없는지 숙지하여 < 디자인패..

메이븐(Maven)과 의존성 관리도구 메이븐은 의존성 관리도구이다. Apache Maven의 사전적 정의는 다음과 같습니다. Apache Maven은 자바용 프로젝트 관리도구로 Apache Ant의 대안으로 만들어졌다. Apache License로 배포되는 오픈 소스 소프트웨어이다. Java 기반 프로젝트의 라이프사이클 관리(논리적인 작업 흐름)를 자동화 빌드 도구이다. 즉, 자바 소스를 컴파일하고 패키지해서 배치하는 일을 자동화 해주는 것 Maven의 장점 라이브러리의 관리를 매우 용이하게 해준다. 컴파일과 빌드를 동시에 수행, 테스트를 병행하거나 서버 측 *Deploy 자원을 관리할 수 있는 환경을 제공한다. 프로젝트의 작성부터 컴파일, 페트스 등 프로젝트 라이프사이클에 포함되는 각 테스트를 지원해준..
의존성(Dependency) 의존성이란 사전적으로 다른 것에 의지하여 생활하거나 존재하는 성질 이라는 의미를 가지고 있습니다. 자바에서의 의존성은 무엇일까요? 의사 코드 운전자가 자동차를 생산한다. 자동차는 내부적으로 타이어를 생산한다. Java 로 표현 Car car = new Car(); Car() { Tire tire = new Tire(); //Car 객체 생성자에서 타이어 생성 } 그리고 단순 무식하게 의존성이란? 의존성은 new 이다. new 를 실행하는 Car 와 Tire 사이에서 Car 가 Tire 에 의존한다고 합니다. 결론적으로 전체가 부분에 의존한다고 표현할 수 있습니다. 더 깊이 들어가면 의존하는 객체(전체)와 의존되는 객체(부분) 사이에 집합 관계(Aggregation)와 구성 관..
가비지(Garbage)란? 가비지는 '정리되지 않은 메모리', '유효하지 않은 메모리 주소'를 말한다. 아래 코드로 가비지의 예를 들어보았다. String[] array = new String[2]; array[0] = '0'; array[1] = '1'; array = new String[] {'G', 'C' }; 위 코드에서 G와 C가 할당되기 전에 할당한 0과 1은 어디로 갔을까? 이렇게 주소를 잃어버려서 사용할 수 없는 메모리가 바로 '정리되지 않은 메모리=가비지'이다. 프로그래밍 언어에서는 Danling Object, 자바에서는 Garbage라고 부른다. 추가로 앞으로 사용하지 않고 연결된 리모콘이 없으며, 메모리를 가지고 있는 객체 역시 Garbage에 포함된다. 가비지 콜렉터(Garbage ..