목록분류 전체보기 (231)
코딩 기록들
Plain Old Java Object : 순수한 자바 오브젝트를 뜻함 POJO 특징 1. 특정 규약에 종속되지 않음 특정 라이브러리, 모듈에서 정의된 클래스를 상속받아 구현하지 않아도 됨 외부의 의존성 두지 않고, 순수한 JAVA로 구성이 가능해야 함 2. 특정환경에 종속되지 않음 외부종속적인 http request, session등은 POJO를 위배한것으로 간주함 @Annotation기반의 설정도 POJO라고 볼수없음 POJO Framework Spring, Hibernate : 객체지향적 설계를 하며, POJO를 지향

응집도 & 결합도 - 좋은 소프트웨어 = 결합도(coupling) 낮추고, 응집도(cohesion) 높여야 함 결합도 클래스(모듈)간 상호의존정도를 나타내는 지표 결합도가 낮으면 : 모듈 간 상호의존성이 줄어들고 -> 객체의 재사용및 유지보수가 유리함 응집도 하나의 모듈 내부에 존재하는 구성요소들의 기능적인 관련성 응집도가 높으면 : 모듈은 하나의 책임에 집중 & 독립성이 높아짐 -> 재사용및 유지보수가 용이함 1. 단일책임원칙 (SRP Single Responsibility Principle) 어떠한 클래스를 변경해야하는 이유는 한가지 뿐이여야 함 2. 개방 폐쇄 원칙 (OCP Open Closed Principle) 자신의 확장에는 열려있고 & 주변의 변화에대해서는 닫혀있어야 함 상위클래스 or 인터..
객체지향의 등장 - 객체지향의 개념 등장 이전 : C언어처럼 실행하고자 하는 순서대로 명령어 입력하여 실행되는 '절차지향' 언어가 주를 이뤘음 : 간단한 로직을 순차적으로 처리하여 결과를 얻었지만, 컴퓨터가 발전하며 프로그램 복잡도가 증가하며 비효율 발생 -> 추상화, 상속, 은닉, 재사용, 인터페이스 등 객체지향으로 개발을 하기 시작함 - 실제 사물을 모델링하여 이들의 '행위', '속성'을 정ㅇ의하고, 객체중심으로 실제 사물이 동작하는 방식으로 설계 - 사물 = 객체 / 사물이 하는 행위 = Method / 사물이 가지는 속성 = 변수 객체 설계하기 - 객체 = 사물 = object - class 에다가 속성 정의함 - 메소드 : 행위 객체의 3가지 요소 1) 상태유지 : 객체의 상채 - 객체의 상태정..

Stack의 특징 맨 마지막 위치(top)에서만 자료를 추가,삭제, 꺼내올 수 있음 ( 중간의 자료를 꺼낼 수 없음) 데이터를 - 제거해서 꺼내는것 : pop /// 넣는것 : push /// 제거하지않고 꺼내보기만 하는것 : pick Last In First Out ( 후입선출 ) 구조 택배 상자가 쌓여있는 모양 가장 최근의 자료를 찾아오거나 게임에서 히스토리를 유지하고 이를 무를때 사용할 수 있음 함수의 메모리는 호출 순서에 따른 stack 구조 jdk 클래스 : Stack 배열 활용하여 Stack 구현하기~ import ch02.MyArray; public class MyArrayStack { //멤버변수는 이렇게만 써놔도 자동으로 초기화가 됨 int top; // int = 0, 객체인경우 = n..

Array 동일한 데이터 타입을 순서에 따라 관리하는 자료 구조 정해진 크기가 있음 요소의 추가와 제거시 다른 요소들의 이동이 필요함 배열의 i 번째 요소를 찾는 인덱스 연산이 빠름 jdk 클래스 : ArrayList(오프벡트 클래스로 되어있음), Vector public class MyArray { int[] intArr; //int array int count; //개수 public int ARRAY_SIZE; public static final int ERROR_NUM = -999999999; public MyArray() { count = 0; ARRAY_SIZE = 10; intArr = new int[ARRAY_SIZE]; } public MyArray(int size) { count = 0;..

자료구조란 무엇인가? (Data Structure) 프로그램에서 사용할 많은 데이타를 메모리 상에서 관리하는 여러 구현방법들 효율적인 자료구조( 프로그램의 수행속도와 밀접한 관련 0)가 성능 좋은 알고리즘의 기반이 됨 자료구조에는 어떤 것들이 있나? 1. 한 줄로 자료를 관리하기 (선형 자료구조) ex) 배열, 연결리스트, 스택, 큐 배열 (Array)_ 선형으로 자료를 관리, 정해진 크기의 메모리를 먼저 할당받아 사용하고, 자료의 물리적 위치와 논리적 위치가 같음 중간이 비면 안됨 (배열은 논리적, 물리적 순서가 동일함) -> 중간에 element 넣으면 뒤에껀 밀어야 함. 특정요소 넣고빼기 쉬움 사이즈만큼 할당받고 시작함 수행속도 : O(n) -> 자료의 추가삭제에는 느림, 특정요소 위치 찾기는 빠름..
Class 클래스 자바의 모든 클래스와 인터페이스는 컴파일 후 class 파일이 생성됨 Class 클래스는 컴파일 된 class 파일을 로드하여 객체를 동적 로드하고, 정보를 가져오는 메서드가 제공됨 Class.forName("클래스 이름") 메서드로 클래스를 동적으로 로드 함 Class c = Class.forName("java.lang.String"); //String클래스에 대한 Class를 가져옴 -> 런타임시 필요한 클래스를 로딩시켜 사용함(=동적로딩) 클래스 이름으로 직접 Class 클래스 가져오기 Class c = String.class; 생성된 인스턴스에서 Class 클래스 가져오기 String s = new String(); Class c = s.getClass(); //Object 메서..

String 클래스 String 선언하기 사용방법 1. new 해서 사용 -> '힙'에 메모리가 생성됨 String str1 = new String("abc"); 2. 직접 assign해서 사용 -> '상수pull'에 abc라는 string이 있고, 그 string에 address만 가리키는것 String str2 = "abc"; 힙 메모리에 인스턴스로 생성되는 경우와 상수 풀(constant pool)에 있는 주소를 참조하는 두 가지 방법 힙 메모리는 생성될때마다 다른 주소 값을 가지지만, 상수 풀의 문자열은 모두 같은 주소 값을 가짐 public class StringTest { public static void main(String[] args) { //힙에 집히는것 String str1 = new..