목록STUDY/Java (11)
archive
Arrays.copyOf(), Arrays.copyOfRange()메서드를 이용해서 배열을 복사할 수 있다. 이 때, 복사를 시작할 인덱스, 끝나는 인덱스를 지정해 배열 슬라이싱을 구현할 수 있다. int[] arr = {0, 1, 2, 3, 4, 5}; int[] arr1 = Arrays.copyOfRange(arr, 0, 3) // [0, 1, 2] int[] arr2 = Arrays.copyOfRange(arr, 3, arr.length); // [3, 4, 5]
스프링을 입문을 위한 자바 객체 지향의 원리와 이해 를 읽고 정리한 글입니다. 스프링을 이해하는 데에는 스프링의 삼각형이라고 불리는 3대 프로그래밍 모델, IoC/DI, AOP, PSA에 대한 이해가 필수다. IoC/DI - 제어의 역전/의존성 주입 자바에서의 의존성을 단순히 정의하면 new 다. 전체가 부분에 의존한다고 표현할 수 있다. 사실상 변수에 값을 할당하는 모든 곳에 의존관계가 생긴다. 의존 대상이 내부에 있을 수도, 외부에 있을 수도 있다. DI는 외부에 있는 의존 대상을 주입하는 것을 말한다. 의존 대상을 구현, 배치할 때 SOLID와 "응집도는 높이고 결합도는 낮추라"는 기본원칙에 충실해야 한다. (참고) 의존하는 객체와 의존되는 객체 사이에 집합 관계와 구성 관계로 구분된다. 집합 관계..
앞서 객체 지향의 4대 원칙(캡슐화, 상속, 추상화, 다형성)은 요리도구에 해당하고, 설계 원칙(SOLID)은 요리 도구 사용법에 해당한다면, 디자인 패턴은 레시피에 해당한다. 즉, 많은 경험에 의해 만들어진 표준 개발 패턴이다. 디자인 패턴은 객체 지향의 특성 중 상속, 인터페이스, 합성(객체를 속성으로 사용)을 이용한다. 참고로 스프링은 객체 지향의 특성과 설계 원칙을 극한까지 적용한 OOP 프레임 워크이다. 어댑터 패턴(Adapter Pattern) 어댑터를 직역하면 변환기라는 뜻이다. 어댑터의 역할은 서로 다른 두 인터페이스 사이에 통신이 가능하게 하는 것이다. ODBC/JDBC가 바로 어댑터 패턴을 이용해 다양한 데이터베이스 시스템을 단일 인터페이스로 조작하게 해주는 예이다. 결국 개방 폐쇄 원..
스프링을 입문을 위한 자바 객체 지향의 원리와 이해 를 읽고 정리한 글입니다. 도구를 올바르게 사용하는 방법이 있는 것처럼 객체 지향 언어를 이용해 객체 지향 프로그램을 올바르게 설계하는 5원칙이 바로 SOLID 이다. 응집도(Cohension)는 높이고, 결합도(Coupling)는 낮추라는 고전 원칙을 객체 지향의 관점에서 재정립한 것이다. (결합도 - 모듈(클래스)간의 상호의존도, 응집도 - 하나의 모듈 내부에 존재하는 구성요소들의 기능적 관련성) SOLID는 객체지향의 4대 특성을 발판으로 하고 있으며 디자인 패턴의 뼈대가 되고, 스프링 프레임워크의 근간이기도 하다. 이를 잘 녹여낸 소프트웨어는 상대적으로 이해하기 쉽고, 리팩터링과 유지보수가 용이하다. SRP(Single Responsibility..
스프링을 입문을 위한 자바 객체 지향의 원리와 이해 를 읽고 정리한 글입니다. abstract키워드 - 추상메서드와 추상클래스 추상메서드(Abstract Method)는 선언부만 있고 구현부가 없는 메서드를 말한다. 추상메서드를 하나라도 갖고 있는 클래스는 반드시 추상 클래스(Abstract Class)로 선언해야 한다. 추상 클래스는 인스턴스를 생성할 수 없으며, 하위 클래스는 반드시 추상 메서드를 오버라이딩 해야한다. 생성자 클래스의 인스턴스, 즉 객체를 만들 때는 new 키워드를 사용한다. 반환값이 없고 클래스명과 같은 이름을 가진 메서드를 객체 생성자 메서드, 줄여서 생성자라고 한다. 컴파일 과정에서 인자가 없는 기본생성자가 자동으로 생성된다. 필요시에 인자를 가지는 생성자를 작성할 수 있다. 이..
스프링을 입문을 위한 자바 객체 지향의 원리와 이해 를 읽고 정리한 글입니다. 객체지향은 인간지향이다. 개발자를 좀 더 편하게 하고 현실 세계처럼 프로그래밍하기 위해 객체 지향의 개념이 탄생했다. 기존의 구조적 프로그래밍 언어는 코드를 논리적인 단위로 구분하고 분할해서 정복한다. 이런 논리적인 단위의 블록을 함수라고 한다. 객체 지향은 모든 것을 객체(Object)라 보고, 이를 분류(Class)하여 인지한다. 각 분류안의 객체들은 속성(Property)와 행위(Method)를 가지고 있다. 객체지향 이전에는 속성 따로 행위 따로 분리된 형태였다면, 객체 지향에서는 우리가 사고하는 방식대로 프로그래밍이 가능해졌다. 따라서 객체지향은 직관적이고 쉽고 인간적이다. 객체 지향의 4대 특성 캡 - 캡슐화(Enc..