Language
Java의 예외 계층
김영한님 스프링 DB 접근 1편 - 예외처리부분을 보고 정리한 내용입니다. Exception, 예외란? 예외는 크게 두 종류로 나뉘게 된다. Checked Exception와 Unchecked Exception 그리고 예외에 해당되지 않은 Error가 있다. 예외란 개발자가 로직을 잘못 짰거나 혹은 사용자가 잘못된 값을 넘겨 정상적인 프로그램 흐름에서 벗어나는 행위를 말한다. 보통의 개발자는 예외가 나올 수 있는 상황을 미리 예측하여 예외처리를 한다.. 오류는 하드웨어에서 문제가 발생하는 경우도 있고, 완전 잘못된 로직을 짠 경우 등 시스템 레벨에서 발생하는 비정상적인 행위이기에 미리 예측해서 막을 필요가 없다. 예외도 하나의 객체이며, 모든 최상위 부모는 'object'이기에 예외의 최상위 부모도 Ob..
클래스와 객체, 인스턴스
클래스와 객체 클래스란 객체를 정의해놓은 것 혹은 객체의 설계도, 틀이라고 정의할 수 있다. 클래스는 객체를 생성하는 데 사용되며 객체는 클래스에 정의된 대로 생성이 된다. 객체의 사전적인 정의는 실제로 존재한는 것이다. 우리가 주변에서 볼 수 있는 책상, 의자, 자동차와 같은 사물들이 곧 객체이다. 객체지향이론에서는 사물과 같은 유형적인 것뿐만 아니라, 개념이나 논리와 같은 무형적인 것들도 객체로 간주하지만 프로그래밍에서의 객체는 클래스에 정의된 내용대로 메모리에 생성된 것을 의미한다. 클래스의 정의 : 클래스란 객체를 정의해 놓은 것 클래스의 용도 : 클래스는 객체를 생성하는 데 사용된다. 객체의 정의 : 실제로 존재하는 것, 사물 또는 개념 객체의 용도 : 객체가 가지고 있는 기능과 속성에 따라 다..
객체지향언어와 역사
객체지향언어의 역사 요즘은 컴퓨터의 발전으로 컴퓨터가 사용되지 않는 분야가 없을 정도이지만, 초창기에는 주로 과학실험이나 미사일 발사실험과 같은 모의 실험을 목적으로 사용되었다고 한다. 그래서 이 시절의 과학자들은 모의실험을 위하여 실제 세계와 유사한 가상 세계를 컴퓨터 속에 구현하고자 노력하였으며 이는 객체지향이론을 탄생시켰다고 한다. 객체지향이론의 기본 개념은 실제 세계는 사물(객체)로 이루어져있으며, 발생하는 모든 사건들은 사물(객체)간의 상호작용이다라는 것이다. 실제 사물의 속성과 기능을 분석한 다음, 데이터와 함수로 정의함으로써 실제 세계를 컴퓨터 속에 옮겨놓은 거과 같은 가상 세계를 구현하고 가상 세계 속에서 모의 실험을 함으로써 많은 시간과 비용을 절약할 수 있었다고 한다. 객체지향이론은 상..
[JAVA] 연산자(1) 연산자의 종류와 우선 순위, 결합 규칙
연산자는 연산을 수행하는 기호를 의미하며, 사칙 연산자 논리 연산자 등 다양한 연산자가 존재한다. 연산자가 연산을 수행 할 때는 연산의 대상이 있어야 하는 데, 이를 피연산자라고 한다. 연산자와 피연산자를 조합해 계산하고자 하는 바를 표현한 것을 식이라고 하며, 식을 계산하면 얻는 결과를 평가라고 한다. 연산자의 종류 종류 연산자 설명 산술 연산자 + - * / % > 사칙 연산자와 같은 연산자 비교 연산자 > = y - 2 // 산술 연산자가 비교 연산자보다 먼저 수행된다. X > 3 && x < 5 // 비교 연산자가 논리 연산자보다 먼저 수행된다. result = x + y // 대입 연산자는 연산자 중에서 우선 순위가 제일 낮다. 하나의 식에 같은 우선 순위의 연산자가 여러개가 있는 경우, ..
[Java] 자바의 자료형
Java의 자료형은 기본형과 참조형 두가지로 구분이 가능하다. 기본형은 실제 값을 가지고, 참조형은 어떤 값이 저장되어있는 주소를 값으로 가진다. Java의 기본 자료형은 아래의 표와 같다. 종류 키워드 크기 허용 범위 논리형 boolean 1 byte false, true 문자형 char 2 byte '\u0000' ~ 'uFFFF' 정수형 byte 1 byte -128 ~ 127 short 2 byte -32,768 ~ 32,767 int 4 byte -2147483648 ~ 2147483647 long 8 byte - 9,223,372,036,854,775,808~9,223,372,036,854,775,807 실수형 float 4 byte ±1.4E-45 ~ 3.4E38 double 8 byte ±..
[Python] 람다 함수
람다 함수란? 작고, 이름이 없는 함수를 말한다. 람다 함수 선언 및 사용 람다 함수는 임시적으로 사용하는 것이기에, 정의가 되지 않지만 변수에 저장하여 사용할 수도 있고, 선언하자마자 호출이 가능하다. # lambda 인자 : 실행식 lamda a, b : a + b # 즉시 호출 print((lambda a, b : a + b)(3, 5)) # 8 # 변수에 람다 함수 저장 add = lamda a, b : a + b print(add(3, 6)) # 9
[Python] 함수
함수란? 특정한 기능을 수행하는 프로그램 단위이다. 파이썬에서의 함수는 사용자 정의 함수와 내장 함수로 나누어진다. 함수 선언 및 호출 # 함수 선언 def a (): print("hello") # 들여쓰기 주의 a() # 함수 호출 # "hello" 파이썬에서 함수 선언 할 때 주의점은 들여쓰기다. 함수를 선언하고 함수에 포함될 코드는 들여쓰기를 사용하여 작성한다. 다른 언어에서도 마찬가지지만, 함수 정의와 호출은 다르다. 함수를 def ~~를 하면 함수를 만들고, 선언 하는 것으로, 실행이 되지 않는다. 선언한 함수를 실행하기 위해서는 호출을 해야하는 데, 호출을 하는 방법은 함수명() 이다. 함수의 인자 이용 기본적인 인자는 아래와 같이사용한다. # 리턴이 있는 함수 선언 def add(a, b):..
[Python] 딕셔너리
딕셔너리란? 딕셔너리는 키와 값이 한 쌍이 되어 나열된 시퀀스를 의미한다. car = {"A" : "소나타", "B" : "그랜저, "C" : "재네시스"} 빈 딕셔너리 생성 및 항목 추가와 참조 user = {} 이런 식으로 빈 중괄호를 열어 빈 딕셔너리를 생성 할 수 있다. user["1" ] = "PINO" 이런 식으로 딕셔너리에 항목을 추가 할 수 있다. user = {} user["1"] = "PINO" print(user["1"]) # >>> PINO 딕셔너리의 키 값은 수정 불가능한 객체로 사용해야한다. 딕셔너리 키는 수정 불가능한 객체는 모두 가능하다. 따라서 정수, 실수, 튜플도 이용이 가능하며, 리스트는 불가능하다. 딕셔너리 항목의 순회 딕셔너리 항목을 순회하기 위해서는 keys()와 ..
[Python] 리스트(2)
리스트는 문자열과 같이 슬라이스를 이용 할 수 있다. # 리스트[start : stop : step] alp = list("abcdefghij") print(alp) #["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"] print(alp[:]) # ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"] print(alp[: :]) # ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"] print(alp[::-1]) # ["j", "i", "h", "g", "f", "e", "d", "c", "b", "a"] 리스트를 수정 할 수 있는 방법은 아래와 같다. sports = ["축구", "야구..
[Python] 리스트(1)
JavaScript의 배열, 객체와 같이 리스트는 Python의 복합 자료형이다. 리스트는 아래와 같이 사용한다. # 변수명 = [항목1, 항목2, 항목3] menu = ["coffee", "coke", "tea"] 빈 리스트를 만들고, 항목을 추가하고, 길이를 구하는 방법은 아래와 같다. student = [] student.append("철수") student.append("영희") print(student) #["철수", "영희"] print(len(student)) #2 리스트를 참조할 수 있는 방법은 아래와 같다. student = [1,2,3,4,5] print(student[0]) # 1 print(student[3]) # 4 #역순 첨자 print(student[-1]) # 5 print(..