Spring 14

[ELK+R스택 구축하기] docker로 ELK 구성하여 Spring Boot 로그 쌓기 (1)

안녕하세요. ELK와 Redis를 이용하여 Spring Boot에서 쌓는 로그를 분석 및 보기 편하도록 Redis와 연동하며 겪은 경험을 글로 남기려고 합니다. 이번에는 ELK가 뭔지 Ubuntu를 이용하여 Docker설치 과정을 적어보려고합니다. 일단 ELK가 뭔지 부터 알아볼까요. E = Elasticsearch Elasticsearch는 Apache Lucene에 구축되어 배포된 검색 및 분석 엔진입니다. L = Logstash Logstash는 다양한 소스로부터 데이터를 수집하고 전환하여 원하는 대상에 전송할 수 있도록 하는 오픈 소스 데이터 수집 도구입니다. K = Kibana Kibana는 로그 및 이벤트 검토에 사용하는 데이터 시각화 및 탐색 도구입니다. 이렇게 세가지를 합쳐서 ELK스택이라..

Programming/Spring 2023.05.05

[Spring Boot] 스프링과 스프링 부트

1. 스프링(Spring)이란? 1.1 스프링의 개념 Spring은 Java를 기반으로 한 웹 어플리케이션 프레임워크다. spring.io 사이트에서 확인하면 '스프링 프레임워크는 현대 자바 기반의 엔터프라이즈 어플리케이션을 위한 프로그래밍 및 Configuration Model 제공한다'라고 언급하고 있다. 스프링은 위와 같은 구조를 가지고 있으며, Python을 이용한 Django, Ruby를 이용한 Ruby on Rails, Javascript를 이용한 Node.js 기반의 웹 서버 개발과 같이 Java 개발자들은 Spring을 사용하여 웹 서비스를 만들 수 있다. 1.2 스프링의 특징 경량 컨테이너 제어의 역전(IoC, Invertion of Control) 의존성 주입(Di, Dependency..

Programming/Spring 2022.06.09

@Component 와 @Bean, @Autowired 어노테이션 알아보기

@Component, @Bean, @Autowired 자주 사용하면서도 정확하게 무슨 용도로 사용되는지, 어떤 동작 원리를 가지는지, 어떤 차이가 있는지 잘 몰랐던 부분에 대해서 공부합니다. 먼저 Annotation에 대해서 간단하게 알아보겠습니다. Annotation은 Java 5부터 추가된 문법 요소로, 코드 사이에 주석처럼 쓰이며 특별한 의미, 기능을 수행하도록 하는 기술입니다. 실제 데이터가 아닌 데이터를 위한 데이터로 메타데이터 (meta data)로 불립니다. 어노테이션의 용도 컴파일러에게 코드 작성 문법 에러를 체크하도록 정보 제공 소프트웨어 개발 툴이 빌드나 배치 시 코드를 자동으로 생성할 수 있도록 정보 제공 실행 시 (런타임) 특정 기능을 실행하도록 정보 제공 어노테이션을 사용하기 위한..

Programming/Spring 2022.06.05

[Spring] 스프링을 시작하며 : 스프링 프레임워크의 개념과 특징, MVC 구조, 스프링 부트 (Spring Framework, Spring MVC, Spring boot)

> 스프링 프레임워크 (Spring Framework) 스프링(Spring) 이란? 자바 엔터프라이즈 개발을 편하게 해주는 오픈 소스 경량급 애플리케이션 프레임워크 - 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공 - 전자정부 표준 프레임워크의 기반 기술로서 쓰이고 있다 스프링의 특징 ˙ 경량 컨테이너로서 자바 객체를 직접 관리한다 ˙ POJO(Plain Old Java Object) 방식의 프레임워크 - POJO : 단순하고 가벼운 자바 객체(우리가 자바에서 개발하는 지극히 평범한 객체) ˙ IoC(Inversion of Control; 제어 반전) 지원 - 필요에 따라 컨트롤의 제어권을 사용자가 갖지 않고 스프링에서 사용자의 코드를 호출 ˙ DI(Dependency injection; 의..

Programming/Spring 2022.05.29

[스프링부트 (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

[스프링부트 (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

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

병원 관리 프로그램 소개

먼저 Spring 기반 병원 관리 프로그램을 소개해드립니다. 아파GO 웹사이트의 지역 별 키워드 검색으로 인한 예약 시스템과 의학백과 및 실시간 의료진으로 인해 병원에 쉽게 접근할 수 있습니다. 광고 위주보다 사용자 중심으로 만들고 싶어 개발하게 되었습니다. 병원 회원 관리 기능에서 병원 회원과 일반 회원을 관리하는 총괄 관리 페이지를 생성했습니다. 총괄 관리자 아이디로 로그인하며 병원을 검색할 수 있도록 구현했습니다. 예약 관리 기능은 병원 회원이 편리하게 예약할 수 있도록 구현했습니다. 기간, 환자명 등으로 예약 조회 및 관리를 할 수 있으며 일반 회원의 예약을 확인해서 SMS 예약 문자 전송 기능을 구현했습니다. 병원 정보 관리 기능에서는 INFOSHOW 컨트롤러의 DOGET 메소드로 받아 병원 정..

Spring AOP - @Aspect 구현

이번에 @Aspect를 이용한 AOP를 설정 aopEx2/src/main/java/com/aopEx2/LogAop.java @Pointcut을 사용하지 않아도 됩니다. @Before 어노테이션을 보면 속성에 바로 범위를 지정했습니다. 같은 방법으로 @Around에 속성을 지정해도 되고, Pointcut을 지정해주는 메서드를 생성해도 됩니다. 이전에 xml 파일에서 설정했던 것과 다르게 JAVA 파일에서 어노테이션을 이용해서 설정을 했지만, xml 파일에서 추가해야 될 것이 있습니다. aopEx2/src/main/resources/applicationCtx.xml 를 명시하면 @Aspect 어노테이션이 있는 클래스를 찾아서 자동으로 aspect로 만든다. 그 아래에는 bean 객체를 생성했고, 이전에 사용..

Programming/Spring 2018.06.16