정의 자바프로그래밍하면 객체지향프로그래밍 OOP(Object Oriented Programming)라고 해도 됩니다. OOP의 특성으로 크게 캡슐화, 추상화, 다형성, 상속성 정도는 명확하게 알고있어야 합니다. 어떤 대상을 Abstraction하여 공통점을 찾고, 그것을 Encapsulation하여 한군데에 모아서 객체를 만들고, Inheritance하여 재사용이 가능하게 만들어줍니다. 상속받은 객체는 Polymorphism 하여 기능을 수정 또는 추가하여 재사용할 수 있다로 이해하면 됩니다. 결국 가장 중요한 것은 동일하게 반복하여 사용하는 코드를 줄이기 위해 OOP를 사용합니다. 유지보수의 관점에서도 좋겠죠? 1. 추상화 (Abstraction) 나중에 따로 추상클래스(Abstract Class)와 ..
ORM(Object-relational mapping)을 단순하게 표현하면 객체와 관계와의 설정이라 할 수 있다. ORM에서 말하는 객체(Object)의 의미는 우리가 흔히 알고 있는 OOP(Object_Oriented Programming)의 그 객체를 의미한다는 것을 쉽게 유추할 수 있을 것이다. 그렇다면 과연 관계라는 것이 의미하는 것은 무엇일까? 지극히 기초적인 이야기지만 개발자가 흔히 사용하고 있는 관계형 데이터베이스를 의미한다. 그렇다면 도대체 무엇이 문제여서 객체와 관계형 데이터베이스 간의 매핑을 지원해주는 Framework나 Tool들이 나오는 것일까? ORM framework나 도구가 없던 시절에도 이미 우리는 OOP를 하면서 객체와 관계형 데이터베이스를 모두 잘 사용하고 있었음에도, 굳..
공통점 추상클래스와 인터페이스는 선언만 있고 구현 내용이 없는 클래스다. 자바8부터 인터페이스에 default method 구현이 가능해졌지만 일반적으로 인터페이스는 구현이 없다. 인터페이스와 추상클래스를 가지고 새로운 인스턴스(객체)를 생성할 수 없다. 추상클래스를 extends로 상속받아 구현한 자식클래스나 인터페이스를 implements 하고 구현한 자식클래스만이 객체를 생성할 수 있다. => 결국 자식클래스가 무언가 반드시 구현하도록 위임해야할 때 사용해야 한다. 차이점 1.추상클래스 추상클래스는 추상메서드(abstract method)가 하나라도 존재하는 클래스를 말한다. 즉, 일부는 구현된 메서드도 있을 수 있고, 일부는 abstract method로 구현이 되어있지 않은 메서드도 있을 수 있..
DDL(Data Definition Language) - 데이터 정의 언어 : 테이블이나 관계의 구조를 생성하는데 사용하며 CREATE, ALTER, DROP,TRUNCATE 문 등이 있다. CREATE - 새로운 데이터베이스 관계 (테이블) View, 인덱스 , 저장 프로시저 만들기. DROP - 이미 존재하는 데이터베이스 관계 ( 테이블 ) , 뷰 , 인덱스 , 저장 프로시저를 삭제한다. ALTER - 이미 존재하는 데이터베이스 개체에 대한 변경 , RENAME의 역할을 한다. TRUNCATE - 관계 ( 테이블 )에서 데이터를 제거한다. ( 한번 삭제시 돌이킬 수 없음.) DML(Data Manipulation Language) - 데이터 조작 언어 : 테이블에 Record의 데이터 검색, 삽입, ..
일단은 어쩔 수 없는 과부하가 발생하기 전에 사전 모니터링을 해서 과부하를 줄여야합니다. 과부하가 발생하면, 서비스의 속도가 저하되거나 서비스가 접속 불가능한 상황이 됩니다. 두 가지 측면으로 서비스 병목 지점을 찾을 수 있습니다. 다음으로 설명을 시작하겠습니다. Infra 측면에서 서비스의 병목 지점을 일단 찾아야한다. 예를 들어, 3-tier 구조인 Client-Server-DB에서 Server와 DB 중에 어느 부분이 지금 높은 시스템 자원을 사용하고 있는지 확인합니다. 대부분은 Server나 DB 둘 중 한 부분에서 병목지점을 확인할 수 있습니다. WAS에서 병목현상이 발생할 경우에는 WAS 자체를 Scale-Up 또는 Scale-Out을 고려해야합니다. 일시적인 트래픽 증가로 인한 과부하는 Sc..