본문 바로가기

개발 일반/프로그래밍 언어 - Java

(11)
[Java] 시간 자료형과 SQL / Nuxt.js와의 연계 java.time 시간 자료형- 날짜나 시간을 표현하는데 쓰는 자료형이다.- java.util.time, java.sql.time 과 같은 패키지들이 있으나, java8 이후에는 java.time 패키지를 쓰는 것이 권장된다. java.time 의 클래스 정리LocalDate날짜만 표현한다. (연, 월, 일)LocalTime시간만 표현한다. (시, 분, 초, 나노초)LocalDateTime날짜와 시간을 모두 표현한다. (연, 월, 일, 시, 분)InstantUTC (국제 표준시)를 기준으로 특정 시점을 표현한다.Duration두 시점 간 시간 차이를 표현한다.Period두 날짜 간 차이를 표현한다. (연, 월, 일)Year연도를 표현한다.Month월을 표현한다.DayOfWeek요일을 표현한다. Lo..
[Java] Lombok 라이브러리 정리 Lombok 라이브러리 Lombok 라이브러리란?- 어노테이션(@)을 사용해 코드를 자동으로 생성시켜주는 라이브러리.- getter, setter, toString 등의 메소드를 만들어주기 때문에 코드가 간결해지고 가독성이 높아진다. Lombok 어노테이션 정리@Gettergetter 메소드를 생성@Settersetter 메소드를 생성@ToStringtoString 메소드를 생성@EqualsAndHashCodeequals 메소드(같은 객체인지 판단)와 hashcode 메소드(필드값이 같은 객체인지 판단)을 생성@Data위의 모든 어노테이션을 포함@NoArgsConstructor매개변수가 없는 생성자를 생성@AllArgsConstructor모든 멤버변수를 매개변수로 갖는 생성자를 생 Lombok 사용..
[Java] 정규 표현식 정리 문자열 처리를 하는 데 빠질 수 없는 것이 정규 표현식이다.오랫동안 '나중에 제대로 공부해야지' 하면서 넘어가다가 이 사단이 났는데, 이번에야말로 제대로 공부해놓으려고 한다.라고 시작했는데 뭔가 어렵네요.쓸 일 있을 때마다 다시 공부해야할듯. 정규 표현식 기본 문법 문자 클래스패턴설명예\\w알파벳 대소문자 + 숫자 + "_"^\\w{3}$-> 대상 문자 3글자의 조합\\d숫자^\\d{3}- \\d{4}$-> 우편번호 포맷\\s공백문자(스페이스, 탭, 개행)^ \\s+$-> 공백문자가 1개 이상 있음- 패턴의 문자를 대문자로 바꾸면 NOT의 의미가 된다. ex) \\D : 숫자가 아닌 문자 어설션패턴설명예^문장의 시작^www-> "www"로 시작하는 문자열$문장의 끝com$-> "com"으로 끝나는 문..
[Java] Java의 정석 (6~7) 객체지향 프로그래밍 4 추상 클래스 추상 클래스란? - 추상 메소드(선언부만 있고 구현부가 없는 메소드)를 포함하고 있는 클래스- 추상 클래스는 인스턴스를 생성할 수 없지만, 다른 클래스를 작성하는 데 도움을 준다.abstract class Player{ int crtPos; abstract void play(int pos); // 선언부만 있는 추상 메소드 abstract void stop(); void play(){ play(crtPos); // 일반 메소드가 추상 메소드를 사용할 수 있다. }} 추상 메소드란?abstract 리턴타입 메소드이름(매개변수);- 선언부만 있고 구현부가 없는 메소드- 꼭 필요하지만 자손마다 다르게 구현될 것으로 예상되는 경우에 사용한다.-..
[Java] Java의 정석 (6~7) 객체지향 프로그래밍 3 제어자 제어자란? - 클래스, 변수, 메소드의 선언부에 사용되어 부가적인 의미를 부여한다.- 하나의 대상에 여러 개의 제어자를 조합해 사용할 수 있으나, 접근 제어자는 단 하나만 사용할 수 있다. - 접근 제어자 : public, protected, default, private- 그 외 제어자 : static, final, abstract, native, transient, synchronized, volatile, strictfp static- 멤버변수, 메소드, 초기화 블럭에 사용될 수 있다.- 인스턴스를 생성하지 않고도 호출이 가능한 변수, 메소드로 만들어준다. final- 클래스, 메소드, 멤버변수, 지역변수에 사용될 수 있다.- 변경할 수 없도록 만든다. (변수는 상수로, 클래스는 상속 불..
[Java] Java의 정석 (6~7) 객체지향 프로그래밍 2 생성자 생성자란? - 인스턴스가 생성될 때마다 호출되는 '인스턴스 초기화 메소드'- 인스턴스 변수의 초기화 및 인스턴스 생성시 수행할 작업에 사용한다.- 모든 클래스에는 반드시 하나 이상의 생성자가 있어야 한다. 생성자의 조건클래스이름 (타입 변수명, 타입 변수명, ...){ // 인스턴스 생성시 수행될 코드}1. 생성자의 이름은 클래스의 이름과 같아야 한다. 2. 생성자는 리턴값이 없다. 3. 한 클래스 내에 매개변수가 다른 여러 개의 생성자가 존재할 수 있다. (오버로딩) 기본 생성자- 매개변수가 없는 생성자로, 프로그래머가 생성자를 정의하지 않으면 컴파일러가 내용이 없는 생성자를 추가해준다.- 그러나, 생성자가 하나라도 있으면 컴파일러는 기본 생성자를 추가하지 않는다. thisCar(Strin..
[Java] Java의 정석 (6~7) 객체지향 프로그래밍 1 객체지향언어란? 객체지향언어의 특징 1. 기존 프로그래밍언어에 몇 가지 규칙을 추가한 것이다. 2. 코드의 재사용성이 높다- 기존의 코드를 이용해 새로운 코드를 쉽게 작성할 수 있다. 3. 코드의 관리가 쉽다- 코드 간의 관계를 맺어줌으로써 적은 노력으로 코드 변경이 가능하다. 4. 신뢰성이 높은 프로그램의 개발을 가능하게 한다.- 제어자와 메소드를 이용해 데이터를 보호하고, 코드의 중복을 제거해 코드의 불일치로 인한 오류를 방지할 수 있다. 클래스와 객체- 클래스 : 객체를 정의해 놓은 것으로, 객체를 생성하는 데 사용된다.- 객체 : 실제로 존재하는 것으로, 객체의 속성과 기능마다 용도가 다르다. 인스턴스- 인스턴스 : 객체와 유사하나, 특정 클래스의 객체임을 강조하는 의미로 자주 사용하는 용어-..
[Java] Java의 정석 (5) 배열 배열의 선언과 생성 배열의 선언 방법int[] score;String[] name;int score[];String name[];- 두 방법 모두 가능. 배열 선언 후 생성int[] score; // 참조변수 score을 선언score = new int[10]; // score이 가리키는 저장공간에 int형 데이터 10개를 저장할 수 있는 배열 생성 배열의 길이 - 배열은 한 번 생성하면 그 길이를 바꿀 수 없다.- 연속적인 데이터를 저장하기 때문이며, 더 많은 데이터를 저장할 배열이 필요한 경우엔 새로운 배열을 선언해야 한다.int [] arr = new int[5];int tmp = arr.length; // tmp에 5가 저장 배열의 초기화 - 배열의 각 요소에 처음으로 값을 저장하는 것으..