전체 글 171

Docker - linux, windows, mac

Docker: 컨테이너화 기술을 제공하는 오픈소스 플랫폼애플리케이션을 격리된 환경(컨테이너)에서 실행하고 배포할 수 있도록 해줍니다. 이를 통해 개발, 테스트, 배포 등의 과정에서 일관성을 보장할 수 있습니다. CI : Continuous Integration 지속적인 통합  /  CD : Continuous Deployment(Delivery) 지속적인 배포  요약Linux에서는 Docker가 네이티브로 실행됩니다.Windows에서는 Docker를 실행하기 위해 Docker Desktop과 함께 WSL2를 사용하여 리눅스 환경을 가상화하고 그 위에서 Docker를 실행합니다.macOS에서는 Docker가 LinuxKit이라는 가상 머신을 사용해 실행되며, Docker Desktop을 설치하면 별도의 설..

기타 2024.12.17

Git 과 Github란 무엇일까?

깃(Git)은 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 스냅샷 스트림 기반의 분산 버전 관리 시스템 또는 이러한 명령어입니다. 핵심은 1. 변경 사항 추적2. 여러 명의 사용자 조율3. 분산 버전 관리  -> 하나의 프로젝트에 여러 개발자가 참여할 때 소스 코르를 관리하는 시스템(명령어) 입니다. 깃허브(Github)는 깃을 사용하여 소스코드를 저장하는 웹 서비스입니다.    참고: https://git-scm.com/book/ko/v2https://ko.wikipedia.org/wiki/%EA%B9%83_(%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4)

git, github 2024.12.17

WSL, Git bash, Terminal

WSL (Windows Subsystem for Linux): Windows 환경에서 Linux 배포판을 실행할 수 있게 해주는 기능용도: Linux 명령어와 소프트웨어를 Windows에서 실행할 수 있도록 돕습니다.주요 특징:Ubuntu, Debian, CentOS 등 다양한 Linux 배포판을 설치해 사용할 수 있습니다.Windows와 Linux 파일 시스템 간에 원활하게 접근이 가능합니다.WSL2는 더 나은 성능과 가상 머신(VM) 기반의 기능을 제공합니다.활용 사례: 개발자들이 Linux 기반 소프트웨어를 Windows에서 실행, 테스트, 개발.  Git Bash: Windows에서 Git 명령어를 실행할 수 있게 해주는 터미널용도: Git 리포지토리 관리를 위한 명령줄 도구로 사용됩니다.주요 특..

기타 2024.12.17

InfluxDB, grafana

InfluxDB: 시계열 데이터베이스(Time Series Database)용도: 시간에 따라 변하는 데이터를 저장하고 관리하는 데 특화되어 있습니다.주요 특징:IoT 데이터, 모니터링 지표, 로그 데이터 등 시간이 중요한 데이터를 다룰 때 사용합니다.SQL과 유사한 Flux 또는 InfluxQL 쿼리 언어를 사용해 데이터를 분석합니다.높은 쓰기 성능과 효율적인 데이터 압축을 제공합니다.활용 사례: 서버 모니터링, 애플리케이션 성능 지표 수집, IoT 센서 데이터 관리.  Grafana: 오픈소스 데이터 시각화 및 모니터링 도구용도: 다양한 데이터베이스(예: InfluxDB, Prometheus, MySQL 등)의 데이터를 차트, 그래프, 대시보드로 시각화합니다.주요 특징:사용자 정의 대시보드를 생성해 ..

기타 2024.12.17

ArgumentResolver - HandlerMethodArgumentResolver 란 무엇일까?

HandlerMethodArgumentResolver :Strategy interface for resolving method parameters into argument values in the context of a given request.  메소드 매개변수를 확인하고, 이를 HTTP 요청을 바탕으로 인수 값 (argument value) 으로 변환하는 역할을 합니다. 즉 어떻게 '메서드 파라미터'를 적합한 '인수 값'으로 변환할지"를 결정하는 인터페이스입니다. 우리는 구현체를 만들어 사용하면 되겠습니다.  메서드 매개변수와 인수값이 무엇을 의미하는 걸까요 ?@GetMapping("/profile")public ResponseEntity getProfile(VerifiedMember verified..

@Scheduler 사용해보기(주기 마다 메서드 실행)

SpringBoot 에서 @Scheduler 에노테이션을 사용하면 주기마다 특정 메서드를 호출할 수 있습니다.    1. @EnableScheduling 에노테이션 추가하기@EnableScheduling@SpringBootApplicationpublic class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); }} 보통 @SpringBootApplication이 포함된 클래스에 추가합니다.   2. Bean 으로 등록된 클래스의 메서드에 @Scheduled 추가하기@Scheduled(fixedDelay = 1000L)public void sche..

Pageable 과 PagedModel

Pageable: Spring Data JPA 에서 제공하는 인터페이스로 페이징 및 정렬 정보를 전달하는데 사용됩니다. Pageable 객체는 @RequestParam을 자동으로 매핑해줍니다.  주요 특징페이지 번호(page): 0부터 시작하는 현재 페이지 번호페이지 크기(size): 한 페이지에 포함될 항목의 수정렬 기준(sort): 특정 컬럼을 기준으로 오름차순 또는 내림차순으로 정렬 일반적으로 @PagaableDefault 또는 클라이언트에서 전달된 page, size, sort 파라미터를 통해 Pageable 객체가 생성됩니다. @GetMapping("/trades")public ResponseEntity> getTrades( @PageableDefault(size = 10, sort = "..

DB, RDB, DBMS, RDBMS

DB: 컴퓨터에 저장되는 데이터 집합, 단순 데이터 모음이기 때문에 관리 시스템이 필요합니다. DBMS : DB 관리 시스템, DB와 유저, 프로그램 사이의 인터페이스 역할,  RDB: 관계형 데이터 베이스, 데이터들 사이의 관계성을 가지고 테이블 형태로 저장됩니다. RDBMS : RDB 관리 시스템, 다수의 테이블은 서로 '관계'를 맺을 수 있습니다. 테이블: 데이터를 저장하는 형식으로 행(tuple, record, row)과 열(attributes, colunm, 속성)이 있습니다.  엔티티와 연결지어 설명하겠습니다. 하나의 엔티티는 하나의 테이블과 맵핑됩니다. 엔티티의 필드는 로우를 나타냅니다. 엔티티의 인스턴스는 행을 이루고, 그 인스턴스의 필드값이 로우값으로 들어갑니다.    RDMBS 특징 1..

SQL 2024.12.09

51. Spring의 properties 파일을 이용한 에러 메시지 관리

Spring의 properties 파일을 이용한 에러 메시지 관리Spring에서는 properties 파일을 이용하여 에러 메시지를 관리할 수 있습니다.에러 메시지는 properties 파일에서 key-value 형태로 작성되며, 작성된 값은 messageSource 를 Bean으로 등록하여 사용할 수 있습니다.  resources/messages.properties.filebelow.min.my.price=최저 희망가는 최소 {0}원 이상으로 설정해 주세요.not.found.product=해당 상품이 존재하지 않습니다.  private final MessageSource messageSource;...@Transactionalpublic ProductResponseDto updateProduct(Lon..

50. ExceptionHandler, Spring의 Global 예외처리

에러라는 관심사를 분리해서 더 효율적으로 처리 할 수 있지 않을까 -> ExceptionHandler !!      서버가 응답을 보낼 때 start-line에 있는 응답 코드를 보겠습니다. 응답 헤더에는 API 요청에 대한 상태코드를 함께 보냅니다. 관련 포스팅 : ResponseEntity란 무엇일까 - https://tes1194.tistory.com/98HTTP란 무엇일까? - https://tes1194.tistory.com/86    @RestController@RequestMapping("/api")@RequiredArgsConstructorpublic class FolderController { private final FolderService folderService; @Pos..