IT 공부 132

[스프링부트 (7)] Spring Boot JPA(1) - 시작 및 기본 설정

[스프링부트 (7)] Spring Boot JPA(1) - 시작 및 기본 설정 이번 포스팅은 [ 스프링 부트 JPA 설정 방법] 입니다. : ) 0. 기본개념 JPA를 들어가기 전에 ORM부터 간단하게 알아보자. 실제 예제부터 먼저 돌려보고 나중에 이해해도 무방 할 것 같다. # ORM이란? - Object-Relational Mapping (객체와 관계형데이터베이스 매핑, 객체와 DB의 테이블이 매핑을 이루는 것) - 객체가 테이블이 되도록 매핑 시켜주는 프레임워크 이다. - 프로그램의 복잡도를 줄이고 자바 객체와 쿼리를 분리할 수 있으며 트랜잭션 처리나 기타 데이터베이스 관련 작업들을 좀 더 편리하게 처리할 수 있는 방법 - SQL Query가 아닌 직관적인 코드(메서드)로서 데이터를 조작할 수 있다..

Programming/Spring 2022.05.29

[스프링부트 (6)] Spring Boot 로그 설정(2) - DB로그(log4jdbc)

[스프링부트 (6)] Spring Boot 로그설정(2) - JDBC 로그 (log4jdbc) 이번 포스팅은 [ 스프링 부트 DB 로그 설정] 입니다. : ) 0. logback 앞서 포스팅에서 logback설정을 해보았을 것이다. 다만 스프링 부트에서 logback은 기본으로 포함되어 있지만 jdbc에 대한 logback 설정은 되어 있지 않기 때문에 추가 설정이 필요하다. 이 부분에 대해서 간단하게 다음 포스팅과 같이 설정하면 하면되니 참고 하도록 하자. 1. JDBC 로그 설정 이번 포스팅에선 log4jdbc를 사용하려 쿼리를 예쁘게 찍어보려 한다. 쿼리문을 Console또는 로그 파일로 출력하고자 할때 다음과 같은 설정을 하면 된다. ▶ 1. 라이브러리 추가 (디펜던시 추가) 1) 메이븐 사용시 ..

Programming/Spring 2022.05.29

[스프링부트 (5)] Spring Boot Log 설정(1) - Logback

이번 포스팅은 [ 스프링 부트 Log 설정 - 로그백] 입니다. : -) 1. Logback 이란? 특징? - 자바 오픈소스 로깅 프레임워크, SLF4J의 구현체 - 스프링 부트의 기본으로 설정되어 있어서 사용시 별도로 라이브러리를 추가하지 않아도 된다. - log4j, log4j2 등과 성능을 비교했을 때에도 logback이 더 훌륭한 성능을 보여준다. - spring-boot-starter-web 안에 spring-boot-starter-logging에 구현체가 있다. - Logback을 이용하여 로깅을 수행하기 위해서 필요한 주요 설정요소로는 Logger, Appender, Encoder의 3가지가 있으며 각각은 다음과 같은 역할을 수행한다. - log4j, logback 기초 정리 내용 참고! (..

Programming/Spring 2022.05.29

[스프링부트 (4)] Spring Boot DataBase 연동하기 (MariaDB, MyBatis, HikariCP)

[스프링부트 (4)] 스프링부트 DB 연동 (MariaDB, MyBatis, HikariCP) 이번 포스팅은 [ SpringBoot DB 연동] 입니다. 0. 들어가기 앞서 Spring Boot를 사용하면서 DB를연결하기 위해 JDBC Connection Pool이란걸 사용 해보셨을 것이다. ▶ 커넥션풀(Connection Pool)이란? 1) 정의 - 풀(Pool)속에 데이터베이스와의 연결(커넥션)들을 미리 만들어 두고 데이터베이스에 접근시 풀에 남아있는 커넥션중 하나를 받아와서 사용한뒤 반환하는 기법. - DataBase Connection Pool, DBCP라고도 한다. 2) 사용이유 - 웹 애플리케이션은 다수의 사용자가 데이터베이스에 접근해야 하는 상황에 사용자들이 요청할때마다 연결을 만들고 해제..

Programming/Spring 2022.05.29

[스프링부트 (3)] SpringMVC(2) Spring Boot View 설정 및 JSP 연동하기(Thymeleaf 추가)

[스프링부트 (3)] SpringMVC(2) Spring Boot View 설정 및 JSP 연동하기(Thymeleaf 추가) 이번 포스팅은 [ 스프링 부트 View 설정방법 ] 입니다. : ) 이번 포스팅에선 MVC 패턴중 View 설정하는 방법을 설명하려 한다. 그리고 JSP 및 VelocityThymeleaf를 예제를 포함 하려 한다. 0. 들어가기 앞서 ▶ JSP 제한 사항 - 스프링 공식문서에 보면 내장된 서블릿 컨테이너에는 jsp 제한사항이 있다. https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-developing-web-applications - 스프링 부트는..

Programming/Spring 2022.05.29

SpringMVC(2) Spring Boot View 설정 및 JSP 연동(Thymeleaf 추가)

이번 포스팅에선 MVC 패턴중 View 설정하는 방법을 설명하려 한다. 그리고 JSP 및 VelocityThymeleaf를 예제를 포함 하려 한다. 0. 들어가기 앞서 ▶ JSP 제한 사항 - 스프링 공식문서에 보면 내장된 서블릿 컨테이너에는 jsp 제한사항이 있다. https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-developing-web-applications - 스프링 부트는 가능하다면 jsp를 피하고 Thymeleaf와 같은 템플릿 엔진을 사용하라고 권장한다. 7.1.10. Template Engines As well as REST web services, you..

Programming/Spring 2021.11.17

[Spring boot] SpringMVC(1) Controller 생성하기

[Spring boot] SpringMVC(1) Controller 생성하기 1. MVC ▶ 개요 - MVC(Model View Controller)란 하나의 디자인 패턴이다. - 스프링 MVC : 스프링이 제공하는 웹 어플리케이션 구축 전용 MVC 프레임워크. 1. 모델(Model) : 비즈니스 규칙을 표현 2. 뷰(View) : 프레젠테이션을 표현 3. 컨트롤러(Controller) : 위 두가지를 분리하기 위하여 양측 사이에 배치된 인터페이스 2. Controller ▶ Controller란? - Controller에 대해 간단히 말하자면 MVC에서 C에 해당 하며 주로 사용자의 요청을 처리 한 후 지정된 뷰에 모델 객체를 넘겨주는 역할을 한다. ▶ Controller 관련 대표적인 Annotati..

Programming/Spring 2021.05.23

Kadane’s Algorithm (카데인 알고리즘)

https://leetcode.com/problems/maximum-subarray/ 위의 문제는 전체 배열에서의 최대 부분합을 구하는 문제이다. Brute Force 방식으로 문제를 어렵지 않게 해결할 수 있지만, 카데인 알고리즘을 이용하면 O(N)으로 문제를 해결할 수 있다. 문제 예시 주어진 배열 A를 [1,-2,3,5,-4,2,5] 라고 했을 때,Maximum Subarray는 [3,5,-4,2,5] 이며, 결과값은 부분 배열의 합인 11 이다. Brute Force : O(N²) Brute Force 방식은 가능한 모든 부분 배열의 합을 구하고 이에 대한 최대값을 구하는 것이다. A[0]부터 시작해서 A[0]에서 가질 수 있는 모든 부분합을 구한다. 이 과정을 A[1], A[2], A[3] …...

union-find 알고리즘

Union-Find 알고리즘이란? Union-Find 알고리즘은 그래프 알고리즘 중 하나로 서로소 집합, 상호배타적 집합(Disjoint-Set)알고리즘이라고도 불린다. 여러 노드가 존재할 때, 선택한 두 노드가 서로 같은 그래프에 속하는지 판별하는 알고리즘이다. Union-Find 과정 1) Init for(int i = 0; i < parent.length; i++) parent[i] = i; 초기화. 최초 노드는 자기자신을 루트노드로 가진다. 1) Find(x) // x가 속한 그래프의 루트 노드를 반환 static int find(int x) { // x의 루트노드가 x일 경우. 즉, x와 연결된 노드가 없을 경우. if(x == parent[x]) return x; // 재귀를 이용해 부모노드 ..

Spring AOP를 이용하여 Service클래스에 로그 출력하기

Spring MVC 프로젝트에서 Service에 Aop Advice를 걸어서 log4j 로그를 출력하는 것을 합니다. xml설정이 아닌 어노테이션을 이용했습니다. 특정 패키지의 모든 service 클래스가 동작할때 파라미터등 기타 정보를 출력하는 로그와 메소드가 동작하면서 걸린 시간을 로그하는 예제이다. AOP 기초 설정하기 1.pom.xml에 라이브러리 추가. 일단 properties에 aspect 공통 버전을 설정한다. 그리고 spring aop, aspectj 라이브러리를 추가한다. AspectJ는 자바용 AOP 지원을 제공할 목적으로 시작된 라이브러리다. 2.root-context.xml 설정하기. 그리고 root-context.xml파일에 아래 내용을 추가하자. 3.Advice 클래스 생성하기...

Programming/Spring 2020.08.04