* raw data - 가공이 안 된 순수한 데이터들의 집합(원본 데이터) * 관계형 데이터 베이스의 키 1) 후보키 (Cadidate key) - 행(튜플) 을 유일하게 식별할 수 있는 키 - 기본키가 될 수 있는 후보를 후보키 라고 합니다 2) 기본키 (Primary key) - 후보키 중에서 선택한 주키 - 행(튜플) 을 유일하게 식별할 수 있는 키 - not null, 중복 x 3) 대체키 (Alternate key) - 후보키가 둘 이상일 대 기본키를 제외한 나머지 후보키 4) 슈퍼키 (Super key) - 테이블(릴레이션) 내에 있는 속성들의 집합으로 구성된 키(2개로 이루어진 키) 5) 외래키 (Foreign key) - 참조되는 테이블(릴레이션)의 기본키와 대응되어 참조관계를 표현하는 키..
구현 * 느낀점 스스로 기본 개념 숙지가 미숙한 것을 알 수 있었고, 프로젝트 할 때 동료와 지속적으로 소통하고 부족한 부분에 대해 채워 나가며 배우는 부분들이 많았다. 무엇보다도 협업이 매우 중요한 것 같다. 코드 부분에 있어서 조금 더 깔끔하고 정리 된 코드를 사용할 수 있도록 노력해야 할 것 같고 처음에 구현하고 싶었던 것은 서울시 전체의 데이터를 받아 구별로 나누고, 동별, 월별 검색했을 때 정보를 알 수 있는 프로젝트를 만들고 싶었는데 많은 양의 데이터를 처리하는 것에 어려움이 있었다. 위와 같은 코드를 상속 받아 스윙을 써보면 사용자가 더욱 더 직관적으로 볼 수 있었을 것 같은 아쉬움이 남는 프로젝트이다.
IO: 파일 입출력, 네트워크, 화면 출력- 시간이 오래 걸리는 작업(스레드나 비동기로 처리해야 함) 연산: 시간이 짧게 걸리는 작업 1. Multi Thread - 2개 이상의 스레드가 수행중인 상황, 대부분의 경우 1) Priority(우선 순위): 누가 언제, 자주 2) Thread Group: 여러개의 스레드 관리, semaphore 3) Mutual Exclusion(상호 배제) - 하나의 스레드가 사용 중인 공유자원은 다른 스레드가 수정할 수 없다 - Lock과 synchronized로 해결 4) 생산자와 소비자 문제 - wait와 notification으로 해결 5) Dead Lock - 결코 발생할 수 없는 사건을 무한정 기다리는 것 2. 정규 표현식(Regular Expression) 1..
1. Nested class(내포 클래스) - 클래스 안에 존재하는 클래스 - 자바는 클래스 안에 클래스를 생성하는 문법을 지언 1) Inner Class - 클래스 안에 존재하는 클래스 - 클래스 내부에서만 사용할 목적으로 생성 - 일반 클래스는 접근 지정자가 package(접근 지정자가 없는 경우) 와 public 만 가능하지만 inner class에서는 private와 protected도 가능 - 클래스가 컴파일 되었을 때는 외부 클래스 이름$내부 클래스 이름.class 2) Static Inner Class - class 앞에 static을 붙이는 클래스 - 내포 클래스에 static 멤버가 있으면 일반 inner class는 에러 발생 - 내포 클래스에 static 멤버가 있는 경우 인스턴스 생..
- 입출력 할 때에는 예외처리 알아둘 것(batch) - window r-cmd - 메모 파일 드래그 해서 넣으면 경로 나옴 ** Java Input/Output - java.io 패키지에서 담당 1. 기반 지식 1)디렉토리 구분 기호 - Windows: \ - Windows 이외: / - 직접 지정하면 운영체제 별로 따로 설정 – File.seperator를 이용하면 현재 운영체제의 구분 기호를 사용할 수 있음 2)경로 1>절대 경로: 루트로부터의 위치 Windows → 루트드라이브:\디렉토리경로\파일이름 Web → 프로토콜://자원경로 그 이외의 경우 → /루트디렉토리/디렉토리경로/파일이름 Windows 경우는 디렉토리 기호가 \ 그 이외의 경우는 / 2>상대 경로: 현재 위치로부터의 경로 ./: 현..
1. 형상 관리(Software Configuration Management): 변경 사항을 관리 - 소스 코드 버전 관리(VCS-Version, Control, System) - 문서에 작성 2. stack: list구조(Last In First out) - 자료구조에 제너릭이 적용되어 있다. 데이터 삽입: push push(10) push(20) 데이터 가져오기 : pop - top의 위치의 데이터를 삭제하고 가져옴 pop(): 20 pop(): 10 pop() underflow: 데이터가 없는데 pop overflow: 더 이상 저장할 공간이 없는데 push 용도: 함수의 데이터 저장 - 삼단 네이밍으로 이름 지을 수 있도록 할 것 3. API collection Class 1. list 1) st..
1.Arrays 클래스 - binarySearch 메서드: 제어검색(정렬이 된 상태에서 검색을 수행) 중에 이분 검색을 수행해서 데이터가 존재하면 그 데이터의 위치를 리턴하고 존재하지 않으면 음수를 리턴하는 메서드 도큐먼트: java.util. → Arrays * 실습: 문자열 배열에서 문자열의 위치 찾기 2. Fibonacci 수열 1) 피보나치 수열 - 첫번째와 두번째 데이터는 무조건 1으로 고정 - 세번째부터는 앞의 2개의 항의 합(규칙은 3번째 부터) ex) 1, 1, 2, 3, 5, 8, 13, 21, 34, 55 2) 재귀를 이용한 해결 - 시간이 오래 걸리지만(처리 속도가 느림) 이해하기는 쉬움 - 하노이의 탑 3) 재귀를 이용하지 않고 해결 - 시간을 단축할 수 있지만 이해하기가 어려울 수..
Wrapper class → java의 기본 자료형을 클래스화 한 클래스 byte, int... Byte(일반화 가능) object(자바의 최상위 클래스)로부터 상속을 받고, 발전 시켜서 generic Byte, Short, Charactor, Integer, Long, Float, Double, Boolean 어떻게 기본 자료형의 데이터를 wrapper로 바꿀 것인지 Wrapper를 어떻게 기본 자료형으로 바꿀 건지 문자열과 wrapper의 변환 int x = 10; new Integer(x); 생성자를 불러서 변환 했었음 Integer i = 10; 실제로 이렇게 썼지만 내부적으로는 10이 new Integer(10); 이렇게 실행 됨 int x = i; 문자열을 wrapper로 할 때는 생성자를 이..