java
[Spring] 스프링과 mysql 연동하기
mysql이 설치된 환경으로 가정하고 글을 시작한다. 나는 실행할 예제로 book_ex라는 스키마를 하나 생성했다. 일반적으로 여러 명의 사용자를 동시에 처리하는 웹 애플리케이션의 경우 데이터베이스 연결을 이용할 때는 '커넥션 풀(Connection Pool)'을 이용한다. Java에서는 DataSource라는 인터페이스를 통해 커넥션 풀을 사용한다. 여기서 커넥션 풀은 HikariCP(https://github.com/brettwooldridge/HikariCP)를 쓸 것이다. 우선 mysql과 연동하는 라이브러리를 사용해야 하기 때문에 pom.xml에 이렇게 추가해준다. 그리고 위에서 말했듯 HikariCP를 사용할 것이므로 HikariCP도 추가한다. root-context.xml은 직접 태그를 이..
[Spring] 스프링 어노테이션 기능 정리
(이것은 개인적으로 공부하기 위해 적어두는 어노테이션 기능들이다) 여기서 어노테이션들은 크게 세 가지로 분류해서 설명한다. - Lombok 관련 어노테이션 - Spring 관련 어노테이션 - 테스트 관련 어노테이션 우선 Lombok 관련 어노테이션에는 @Setter, @Data가 있다. Lombok에 대한 설명과 설치법은 https://withthemilkyway.tistory.com/15 이 곳에서 확인할 수 있다. @Setter 어노테이션은 setter 메서드를 만들어주는 역할을 한다. 말 그대로 setter 메소드를 생성해 주는 것이다. @Setter에는 onMethod라는 속성을 부여해줄 수 있는데, onMethod는 setter 메서드의 생성 시 메서드에 추가할 어노테이션을 지정한다. @Data..
[Spring] Lombok 라이브러리 설치 방법 정리
오늘은 스프링에서 사용하는 Lombok 라이브러리의 설치 방법에 대해서 알아보자 Lombok을 이용하면 Java 개발 시 자주 사용하는 생성자, 설정자와 접근자, toString() 등을 자동으로 생성해주므로 무척 편리하다. Lombok의 다운로드는 https://projectlombok.org/download 에서 jar 파일 형태로 받을 수 있다. 다운로드가 끝나면 운영체제에서 바로 실행해 보거나, 명령 프롬프트 창을 킨 다음 다운로드 된 경로에서 'java -jar lombok.jar' 명령어를 통해 실행한다. 그 후 실행되는 화면에서는 필요한 IDE를 선택할 수 있다. 만약, eclipse의 설치 경로를 찾지 못하는 경우에는 직접 지정해서 설치하면 된다. 설치가 끝나면 eclipse의 실행 경로에..
[Spring] 스프링 Java 설정 정리
Eclipse(STS)를 통해 생성하는 'Spring Legacy Project'의 경우 XML을 기반으로 스프링 관련 설정을 하도록 되어 있다. 스프링 버전 3 이후에는 Java 클래스 파일을 이용하는 설정을 지원하는데, 최근 Java를 이용한 설정이 점점 증가하고 있다. 그럼, 지금부터 Java로 스프링을 설정하는 방법에 대해서 알아보자 먼저 New - Spring Legacy Project로 스프링 프로젝트를 하나 생성한다. 프로젝트는 Spring MVC Project를 이용해 생성한다. 원하는 프로젝트 명을 입력한 뒤, Next를 클릭하고 패키지 명도 입력해준다. finish를 누르면 프로젝트 생성 완료 프로젝트가 생성된 후에는 다음과 같은 작업을 진행한다. 1. web.xml의 파일 삭제 및 스..
[Spring] 스프링 프로젝트 초기 설정하기
STS(Spring Tools Suit)나 Eclipse의 스프링 관련 플러그인을 설치하면 별도의 설정 없이 몇 번의 클릭만으로 스프링 프로젝트를 생성할 수 있다. 여기서는 관련 플러그인과 개발 세팅(JDK, Tomcat, STS 등)이 준비된 것으로 가정하고 진행한다. 먼저 New - Spring Legacy Project 메뉴를 선택해서 프로젝트를 하나 생성한다. 프로젝트는 'Spring MVC Project'를 이용해서 생성한다. Next를 누르면 패키지 명을 입력하는 칸이 나온다. 원하는 패키지 명을 입력한 뒤, finish 버튼을 누르면 스프링 프로젝트가 생성이 된다. 프로젝트를 최초로 생성하면 필요한 코드와 라이브러리를 다운로드하게 된다. 사용자 폴더 내 '.m2'라는 이름의 폴더 속 repo..
[Java] auto boxing & auto unboxing
import java.util.Date; public class Practice { public static void main(String[] args) { Object[] a = new Object[10]; a[0] = "hello"; a[1] = new String("world"); a[2] = new Date(); a[3] = new Person("김철수", 15); a[4] = new int[] { 1, 2, 3 }; a[5] = new String[] { "one", "two", "three" }; a[6] = new Integer(3); a[7] = new Double(3.14); a[8] = 3; a[9] = 3.14; } } int, double과 같은 기본 자료형은 객체가 아니다. a 배..
[Java] override, 업캐스팅과 다운캐스팅
- 오버라이드(override) 부모 클래스의 메서드를 자식 클래스에서 또 구현하는 것을 재정의(override)라고 부른다. 부모 클래스의 메소드를 자식 클래스에서 재정의하기 위한 규칙은 다음과 같다. - 메소드 이름이 정확히 일치해야 한다. - 파라미터 변수의 수와 타입이 일치해야 한다. - 리턴 타입이 일치해야 한다. 재정의된 메서드에는 @Override 어노테이션을 붙여주는 것이 바람직하다. 붙이지 않아도 에러가 발생하는 것은 아니다. 그렇지만, @Override 어노테이션을 붙여주면, 실수를 막을 수 있어서 좋다. 오타 등의 실수로 재정의 규칙이 깨지게 되면, 컴파일 에러가 발생하므로 @Override 어노테이션을 명시함으로서 그러한 상황을 피할 수 있다. - 업캐스팅, 다운 캐스팅(up-cas..