생활코딩 -Java-

이미지
현재 객체 지향 프로그래밍 전까지 한 상태이다. 숫자와 문자 변수 주석과 세미콜론 데이터 타입 상수의 데이터 타입 형변환 연산자 비교와 boolean 조건문 논리 연산자 반복문 배열 메소드 까지 강의를 본 상태에서 C언어와 달라 외워야 했던 부분들을 정리하고자 한다. 출력 우선 printf()문과 달리 자바는 system.out.println(); 이라 쓴다. system.out.println("문자열을 넣을 수 있다."); 데이터 타입 은 c언어와 유사하다. 주석 은 c언어와 사용법이 같다. 데이터 타입 메모리의 크기 표현 가능 범위 byte 1 byte -128 ~ 127 short 2 byte -32,768 ~ 32,767 int 4 byte -2,147,483,648~2,147,483,647 long 8 byte -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 float 4byte ±(1.40129846432481707e-45 ~ 3.40282346638528860e+38) double 8byte ±(4.94065645841246544e-324d ~ 1.79769313486231570e+308d) char 2byte 모든 유니코드 문자 char도 있지만 string 클래스를 더 많이 쓰는 듯하다. 하지만 클래스를 모르므로 나중에 클래스 공부할 때 찾아보기로 하자. 형변환 에 대해 c언어에서도 자세히 모르지만, 자동형변환의 원칙은 표현범위가 좁은 데이터 타입에서 넓은 데이터 타입으로 변환만 허용한다는 것이다. 즉, int형은 long형이 될 수 있지만 long형은 int형이 될 수 없다. 자바에서는 int b= (int)100.0F 처럼 사용한다. 또한 float a= 10.0F 처럼 사용한다. 비교 는 비슷하지만 자바에는 .equals 메소드가 있다. public sta...

생활 코딩 -Java- & CS50 (Havard)

2015년 6월 1일 ~ 진행 중

알고리즘 문제해결 전략 (1)

DA가 되기 위해 개발자 3년 이상 경력을 쌓고자 프로그래밍에 대해 깊게 공부하고자 알고리즘 공부를 시작. 하지만 책의 예제가 C++이라는게 단점. 3.1 도입 : 코딩의 중요성을 간과하지 말라 코딩 능력이 가장 중요하고 읽기 쉬운 코드를 작성해야 한다. 간결하고 효율적인 프로그램을 작성해야 한다. 3.2 좋은 코드를 짜기 위한 원칙 1)간결한 코드를 작성 전역변수를 많이 사용하지 말자. 매크로를 사용해 간결한 코드를 작성.(프로그래밍 대회에서만!) 2)적극적으로 코드를 재사용 간결한 코드를 작성하기 위한 가장 직접적인 방법은 코드를 모듈화하는 것. 같은 코드가 반복된다면 이들을 함수나 클래스로 분리해 재사용한다. 이상적인 코딩은 한 함수가 두 가지 이상의 일을 해서는 안된다고 한다. (ex 입력을 처리하기 쉬운 형태로 바꾸는 함수, 입력을 읽어들이는 함수 등) 하지만 대회에서는 엄격하게 원칙을 따르지는 못한다. 3)표준 라이브러리 공부 언어의 문자열, 동적 배열, 큐, 리스트, 연관배열 등의 자료구조 , 그리고 정렬 등의 표준적인 알고리즘 구현 사용법을 반드시 잘 알아 두기를 권한다. 4)항상 같은 형태로 프로그램 작성 자주 작성하는 알고리즘이나 코드 등에 대해서는 한 번 검증된 코드를 작성하고 이것만을 꾸준히 사용할 필요가 있다. for문을 애용하다가 다른 코드에서는 while문을 쓰고 do-while 문을 쓰며 계속 바꾸는 것은 좋지 않다. 5)일관적이고 명료한 명명법 사용 실무에서 int a,b,c 이런 변수 명명법을 사용한다면 낙제감이다. 상황에 알맞는 변수 이름과 함수 이름을 사용하는 것이 좋다. 6)모든 자료를 정규화해서 정의 PASS 7)코드와 데이터를 분리 코드의 논리와 상관없는 데이터는 가능한 한 분리하는 것이 좋다. 예를 들어, string getMonthName(int month){             ...

기말고사 (6/10 ~ 6/17)

하루 10분씩 핵심만 골라 마스터하는 SQL (3)

Day 11 하위 쿼리의 이해 쿼리란, 모든 SQL 문을 말한다. 대개 SELECT 문을 의미한다. 예를 들면, SELECT cust_name, cust_concat FROM Customers WHERE cust_id IN ('1000004,10000005') 대신 전에 SELECT 문을 하위 쿼리로 WHERE 절에 넣어보자. SELECT cust_name, cust_concat FROM Customers WHERE cust_id IN (SELECT order_id FROM oderItems WHERE prod_id = 'RGAN01') 처럼 select 문 안에 또 다른 select 문을 넣을 수 있다. 하지만 많은 양의 하위 쿼리는 효율이 좋지 않다. Day 12  테이블 조인 같은 데이터를 여러 번 저장하는 것은 결코 좋지 않다. 이는 바로 관계형 데이터베이스 디자인의 기본 원칙이다. 이에 따라 관계형 테이블은 정보를 여러 테이블로 나누게 되며 각 데이터마다 하나씩 테이블을 만든다. 이러한 여러 테이블은 공통의 값을 통해 서로 연결된다. 왜 조인을 사용하는가? 데이터를 여러 테이블로 나누면 저장 공간을 보다 효율적으로 사용할 수 있고 조작이 간편하며, 확장하기도 편하다. 하지만 이점에 따른 대가도 있다. 데이터가 여러 테이블에 저장되어 있으면 하나의 SELECT 문으로 이 데이터를 어떻게 얻을 수 있을까? 해결책은 바로 조인이다. 간단히 말해 조인은 SELECT 문 내에서 테이블을 연결하는 메커니즘으로, 특별한 구문을 이용해 여러타이블을 하나로 연결해서 하나의 결과를 반환할 수 있으며 조인을 통해 각 테이블의 필요한 행을 연결할 수 있다. SELECT 여러 행 FROM 여러 테이블 WHERE 조건 조인을 만드는 방법은 간단하다. 첨가할 모든 테이블을 지정하고 서로 연결될 방식을 지정하면 된다. 내부조인   지금까지 본 조인은 동등조인으로, 두테이블을 대상으로 ...

하루 10분씩 핵심만 골라 마스터하는 SQL (2)

Day 6 와일드 카드( % ) 가장 자주 사용되는 와일드 카드로 퍼센트 기호 ( % )가 있다. 검색 문자열 내에서 %를 사용하면 개수에 관계없이 모든 문자를 의미한다. SELECT 열의 이름 FROM 테이블의 이름 WHERE 열의 이름 LIKE '% + 검색하고자하는 것 + %'; %는 하나 이상의 문자를 의미하는 것이 아니라 0개 이상 문자를 의미하는 것이다. 즉, 해당 위치에 문자가 아예 없는 경우도 있다. 언더스코어( _ ) 와일드 카드 %와 달리, _는 항상 한 개의 문자만 있어야만 조건이 성립. 괄호( [] ) 와일드 카드 []는 문자의 모음을 지정하는 데 사용. ~ WHERE 열의 이름 LIKE '[JM]%' ~ ; 괄호 내에 있는 문자 중 하나로 시작해야한다. 뒤에 %는 [JM] 뒤로 모든 길이의 모든 문자열이 있을 수 있다는 의미이다. []와일드 카드를 부정할 때, ^[JM]으로 사용할 수 있다. Day 7 필드(열)의 결합 ||를 통해 열을 결합시킬 수 있다. SELECT 열의 이름 || 열의 이름 FROM 테이블의 이름; 또한 괄호() 처리를 할 수 있다. SELECT ' ( ' || 열의 이름 || ' ) ' FROM 테이블의 이름; 위의 명령어를 출력하면 (USA       )처럼 공백이 생긴다. 이 공백을 제거하는 것이 RTRIM() 함수이다. 이 함수는 오른쪽에 있는 공백을 잘라낸다. 별칭 사용 별칭이란 필드나 값의 대체이름으로 , AS 키워드를 사용해 지정할 수 있다. SELECT 열의 이름 AS 별칭 FROM 테이블의 이름; 수학적 계산 SELECT 열의 이름 (+-*/) 열의 이름 AS 별칭 FROM 테이블의 이름; Day 8 함수 LEFT() : 문자열 왼쪽 끝에서부터 지정된 길이만큼 문자를 반환 LENGTH() : 문자열 길이를 반환 LOWER() : 문...

하루 10분씩 핵심만 골라 마스터하는 SQL (1)

Day 1 데이터 베이스란 무엇인가? SQL과 관련된 입장에서 보면 구조적인 방식으로 저장된 데이터의 모음을 말한다. 테이블 파을 케비닛에 정보를 저장할 때 그냥 던져 넣지 않고 서로 연관된 정보를 묶어 파일로 구분하고, 저장할 정보가 어떤 파일에 속하는지찾아 파일을 꺼낸 다음, 그 파일에 끼워넣을 것이다. 즉, 테이블은 특정한 방식으로 데이터를 저장할 수 있는 구조적 파일이다. 스키마 데이터 베이스, 테이블 레이아웃 및 속성에 대한 정보 기본 키 테이블 내에서 각 행을 고유하게 구분하는 데 사용되는 열 SQL이란 무엇인가? Structured Query Language의 약자로 데이터 베이스와의 통신을 위해 고안된 언어이다. Day 2 SELECT 문 SELECT 문의 목적은 하나 이상의 테이블에서 정보를 가져오는 것이다. SELECT 열의 이름,열의 이름.. FROM 테이블 이름 ; SQL언어에서는 명령어의 끝은 세미콜론( ; )으로 마무리한다. 여러 열을 가져올 시, 콤마( , )를 이용해 여러 열을 가져올 수 있다. 모든 열을 가져올 시, 와일드 카드 ( * )를 이용해 모든 열을 가져올 수 있다. 하지만, 와이들카드( * )는 되도록 사용하지 않는 것이 좋다. 왜냐하면 불필요한 열을 많이 가져오게 되면 응용 프로그램의 속도가 느려기지 때문이다. Day 3 ORDER BY 절 알파벳 순으로 정렬하라고 지시하는 것이다. SELECT 열의 이름 FROM 테이블 이름 ODER BY 열의 이름,열의 이름..; ORDER BY 절을 지정할 때는 SELECT 문의 마지막 절이 되도록 해야한다. 그렇지 않으면 오류가 난다. 여러 열을 이용해 정렬할 시, 콤마( , )를 이용해 정렬한다. 또한 열의 위치를 기준으로 정렬이 가능하다. 예를 들어, SELECT prod_id, prod_price, prod_name FROM Products ORDER BY 2,3; 라면, SE...