프로젝트의 Properties 창을 보면 여러 설정들이 있는데, target이란 디렉토리를 알아보던 중 Java Build Path와 Deployment Assembly 에 대해 정리해 봤다. Java Build Path 1) Source 탭은 컴파일 및 빌드 과정에서 소스 파일들을 이용할 수 있도록 프로젝트 내의 Java 파일 등의 경로를 지정하는 곳이다. 2) 이클립스에서 'Build'는 주로 컴파일을 의미하기에, Java Compile Path라고 생각하면 된다. 3) 'Output folder'의 경로는 java가 소스파일들을 컴파일하여 실행 가능한 .class 파일을 생성하는 경로를 나타낸다. 실제로 '프로젝트명/target/classes' 폴더를 열어보면 각종 설정 파일 및 xml 파일 또한 ..
별표 == 애스터리스크(Asterisk) == 와일드카드(Wildcard) 한국어로는 별표인 *는 애스터리스크 또는 와일드카드라고 불리는데, 개발 소스에서 각종 path 설정을 하는데 있어 자주 사용되기에 정확하게 어떤 의미인지 궁금했다. 찾아보면 Spring설정 파일을 포함하여 많은 프로그래밍 언어에서 패턴 또는 Select쿼리에서 다른 문자를 일치시키거나 대체하는데 사용된다고 설명돼있다. 쉽게 정리하자면, * 와 ** 는 여러 파일 및 디렉토리와 일치하는 경로 또는 특정 패턴을 지정하는데 사용하는 문자다. 추가적으로 동일한 의미인 애스터리스크와 와일드카드가 마치 서로 다른 용어처럼 불리는 이유는 사용되는 분야나 문맥에 따라 다르기 때문이다. 1) 애스터리스크(Asterisk) : 일반적으로 프로그래밍..
Vue.js 란 무엇인지 그리고 핵심 컨셉인 데이터 바인딩(Data Binding)과 컴포넌트(Component)에 대해 간략히 정리해보겠습니다. Vue.js란?? vue.js 자체는 프론트엔드. 즉, View와 관련된 처리들을 개발자 대신 관리해주는 라이브러리이다. 그래서 마치 jQuery를 이용하듯이 Script코드 몇 줄만 작성하면 곧바로 VUE를 적용할 수 있다. 공식 문서에서는 Progressive Framework라고 소개되는데, 이것은 처음 말한 것과 같은 간단한 방법으로 기존 프로젝트를 vue.js로 부분부분 점진적으로 또 쉽게 업데이트해나가며 전환할 수 있음을 의미한다. 근데 여기서 프레임워크라는 단어가 나온다. VUE가 라이브러리이면서 프론트엔드 자바스크립트 프레임워크인 이유는 많은 확..
개발 업무를 하려면 필수적으로 ERD를 보게 되는데, 그냥 어렴풋이 넘겨짚었던 개념을 이제서야 정리한다. DB테이블의 Properties 또는 ERD를 보면 아래 예제처럼 2개 이상의 칼럼이 Primary Key로 지정된 테이블을 볼 수 있다. 지금까지 대강 느낌적으로 잘 사용해서 다행이었지만, 하나의 테이블에 어떻게 기본키가 여러 개 존재할 수 있지?라는 의문을 마음 한구석에 쌓아 두고 있었다. 그래서 확인해본 결과 "테이블은 오직 하나의 기본키(PK)를 가질 수 있다"라는 것은 정확한 정의라는 것을 확인했다. 근데 여기서 포인트는 PK를 오직 하나의 컬럼으로만 설정할 수 있다는 것으로 잘못 해석하면 안 된다라는 점이다. 나는 이 부분을 잘못 이해하고 있었다. 다시 말해, 위 테이블에서 PK로 설정된 ..
EJB(Enterprise Java Bean) Java bean이란 자바 객체를 재사용 가능하도록 즉, 컴포넌트화시킬 수 있는 코딩 방침을 정의한 것을 의미한다. (bean은 쉽게 component 또는 객체라고 이해하면 좋다.) EJB란 엔터프라이즈급 어플리케이션 개발을 단순화하기 위해 발표한 스펙입니다. 개발을 하다 보면 많은 객체들을 만들게 되는데, 이러한 비즈니스 객체들을 관리하는 컨테이너를 만들어서 필요할 때마다 컨테이너로부터 객체를 받는 식으로 관리하면 효율적이겠다. 라는 것에서 탄생합니다. 이러한 취지는 좋았으나, 서비스가 구현해야 하는 실제 비즈니스 로직보다 EJB 컨테이너를 사용하기 위한 상투적인 코드(상속 and 구현해야 하는 클래스)들이 많다는 불편함이 있었습니다. 당연히 작성된 코드..
자바스크립트를 공부하다 보면 프로퍼티(Property)라는 개념이 등장하는데, 대충 넘겨짚고만 있었다가 상황마다 불리는 용어가 구분되는 등 미묘한 차이가 있음을 깨닫고 이번에 정리해봤습니다. 변수와 속성 두 개념과 각각 비교되는데, 어떠한 차이가 있는지 보겠습니다. 실행 컨텍스트와 변수객체(VariableObject) 우선 자바스크립트에서 코드는 크게 Global Context(전역)와 Function Context(함수 영역)에서 실행된다. Global Context란 브라우저의 window 객체와 같이 전체 코드에서 1개만 생성되며, Function Context는 각각의 함수 호출마다 생성된다. 이렇게 실행된 컨텍스트들은 각각 변수객체(VariableObject, VO)를 가지는데, 여기에 우리가 ..
보통 form내의 input태그 값들을 Ajax를 이용해 서버로 보내기 위한 과정에서 serialize() 함수를 이용해왔다. 근데 이번에 checkbox가 무수히 많이 필요한 화면 개발을 하면서 serialize()는 checkbox의 체크된 값만 적용되며, 체크되지 않은 값은 무시한다는 것을 알게 됐다. 아래는 serialize() 함수에 대한 jQuery API 공식문서의 일부이다. 여기서 우리의 문제를 해결해 줄 포인트로, jQuery serialize는 ① 오직 form태그에 포함되어 있는 요소들만을 취급한다는 것과 ② input태그의 "radio"와 "checkbox"타입에서 체크 표시가 된 값만 포함한다고 나와있다. 즉, serialize()는 checkbox에서 체크되지 않은 값은 제외한다..
전체 테이블 스캔(Full Table Scan)1) 테이블에 존재하는 모든 데이터를 읽어 가면서 조건에 맞으면 결과로서 추출하고 조건에 맞지 않으면 버리는 방식이다. 2) Oracle의 경우, 테이블의 고수위 마크(HWM, High Water Mark) 아래의 모든 블록을 읽는다.※고수위 마크(HWM): 테이블에 데이터가 쓰여졌던 블록 상의 최상위 위치(현재는 지워져서 데이터가 존재하지 않을 수도 있음)를 의미. 3) 위 그림과 같이 일반적으로 블록들은 서로 인접되어 있기 때문에, Full Table Scan는 한 번의 I/O에 여러 블록을 옮겨온다. 즉, 한 번의 I/O에 데이터를 다중 블록 단위로 메모리에 가져오기 때문에, Row 당 소요되는 입출력 비용이 인덱스 스캔에 비해 적다. 메모리에 옮겨진 ..
인덱스(Index) 정의 및 특징 1) 원하는 데이터를 쉽게 찾을 수 있도록 돕는 책의 ‘찾아보기’와 유사한 개념으로, 기본적인 목적은 검색 성능의 최적화이다. 즉, 조건을 만족하는 데이터를 인덱스를 통해 효과적으로 찾을 수 있도록 돕는다. 추가적으로 이 부분은 DBA분에게 물어보니 인덱스를 활용한 데이터 조회는 전체 데이터의 15% 이내의 데이터를 조회할 때가 인덱스 효율이 가장 좋으며, 그 이상의 건수에 대한 조회가 필요할 때부터는 효율이 떨어진다고 한다.2) 테이블에 인덱스를 생성하지 않아도 되고 여러 개를 생성해도 된다. → 선택적으로 생성할 수 있는 구조.3) DML 작업(Insert, Update, Delete 등)은 테이블과 인덱스를 함께 변경해야 하기 때문에 오히려 느려질 수 있다는 단점이..
- Total
- Today
- Yesterday
- Maven
- was
- pl/sql
- 컨테이너
- procedure
- 공부 방법
- 정규화
- 비식별자
- DCL
- Block
- tcl
- PLSQL
- 도커
- Docker
- sub query
- Eclipse
- 식별자
- container
- null
- Oracle
- 이클립스
- Java
- Tomcat
- 기본키
- 오라클
- 톰캣
- 서브쿼리
- Database
- SQLD
- Index Scan
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |