전체 글 132

CentOS에 웹서버를 구축

지난 포스팅에서 VMware Fusion에 CentOS를 구축했는데요.오늘은 구축한 CentOS에 웹서버를 구축하겠습니다.웹서버를 구축하기 전에 리눅스버전, CentOS버전, 하드용량, 메모리 등을 확인할 항목들이 많지만 대표로 리눅스버전과 CentOS버전을 출력해서 지난시간에 올바르게 설치가 완료되었는지 확인하고 웹서버를 설치하겠습니다.1. 버전확인//리눅스 버전확인uname -a//CentOS 버전확인cat /etc/redhat-release위 사진을 통해서 리눅스와 CentOS가 정상적으로 설치된 것을 확인할 수 있습니다.2. 업데이트CentOS에서 프로그램을 쉽게 설치/제거 할 수 있게 하는 yum을 이용해서 패키지 목록 갱신 및 업데이트를 체크하겠습니다.su - //루트로 사용자 전환yum up..

카테고리 없음 2024.09.19

‘맥에서 웹서버 구축하기’

앞서 ‘맥에서 웹서버 구축하기’를 포스팅했는데요.리눅스를 직접 설치해서 서버를 운영해보면서 설치 및 백업방법 등을 헤쳐나가보라는 팀장님의 조언을 받아 리눅스부터 설치하려고 합니다.리눅스는 오픈소스로 이루어져있어서 무수히 많은 버전의 리눅스가 있습니다. 그중에 가장 대표적인 CentOS나 Ubuntu를 설치하려고 합니다.CentOS와 Ubuntu의 차이점을 아주 간단히 살펴보면 CentOS는 업데이트가 느리지만 안정적이며 충분하지 않은 튜토리얼에 사용자기반이 적습니다. 반면에 Ubuntu는 업데이트가 자주되지만 패키지들이 불안정하고 안정화 되기까지 시간이 걸립니다. 하지만 풍부한 문서, 커다란 온라인 커뮤니티가 있어서 초보자에게 많이 추천합니다.저는 회사에서 사용하는 CentOS를 선택했습니다.맥북을 사용..

카테고리 없음 2024.09.19

[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] Component Scan과 Function을 사용한 빈 등록 방법

1. @ComponentScan @ComponentScan 애노테이션은 spring 3.1부터 도입됐으며 설정된 시작 지점부터 컴포넌트 클래스를 scanning하여 빈으로 등록해주는 역할을 한다. 컴포넌트 클래스는 다음 애노테이션이 붙은 클래스를 의미한다. @Component @Repository @Service @Controller @Configuration @ComponentScan의 가장 중요한 두 가지 속성은 component를 scan할 시작 지점을 설정하는 속성과 scan한 component 중 빈으로 등록하지 않을 클래스를 제외하는 필터 속성이다. 1) Scan 시작 지점 설정 - basePackages()와 basePackageClasses() basePackages()와 basePacka..

Programming/Spring 2022.05.29

[Spring] @Autowired 동작 원리 - BeanPostProcessor

@Autowired 애노테이션을 생성자, setter, 필드에 붙이기만 함으로써 간편하게 의존성을 주입받을 수 있는데 어떻게 그렇게 동작할수 있는지, 그 원리에 대해 알아보자. 결론부터 말하자면 @Autowired 애노테이션은 BeanPostProcessor라는 라이프 사이클 인터페이스의 구현체인 AutowiredAnnotationBeanPostProcessor에 의해 의존성 주입이 이루어진다. BeanPostProcessor는 빈의 initializing(초기화) 라이프 사이클 이전, 이후에 필요한 부가 작업을 할 수 있는 라이프 사이클 콜백이다. 그리고 BeanPostProcessor의 구현체인 AutowiredAnnotationBeanPostProcessor가 빈의 초기화 라이프 사이클 이전, 즉 ..

Programming/Spring 2022.05.29

[Spring] @Autowired의 다양한 사용 방법 - required, Primary, Qualifier

1. 의존객체 타입의 빈이 없는 경우 다음과 같이 BookService 클래스와 BookRepository 인터페이스가 있다. import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class BookService { BookRepository bookRepository; @Autowired public BookService(BookRepository bookRepository) { this.bookRepository = bookRepository; } } // public interface BookRepository { } Colore..

Programming/Spring 2022.05.29

[Spring] 빈을 설정하는 3가지 방법 - XML, JAVA, Component Scan

[Spring] 빈을 설정하는 3가지 방법 - XML, JAVA, Component Scan 새 프로젝트를 생성한다. 예제 코드에 필요한 의존성을 받기 위해 spring boot 프로젝트를 생성할 것이다. 참고로 예제 코드에는 이 의존성이 필요하다. Spring Initializr를 선택하고 Next를 클릭한다. Group, Artifact, Name을 입력하고 Next를 클릭한다. Group은 패키지명을 적어준다. (보통 도메인명을 뒤집어서..) Web - Spring Web을 넣고 Next를 클릭한다. Finish를 클릭해서 신규 프로젝트 생성을 완료한다. Spring boot 프로젝트를 만들었다. pom.xml을 열어보면 spring boot 2.2.5 버전으로 만들어졌음을 확인할 수 있다. 우측의..

Programming/Spring 2022.05.29

[Spring] 스프링 PSA

[Spring] 스프링 PSA 1. PSA(Portable Service Abstraction) Spring은 Spring Triangle이라고 부르는 세 가지 개념을 제공해준다. 각각 IoC, AOP, PSA를 일컫는다. Spring의 PetClinic 예제를 보면 서블릿 어플리케이션임에도 불구하고 서블릿이 전혀 존재하지 않는다. 단지 @Controller 애노테이션이 붙어있는 클래스에서 @GetMapping, @PostMapping과 같은 @RequestMapping 애노테이션을 사용해서 요청을 매핑한다. 실제로는 내부적으로 서블릿 기반으로 코드가 동작하지만 서블릿 기술은 추상화 계층에 의해 숨겨져 있는 것이다. 이렇게 추상화 계층을 사용해서 어떤 기술을 내부에 숨기고 개발자에게 편의성을 제공해주는 ..

Programming/Spring 2022.05.29