반응형

분류 전체보기 406

@RequestMapping 정규식, PathPattern 활용하기

@RequestMapping 정규식, PathPattern 활용하기 '@RequestMapping'에는 정규식과 PathPattern을 적용할 수 있는데요. 이런 기능이 있는 줄 모르고 있었는데, 간단하고 또 활용성 있는 기능인 것 같아서 정리하게 되었습니다. @RequestMapping 정규식 사용 방법 @RequestMapping(value = "{변수명:정규식}") public void request(@PathVariable String 변수명) { ... } @RequestMapping에서는 다음과 같이 '{변수명:정규식}' 형식을 통해 정규식을 적용할 수 있는데요. //영문 대소문자 //http://localhost:8080/request/TestValue @RequestMapping("/req..

OSIV(Open Session In View) 개념 정리 및 예시

OSIV(Open Session In View) 개념 정리 및 예시 spring.jpa.open-in-view=false application.properties(또는 yml) 파일의 내용을 항상 복사 붙여 넣기 식으로 사용하고, 또 동작에 문제가 없었기 때문에 'spring.jpa.open-in-view' 옵션이 어떤 역할을 하는지 모르는 상태로 계속 사용해 왔었는데요. 최근 프로젝트에서 해당 옵션 값으로 인해 문제가 발생하면서 'OSIV(Open Session In View)'가 무엇인지 찾아보고 정리하게 되었습니다. OSIV란? 먼저 JPA의 EntityManager가 Hibernate에서는 Session이라고 불리는데요. OSIV의 Session은 이 세션을 의미합니다. 때문에 사실 JPA에서는 ..

spring boot email 전송 (spring-boot-starter-mail, mailjet)

Spring Boot Email 전송하기 (+ Mailjet) 해당 포스팅은 스프링 부트에서 'spring-boot-starter-mail' 의존성을 사용하여 이메일을 전송하는 코드 예시입니다. 전체 코드는 포스팅 맨 하단에 github 주소를 링크해 두었으니 참고해 주시면 좋을 것 같습니다. (아래 이메일 발송 코드는 spring boot 3.1.4 환경에서 작업되었습니다.) SMTP SMTP는 'Simple Mail Transfer Protocol'의 약자로 인터넷을 통해 이메일을 보내고 받는 데 사용되는 통신 프로토콜인데요. SMTP 서버는 SMTP 프로토콜(Simple Mail Transfer Protocol)을 사용하여 메일을 보내는 메일 서버의 구성 요소를 말하며, 이메일 발신 작업에만 사용되..

Dart Class 기본적인 사용법 정리

Dart 언어 Class 기본적인 사용법 정리 Dart는 객체 지향 프로그래밍 언어이며, Flutter 역시 객체 지향 프레임워크인데요. 객체 지향 프로그래밍(OOP)에서는 특정 객체를 생성하기 위한 틀인 클래스(class)가 중요하기 때문에 'Dart 언어의 기본적인 Class 사용법'을 정리한 내용입니다. Class class Student { String name = "leo"; int grade = 3; final String birth = "920101"; void info() { print("name: $name, grade: $grade"); } } void main() { var student = Student(); //출력 가능 print(student.name); //수정 가능 stud..

Programming/Flutter 2023.09.24

Prometheus 설정 및 실행, 사용 방법(+ PromQL)

프로메테우스 Prometheus 설정 및 실행, PromQL 사용 방법 해당 포스팅은 'Spring Boot Actuator', 'Prometheus 개념 및 특징' 포스팅에서 이어지는 내용으로 prometheus.yml 파일을 통한 프로메테우스 설정 및 실행, 그리고 기본적인 PromQL 사용 방법에 대한 내용입니다. 메트릭을 가져오기 위해 actuator가 실행되어 있어야 하며, actuator에 대한 선행 작업이 필요하신 경우 아래 포스팅을 참고하시면 좋을 것 같습니다. 2023.09.09 - [Programming/Monitoring] - Spring Boot Actuator(+ Micrometor) 모니터링 시스템 구축 1편 (spring boot 프로젝트 기반 모니터링 시스템 구축 관련 포스팅..

세아제강지주, 앞으로의 주가 흐름이 궁금한 종목

탄탄한 실적과 해상풍력(세아윈드)까지 앞으로의 흐름이 궁금한 종목, 세아제강지주 기존 강관 사업으로 인한 탄탄한 실적과 더불어 해상풍력 관련주로도 관심을 받고 있는 '세아제강지주'에 대한 내용 정리입니다. 세아제강지주는 매출 및 영업이익이 큰 폭으로 증가하고 있으며, 2.47이라는 PER로 봤을 때도 상당히 저평가로 상당히 저평가로 여겨지는데요. 하지만 실제 매출이나 영업이익 대비 주주 환원이 좋지 않다고 생각되며, 이 외에도 지주사의 특징상 자산가치 대비 저평가를 받을 수밖에 없는 구조라고 생각되기 때문에, 적은 비중으로 보유하고 있는 종목이지만 투자로 인한 수익의 시점보다는 앞으로 어떻게 흘러갈지가 궁금한 종목이라 내용을 기록해 보게 되었습니다. * 종목에 대한 추천이 아니며, 투자에 대한 판단과 책..

Finance 2023.09.16

Prometheus 개념 및 특징 정리, 모니터링 시스템 구축 2편

모니터링 시스템 구축 2편, Prometheus 개념 및 특징 이전 포스팅을 통해 '모니터링의 개념과 목적' 그리고 spring-boot-actuator, Prometheus, Grafana를 통한 '모니터링 시스템 구축의 전체적인 흐름'에 대해서 살펴보았으며, 그중에서 'Actuator'와 'Micrometor'에 대해서 자세하게 알아봤습니다. 2023.09.09 - [Programming/Monitoring] - Spring Boot Actuator(+ Micrometor) 모니터링 시스템 구축 1편 이어지는 이번 포스팅에서는 actuator에서 만들어진 메트릭을 수집 및 통합하여 저장하는 역할을 하는 'Prometheus'의 개념과 특징에 대해 살펴보겠습니다. Prometheus 개념 및 특징 Pr..

Spring Boot Actuator(+ Micrometor) 모니터링 시스템 구축 1편

스프링 부트 모니터링 시스템 구축 - Spring Boot Actuator, Micrometor 해당 포스팅에서는 스프링 부트 프로젝트를 기반으로 하여 'spring-boot-actuator', 'Prometheus', 'Grafana'를 연동한 모니터링 시스템 구축에 대한 전체적인 흐름과 각각의 기능 그리고 실제 연동 방법에 대해서 살펴볼 예정입니다. 하나의 포스팅에서 다루기는 많은 내용이기 때문에 시리즈로 이어지며, 해당 포스팅에서는 Actuator에 대한 자세한 내용과 Micrometor의 역할에 대해 간단하게 다루고, 이어지는 포스팅에서 Prometheus와 Grafana에 대해 다뤄 볼 예정입니다. 모니터링(Monitoring) 시스템 '모니터링'이란 시스템 상의 상태 변화를 지속적으로 감시하는..

(Spring Boot) Filter를 통한 Request, Response Logging

Filter를 통한 Request, Response Logging 방식과 발생했던 문제 개발을 하다 보면 요청된 Request에 대한 로깅이 필요한 경우가 생기는데요. 해당 포스팅은 'Filter를 통해 Request, Response에 대한 로깅을 남기는 방법과 그 과정에서 발생했던 문제점'에 대해 기록한 내용입니다. *** Logging의 경우 Filter가 아닌 인터셉터(Interceptor) 또는 AOP(Aspect Oriented Programming)로도 처리가 가능한데요. 각각의 방식에 대한 용도와 장단점이 있겠지만, 여기서는 필터 체이닝 과정에서 ServletRequest, ServletResponse 객체에 대한 조작이 가능하다는 점과 스프링 영역 밖(Dispatcher Servlet 전..

Flutter 학습 전 Dart 언어의 특징 살펴보기

Dart 언어의 특징 살펴보기 해당 포스팅은 Flutter 학습 전 'Dart 언어에 대한 특징'을 살펴보며 정리한 내용입니다. Dart와 Flutter 'Dart'는 구글이 JavaScript를 대체하기 위해 2011년 개발한 웹 프로그래밍 언어인데요. '세련되지 않은 언어적 특성과 높은 러닝 커브', 'TypeScript 등 JavaScript를 대체할 수 있는 다른 언어의 등장', 'Dart로 이루어진 구현체가 없다는 점' 등의 이유로 인해 좋은 평가를 받지 못했습니다. (심지어 2018년에는 배울 필요가 없는 프로그래밍 언어 1위를 차지하기도 했었습니다.) 하지만 2017년 구글에서 클로스 플랫폼 앱 프레임워크인 'Flutter'를 발표한 이후 상황이 바뀌기 시작했습니다. 플러터의 가장 큰 장점은..

Programming/Flutter 2023.08.29
반응형