전체 글(76)
-
[정보처리기사 실기] 1장 요구사항 확인 - 소프트웨어 개발 방법론
소프트웨어 개발 방법론 소프트웨어 생명 주기 모델 ( Software Development Life Cycle : SDLC) (1) 개념 시스템의 요구분석부터 유지보수까지 전 공정을 체계화한 절차 -> 작업 프로세스 모델화 (2) 모델 프로세스 요구사항 분석 요구사항 고려 후 제품에 부합하는 요구와 조건을 결정 기능과 제약 조건, 목표 등을 사용자와 명확히 정의 기능 요구사항 비기능 요구사항 설계 수행 방법을 논리적으로 결정하는 단계 시스템 구조설계 프로그램 설계 사용자 인터페이스 설계 구현 특정 언어를 사용해 프로그램 개발 언어, 기법, 스타일, 순서 등 결정 인터페이스 개발 자료 구조 개발 오류 처리 테스트 예상과 실제 결과를 검사하고 평가하는 단계 단위, 통합, 시스템, 인수 테스트 유지보수 설치된..
2022.04.04 -
[JAVA] 객체 지향이란?
등장 C 언어 처럼 실행하고자 하는 순서대로 명령어 실행 -> 절차 지향 -> 절차 지향 언어라고 불림 대체적으로 간단한 로직을 순차적으로 처리하여 결과를 얻는데 -> 컴퓨터가 발전함에 따라 복잡도가 증가하고 유지 보수나 개발 기간 등 여러 방면에서 비 효율적이라 판단되었다. 이를 대체 하기 위해 효과적인 방식으로 개발을 하기 위해 객체 지향 개발 방법이 설계되었다. 특징 추상화 상속 은닉 재사용 인터페이스 여러 곳에서 객체 지향으로 개발을 시작한다. 현실에 존재하는 사물을 그대로 모델링해 행위와 속성을 정의하고, 실제 사물이 동작하는 방식으로 설계 사물 == Object 사물이 하는 행동 == Method 사물이 지닌 속성 == Variable 객체의 3가지 요소 3 가지를 유지해야 하고, 이를 유지 ..
2022.04.03 -
[Effective Java] 아이템 9 : try-finally 보다는 try-with-resources를 사용하라
try-finally InputStream, OutputStream, java.sql.Connection -> 클라이언트가 지나칠 가능성이 있기에 성능에도 문제를 줄 수 있다. 그래서 안전망으로 아이템 8에서 사용한 Finalizer를 사용한다. 또한, 자원이 닫히는 것을 보장하는 try-finally가 존재한다. https://devaily.tistory.com/34 [Effective Java] 아이템 8 : finalizer와 cleaner 사용을 피하라 자바의 객체 소멸자 Finalizer : 예측할 수 없고, 상황에 따라 위험할 수 있어 일반적으로 불필요, 그냥 쓰지 마세요.. 그냥 쓰지 말라고 Cleaner : Finalizer 보다는 덜 위험하지만, 여저힌 위험하고, 불 devaily.tis..
2022.03.31 -
[Effective Java] 아이템 8 : finalizer와 cleaner 사용을 피하라
자바의 객체 소멸자 Finalizer : 예측할 수 없고, 상황에 따라 위험할 수 있어 일반적으로 불필요, 그냥 쓰지 마세요.. 그냥 쓰지 말라고 Cleaner : Finalizer 보다는 덜 위험하지만, 여저힌 위험하고, 불필요하다. C++의 destructor와 Java의 finalizer & cleaner 파괴자는 특정 객체와 관련된 자원을 회수하는 보편적인 방법이고 자바의 소멸자들은 접근할 수 없게 된 객체를 회수하는 역할을 가비지 컬렉터가 담당한다. 자바에서는 try-with-resources와 try-finally를 사용해 해결한다. 왜 Finalizer와 Cleaner의 사용을 자제해야하나? Finalizer와 Cleaner는 즉시 수행된다는 보장이 전혀 없다. 위 두 가지로는 데때 실행되야..
2022.03.30 -
[Effective Java] 아이템 7 : 다 쓴 객체 참조를 해제하라
다 쓴 객체 참조를 해제하라 C같은 메모리를 직접 관리 하는 언어에서 자바와 같이 Garbage Collector를 가진 언어를 사용하면 편리성은 증대해진다. Garbage Collecotor가 사용한 객체를 회수하기 때문이다. 그렇다고 메모리 관리에 주의를 기울이지 않으면 안된다. public class Stack { private Object[] elements; private int size = 0; private static final int DEFAULT_INITIAL_CAPACITY = 16; public Stack() { elements = new Object[DEFAULT_INITIAL_CAPACITY]; } public void push(Object e) { ensureCapacity()..
2022.03.16 -
[Effective Java] 아이템 6 : 불필요한 객체 생성을 피하라
재사용성 같은 기능의 객체를 매번 생성하는 것 보다는 객체 하나를 재사용하는 것이 더 좋다. 재사용을 하면 반응 속도가 더 빠르고 코드도 세련되어 보인다. 특히 불변 객체는 언제든 재사용할 수 있다. String s = new String("bikini"); 이런 코드는 사용하지 않아야 하는 극단적인 예이다. 왜냐? 코드가 실행 될 때마다 String 인스턴스를 계속 생성해낸다. 만약 이 코드가 반복문이나 자주 호출되는 메소드 안에 존재한다면 실행시 쓸데없는 생성만 계속 될 것이다. 어떻게 사용해야 하나? String s = "bikini"; 이렇게 매번 new 생성자로 새로 생성되는 것이 아니라. 딱 하나의 인스턴스만 사용하게 사용하자. 이와 같이 인스턴스를 사용하면 같은 객체를 재사용할 수 있게 보장..
2022.03.16