본문 바로가기

Backend (26)

반응형
Backend/Spring Boot

[Spring Boot] Mybatis Oracle 연동하는 방법

Spring Boot에서 Mybatis Oracle 연동을 하는 방법에 대하여 알아보도록 하겠습니다.간단하게 오라클에서 대표적인 DEPT(부서) 테이블의 deptno, dept, loc을 조회하는 예제로 접근해 보겠습니다.개발환경 1) InteliJ Community Version2) Java 1.83) Oracle 11g프로젝트 구조Pom.xml org.springframework.boot spring-boot-starter-web org.mybatis.spring.boot mybatis-spring-boot-starter 2.1.4 com.oracle.database.jdbc ojdbc8 runtime org.projectlombok lom..

2021. 3. 2.
Backend/Spring Framework

[Spring] AOP 총정리 및 예제

1. AOP(Aspect Oriented Programming)란?공통 관심 기능을 분리하여 반복되는 부분을 추출해 핵심 로직에 영향을 미치지 않고 소스의 중복을 줄이는 방법으로 기존 OOP에서 공통 관심 기능을 여러 모듈에서 적용하며 발생하는 중복된 코드 양산의 한계를 극복하기 위해 나오게 되었습니다.즉. 핵심 로직에 집중할 수 있도록, 필요하지만 중복해서 작성해야 하는 핵심 로직 이외의 코드들은 외부로 빼놓는 것입니다. 또한, AOP는 흩어진 Aspect 들을 모아서 모듈화 하는 기법입니다. *Aspect란?- 객체지향 언어의 클래스와 비슷한 개념이라고 생각하면 쉽습니다.- 그 자체로 애플리케이션의 도메인 로직을 담은 핵심기능은 아니지만, 많은 오브젝트에 걸쳐서 필요한 부가기능을 추상화해놓은 것입니다..

2020. 11. 29.
Backend/Java

[JAVA] 자바 Stream API 사용방법 및 예제

Stream API는 대량 데이터를 연속 처리하는 '스트림 처리'를 효율적으로 기술하기 위한 수단으로 도입되었습니다. 단, 대량 데이터가 아니더라도 컬렉션의 조작으르 효율적으로 실시할 수 있으므로 자주 이용되고 있습니다. 예제를 통하여 Stream API를 알아 보도록 하겠습니다.아래의 코드는 70점 이상인 학생의 이름을 리스트로 표시하는 예제입니다.Model -> Student.classpackage model;public class Student { private String studentId; private String studentNm; private int score; public String getStudentId() { return studentId; } public void setSt..

2020. 11. 23.
Backend/Spring Framework

[Spring] 어노테이션(Annotation) 생성 방법

어노테이션(Annotation)이란 소스 코드 안의 요소(클래스나 메소드 등)에 대해 정보(메타 데이터)를 설명하는 메커니즘입니다. 클래스나 메서드에 특정 역할 및 의미를 갖게 하는데 사용할 수 있습니다. 자바에서 제공하는 표준 API에서는 다음과 같은 어노테이션이 있습니다.1) 메소드의 오버라이드를 나타내는 @Override2) 비추천을 나타내는 @Deprecated3) 경고를 출력하지 않도록 하는 @SuppressWarnings 위에서 제공하는 자바 표준 API 말고도 자바, 스프링에서는 사용자가 커스텀 어노테이션을 만들 수 있습니다.아래글에서부터는 커스텀 어노테이션을 만드는 방법에 대하여 알아보도록 하겠습니다.1. Anotation 생성 public @interface LogExecutionTime..

2020. 11. 15.
Backend/Java

[JAVA] Queue를 이용한 예제 코드

Queue 큐는 별도의 인터페이스 형태로 제공합니다.큐(Queue)는 선형 메모리 공간에 데이터를 저장하면서 선입선출(FIFO) 방식의 구조입니다.즉, 가장 먼저 저장된 데이터가 가장 먼저 인출되는 구조입니다. 예제를 통하여 알아보도록 하겠습니다.아래 소스는 LinkedList 메소드를 이용하여 큐 메모리구현한 예제입니다.package com.company;import java.util.LinkedList;public class Main{ public static void main(String[] args) { LinkedList queue = new LinkedList(); // 큐의 생성 //Deque queue = new ArrayDeque(); //add..

2020. 6. 7.
Backend/Java

[JAVA] insert() - 문자열을 추가하는 메소드

insert() 메소드- 문자열을 인수에 전달한 후, 문자열의 지정된 인덱스에 추가합니다.- 전달된 인덱스가 문자열의 길이와 같으면, append() 메소드와 같은 결과를 나타납니다.- insert() 메소드를 사용하기 위해서는 StringBuffer 클래스를 임포트해야 합니다. 예제를 통하여 자세히 살펴보도록 하겠습니다.아래 코드는 str 변수 중간에 문자열을 추가하는 예제입니다.package com.company;public class Main{ public static void main(String args[]) { StringBuffer str = new StringBuffer("Java 만세!"); System.out.println("원본 문자열 : " + str)..

2020. 5. 18.
Backend/Java

[JAVA] delete() - 문자열의 일부분을 제거하는 메소드

delete() 메소드- 인덱스의 값을 기준으로 부분 문자열을 문자열에서 제거합니다.- 특정 위치의 문자열 중 문자 한 개만을 제거하고 싶을 때는 deleteCharAt() 메소드를 사용하면 됩니다.- delete(), deleteCharAt() 메소드를 사용하기 위해서는 StringBuffer 클래스를 임포트해야 합니다. 아래 예제를 통하여 자세히 살펴보도록 하겠습니다.package com.company;public class Main{ public static void main(String args[]) { StringBuffer str = new StringBuffer("Java Oracle"); System.out.println("원본 문자열 : " + str); ..

2020. 5. 17.
Backend/Java

[JAVA] append() - 문자열의 마지막에 추가하는 메소드

append() 메소드 - 인수로 전달된 값을 문자열로 변환한 후, 해당 문자열의 마지막에 추가합니다. 즉, 이어 붙이는 것입니다. - 이 메소드는 String 클래스의 concat() 메소드와 같은 결과지만, 내부적인 처리 속도가 훨씬 빠릅니다. - append() 메소드를 사용하기 위해서는 StringBuffer 클래스를 임포트해야 합니다. 아래 예제 코드를 통하여 자세히 살펴보도록 하겠습니다. package com.company; public class Main{ public static void main(String args[]) { StringBuffer str = new StringBuffer("Java"); System.out.println("원본 문자열 : " + str); System.o..

2020. 5. 16.
Backend/Java

[JAVA] toLoweCase()와 toUpperCase() - 소문자를 대문자로, 대문자를 소문자로 바꿔주는 메소드

toLoweCase()와 toUpperCase() 메소드 - toLoweCase() 메소드는 해당 문자열의 모든 문자열을 소문자로 변환시켜 줍니다. - toUpperCase() 메소드는 해당 문자열의 모든 문자열을 대문자로 변환시켜 줍니다. 아래 예제를 통하여 자세히 살펴보도록 하겠습니다. package com.company; public class Main{ public static void main(String args[]) { String str = new String("Java"); System.out.println(str.toLowerCase()); System.out.println(str.toUpperCase()); } } 출력 결과 str 변수 안에는 'Java' 라는 문자열이 담겨져 있습니..

2020. 5. 15.
Backend/Java

[JAVA] compareTo() - 문자열을 비교하는 메소드

compareTo() 메소드 - 해당 문자열과 매개변수로 전달된 값을 비교합니다. - 대소문자를 구분하여 비교하므로 대소문자도 잘 확인해주셔야 합니다. - 만약 두 문자열이 같다면 0을, 문자열이 매개변수보다 작다면 음수를, 크면 양수를 반환합니다. * 혹시라도 대소문자 구분을 원하지 않는다면 compareToIgnoreCase() 메소드를 사용하시면 됩니다. 예제 코드를 통해서 배워나가도록 해보겠습니다. package com.company; public class Main{ public static void main(String args[]) { String str = new String("abcd"); System.out.println("원본 문자열 : " + str); System.out.print..

2020. 5. 12.
Backend/Java

[JAVA] before()와 after() - 날짜를 비교하는 메소드

before()와 after() 메소드- 두 시간(날짜)의 이전과 이후를 알고 싶을 때는 before()와 after() 메소드를 이용하면 됩니다. - before() 메소드는 현재 객체가 나타내는 시간보다 앞서는지를 판단합니다. 예제 코드를 확인해보겠습니다.package com.company; import java.util.Calendar; public class Main{ public static void main(String args[]) { Calendar time1 = Calendar.getInstance(); Calendar time2 = Calendar.getInstance(); Calendar time3 = Calendar.getInstance(); time2.set(1982, 2, 19)..

2020. 5. 12.
Backend/Java

[JAVA] copyOf() - 배열의 요소를 복사하는 메소드

copyOf() 메소드 - 전달받은 배열의 설정한 길이만큼 새로운 배열로 복사하여 반환합니다. - 첫 번째 매개변수로 원본 배열을 전달하고, 두 번째 매개변수로 원본 배열에서 새로운 배열로 복사할 요소의 개수를 전달 받습니다. - 만약 새로운 배열의 길이가 기존의 배열보다 길면, 나머지 요소는 배열 요소의 타입에 맞게 다음과 같은 기본값으로 채워집니다. - copyOf() 메소드를 사용하기 위해서는 Arrays 클래스를 임포트해야 합니다. 아래의 예제 코드를 통하여 살펴보도록 하겠습니다. package com.company; import java.util.Arrays; public class Main{ public static void main(String args[]) { int[] arr1 = {1,..

2020. 5. 6.
Backend/Java

[JAVA] fill() - 배열의 요소를 초기화하는 메소드

fill() 메소드 - 전달받은 배열의 모든 요소를 설정한 값으로 초기화해 줍니다. - 첫 번째 매개변수에 초기화할 배열을 전달받고, 두 번째 매개변수로 초기값을 전달받습니다. - fill() 메소드를 사용하기 위해서는 Arrays 클래스를 임포트해야합니다. 예제를 통하여 자세히 확인해보도록 하겠습니다. 아래 소스는 arr 배열의 모든 값을 7로 초기화하는 예제입니다. package com.company; import java.util.Arrays; public class Main{ public static void main(String args[]) { int[] arr = new int[10]; Arrays.fill(arr, 7); for(int i=0; i

2020. 5. 5.
Backend/Java

[JAVA] throw - 예외를 발생시키는 방법

자바에서는 throw를 사용하여 강제로 예외를 발생시킬 수 있습니다. 이렇게 말씀드리면 무슨 말인지 헷갈릴 거 같아서 바로 예제로 넘어가겠습니다. public class Main { static void ExceptionTest() { try { throw new Exception(); // 강제로 예외 발생시키기 } catch (Exception e) { System.out.println("호출된 메소드에서 예외 처리"); } } public static void main(String[] args) { try { ExceptionTest(); } catch (Exception e) { System.out.println("main 메소드 예외"); } } } 출력 결과 ExceptionTest() 함수에..

2020. 5. 5.
Backend/Debug Log

[개발자 꿀팁] 이클립스 디버깅 방법

코딩을 하다보면 이상한 부분을 많이 발견하실겁니다. 어디서 잘못된건지 의문이 드실텐데, 이때 print문으로 출력해서 로그를 보는대신, 이클립스 디버거를 사용하면 실행중인 프로그램의 메모리와 변수 상태를 실시간으로 보실 수 있어 디버깅에 엄청나게 효과적입니다. 그럼 지금부터 이클립스로 디버깅하는 방법에 대해 알아보겠습니다.1. 브레이크 포인트를 지정합니다. 에러가 발생하는 라인이나 혹은 의심이 가는 변수를 추적할 라인 위치에 브레이크 포인트를 지정하고 프로그램을 디버깅하면, 해당 라인을 실행할 때 디버거가 작동하게 되고 브레이크포인트를 설정한 곳에서 부터 라인 별로 자세힉 관찰할 수 있습니다.브레이크 포인트 설정 방법빨간 박스 안에서 브레이크 포인트를 설정할 곳에 더블 클릭 혹은 마우스 우클릭하여서 [..

2020. 4. 11.
Backend/Spring Framework

[Spring] Filter, Interceptor, AOP 개념과 차이점

공통 프로세스에 대한 고민 공통업무에 관련된 코드를 모든 페이지 마다 작성 해야한다면 중복된 코드가 많아지게 되고 서버에 과부하는 기본이고 관리하기 쉽지 않습니다. 즉, 공통 부분은 따로 관리하는 것을 권장합니다.이러한 공통업무를 프로그램 흐름의 앞, 중간, 뒤에 추가하여 자동으로 처리할 수 있는 방법이 있습니다.1. Filter(필터)말 그대로 요청과 응답을 거릅니다. 서블릿 필터는 DispatcherServlet 이전에 실행이 되는데 필터가 동작하도록 지정된 자원의 앞단에서 요청 내용을 변경하거나, 여러가지 체크를 수행할 수 있습니다. 또한, 자원의 처리가 끝난 후 응답내용에 대해서도 변경을 수행할 수 있습니다.보통 web.xml에 등록하고, 일반적으로 인코딩 변환 처리, XSS방어 등의 요청에 대한..

2020. 3. 9.
Backend/Spring Boot

[Spring Boot] InteliJ Lombok 설정 방법

1. Lombok 다운 받기[ Setting ] → [ Plugin ] → [ Lombok ] → [ Installed ]→ [ OK ]2. Lombok 적용하기[ Setting ] → [ Annotaiton Proceessors ]→ [ Enable Annotation Proccesing Check ]→ [ OK ] Test.classpackage Minimalbook.MinimalManagement;import lombok.Getter;import lombok.Setter;@Getter @Setterpublic class Test { private String userName;}Main.classpackage Minimalbook.MinimalManagement;import org.springf..

2020. 3. 8.
반응형