전체 글(5)
-
캡슐화
OOP에서의 캡슐화를 공부해보자.. 검색해보면... 객체지향을 공부하면 처음부터 귀에 못이 박히도록 듣는 단어가 있다. 바로 캡슐화다. 캡슐화가 도대체 뭐고, 이게 왜 중요한 요소일까? 일단 위키를 보도록 하자 캡슐화(영어: encapsulation)는 객체 지향 프로그래밍에서 다음 2가지 측면이 있다: 객체의 속성(data fields)과 행위(메서드, methods)를 하나로 묶고, 실제 구현 내용 일부를 외부에 감추어 은닉한다. 그래, 캡슐화는 객체의. 속성과 행위를 하나로 묶고 구현 내용을 외부에 감춘다는 것, 알겠다. 그래서 뭐 어쩌라는건가? 이게 왜 중요한가?? 이에 대한 답을 한번 찾아가 보도록 하자. 위키의 정의에 따르면, 캡슐화는 클래스 안에다가 데이터와 데이터를 처리하는 행위를 묶어 놓..
2022.05.27 -
DI(의존성주입)
DI 개요 DI는 의존성 주입이라고도 하며, IoC라고 하는 소프트웨어 디자인 패턴 중 하나다. 이때의 IoC는 인스턴스를 제어하는 주도권이 역전된다는 의미로 사용되는데, 컴포넌트를 구성하는 인스턴스의 생성과 의존 관계의 연결 처리를 해당 소스코드가 아닌 DI 컨테이너에서 대신해주기 때문에 제어가 역전됐다고 보는 것이다. DI 컨테이너에서 인스턴스를 관리하는 방식에는 다음과 같은 장점이 있다. 인스턴스의 스코프를 제어할 수 있다. 인스턴스의 생명 주기를 제어할 수 있다. AOP 방식으로 공통 기능을 집어넣을 수 있다. 의존하는 컴포넌트 간의 결합도를 낮춰서 단위 테스트하기 쉽게 만든다. 코드의 재활용성을 높여준다. DI 컨테이너(ApplicationContext) 와 빈 정의 방법 [Configurati..
2022.05.27 -
추상화
OOP(객체지향 프로그래밍)에서 중요한 추상화에 대해 알아보자... 검색해보면..... 추상화(Abstraciton) - 공통의 속성이나 기능을 묶어 이름을 붙이는 것 - 객체 지향적 관점에서 클래스를 정의하는 것을 바로 추상화라고 정의 내릴 수 있겠다. 예제 추상화는 일반화를 통해서 구현될 수 있다. 일반화는 구체적인 사물들간의 공통점을 취하고 차이점을 버리는 것을 말합니다. 예를 들어, 아래와 같이 SuperCar, SnowCar, FastCar가 있다고 합시다. public class SuperCar { public void move() { System.out.println("슈퍼하게 달립니다."); } } public class SnowCar { public void move() { System...
2022.05.25 -
다형성(polymorphism)
(개인적으로 쉽게 이해갈것도 같으면서도 , 심화하면 꽤나 깊이 내려갈거같은 느낌... ) 검색결과들... 다형성(polymorphism) 조상(부모)클래스의 인스턴스를 이용하여 자손타입의 클래스를 다룬다거나, 메소드 오버로딩을 통하여 동일 이름의 메소드를 이용하여 다양한 형태의 파라미터를 다루는 것을 뜻한다. 하나의 객체가 여러 가지 타입을 가질 수 있는 것. 이때 참조 변수가 사용할 수 있는 멤버의 개수가 실제 인스턴스의 멤버 개수보다 같거나 적어야 참조할 수 있습니다 하지만 반대의 경우인 자식 클래스 타입의 참조 변수로는 부모 클래스 타입의 인스턴스를 참조할 수 없습니다. 참조 변수가 사용할 수 있는 멤버의 개수가 실제 인스턴스의 멤버 개수보다 많기 때문입니다. - 하나의 코드가 여러 자료형으로 구현..
2022.05.24 -
스프링퀵 공부중 오류1, sysdate
spring을 정리할겸 시작한 스프링퀵 교재... 공부하던중 만난 오류인대 검색해보니 시간이 지나서 이제는 틀린내용(?) 이 된듯한 글들만 잔뜩있는듯하여 희생양을 조금이라도 줄이고자 내가 알아본것을 정리해둔다.. 아래와 같은 내용의 예제 테이블을 입력해야 했는대 자꾸만 오류가 뜨는것 이었다. regdate칼럼부분이 문제인듯하여 일단 빼고 테이블을 생성했더니 되더라는... 아무튼 그래서 regdate 칼럼이 뭐가 문제인가,,해서 검색해본결과 현재 h2 데이터베이스(2022년4월9일 최신버전) 에서는 2가지 달라진점이 있는듯했다. 1. sysdate 명령어가 이전과 조금 달라진듯했다. 할것이 많아서 자세히 알아보지는 않고 같은 결과를 내어주는 current_date로 교체했다. 2. h2 데이터베이스의 초기..
2022.05.07