목록전체 글 (186)
hmk run dev
컴퓨터 안엔 크게 CPU, MEMORY, DISK가 있다. 아주 기본적인 구조로 폰 노이만 구조라고 한다. CPU프로세스 쉽게 말해서 계산하는 역할 ALU - 수학적계산, 산술 연산 등등... 레지스터 - 메모리에 있는 명령들이 쭉 올라와서 계산을 통해 연산을 하게 된다. 프로그램이 실행되고 있는 것 프로세스는 하나의 컴퓨터에 여러 개가 존재할 수 있다. 컴퓨터 작업 관리자에 들어가 보면 내 컴퓨터에서 실행돼있는 프로세스들을 볼 수 있다. 요즘은 멀티코어, 헥사코어들 프로세서가 여러 개인 컴퓨터가 많지만 프로세서가 하나라고 가정할 때 한 개의 CPU(프로세서)는 한개의 명령만 처리가 가능하다. 프로세스가 여러 개 있다고 해도 보통은 CPU에서 처리속도가 매우 빠르기 때문에 동시에 실행되고 있다고 생각할 ..
추상 클래스 사용하는 이유 - 상속을 강제하기 위함 부모 클래스에서 정의만 해놓고, 실제 동작은 자식 클래스에서 하게 됨 이러한 추상 클래스의 성격이 잘 반영되어진 것이 팩토리 메서드 패턴(Factory Method Pattern)이다. 추상클래스는 일반 클래스와 크게 다르지 않다. 단지, 추상 메서드를 선언해 상속을 통해 자손 클래스에서 완성을 유도하는 클래스라고 할 수 있다. 비유하자면 미완성 설계도라고 할 수 있다. 상속을 위한 클래스 이므로 따로 객체생성이 불가능하다. abstract class className { ... public abstract void methodName(); } - 추상 클래스는 인스턴스, 즉 객체를 만들 수 없는 클래스 - 추상 메소드는 하위 클래스에서 메소드 구현을 ..
데이터 조회 시 JOIN이 들어가는 쿼리일 경우엔 특정 레코드엔 NULL인 칼럼이 들어가는 경우가 빈번하다. 이럴 때 특정 레코드의 칼럼이 NULL인 경우 WHERE 조건을 사용하지 않고 싶을 때 아래처럼 구현하면 된다. SELECT * FROM w_schedule ws LEFT OUTER JOIN w_work w WHERE 1=1 AND ((w.wait_yn IS NULL and 1=1 ) or (w.work_stat IS NOT NULL and w.wait_yn = 'N')) 위의 코드처럼 w_work가 조인돼서 생기는 필드인 w.wait이 IS NOT NULL인 경우에 한해 w.wait_yn = 'N' 조건을 걸어준다. FROM w_alliance_work waw LEFT OUTER JOIN w_w..