Spring Boot 애플리케이션 실행 과정Spring Boot 애플리케이션은 일반적으로 public static void main(String[] args) 메서드에서 시작이 메서드 안에서 SpringApplication.run(…)을 호출하면 Spring Boot의 부트스트래핑(bootstrapping)이 이루어짐즉, Spring Boot가 애플리케이션 컨텍스트(ApplicationContext)를 만들고 필요한 설정과 초기화를 진행한 뒤 애플리케이션을 구동실행 과정1️⃣ SpringApplication 객체 생성SpringApplication.run(MyApplication.class, args)를 호출하면 먼저 SpringApplication 인스턴스가 생성이때 MyApp.class(메인 애플리케..
Spring Boot개요스프링 프레임워크(Spring Framework)를 보다 쉽게 사용할 수 있게 해주는 확장 프레임워크기존의 Spring 기반 개발에서 필요했던 복잡한 설정이나 반복 코드를 최소화하고, 관례에 따른 자동 설정과 편리한 스타터(Starter) 의존성을 제공하여 개발 생산성을 높여줌스프링 부트로 만든 애플리케이션은 독립 실행형(stand-alone) JAR로 패키징되어 별도의 WAS에 배포하지 않고도 바로 실행할 수 있으며(내장 서버 제공), 마이크로서비스 아키텍처에도 잘 맞음특징자동 설정(Auto Configuration)Spring Boot의 가장 큰 특징은 자동 설정애플리케이션에 포함된 의존성(JAR 라이브러리)들을 참고하여, 관련된 스프링 빈(bean)이나 설정을 자동으로 구성해..
마이크로서비스마이크로서비스(Microservices)는 하나의 애플리케이션을 작은 독립 서비스들의 모음으로 구성하는 아키텍처 스타일각 서비스는 자신만의 기능(비즈니스 기능)에 집중하며, 잘 정의된 API를 통해 다른 서비스와 통신이러한 서비스들은 별도 프로세스로 실행되고 독립적으로 배포될 수 있어, 대규모 애플리케이션이라도 부분적으로 변경 및 확장이 가능마이크로서비스는 보통 작은 팀이 각 서비스별로 담당하여 개발하고 운영하며, 서비스 간에는 느슨하게 결합되어 있음모놀리식과 다른점모놀리식 아키텍처에서는 모든 기능이 하나의 응용프로그램에 밀접하게 결합되어 단일 배포 단위로 운영이로 인해 일부 기능에 변경이 필요해도 애플리케이션 전체를 다시 빌드/배포해야 하고, 한 부분의 장애가 전체 시스템에 영향을 줄 수 ..
개념스케줄링이란 시간을 기반으로 작업을 예약하여 자동으로 실행하는 것 사람이 매번 수동으로 실행하지 않아도 정해진 스케줄에 따라 작업이 돌아가도록 함으로써 시스템 운영을 자동화할 수 있음스케줄링의 필요성정기적 배치 작업매일 자정에 데이터 백업을 뜨거나, 매주 통계 리포트를 생성하는 등 정해진 시간마다 수행해야 하는 배치 작업들이 있음스케줄링을 통해 이러한 작업을 자동으로 처리할 수 있음주기적 상태 점검 및 유지보수애플리케이션의 상태를 주기적으로 모니터링하거나 로그 정리, 캐시 갱신, 임시 파일 삭제 등의 유지보수 작업을 일정 간격마다 실행할 수 있음이벤트 알림/예약 업무특정 시간에 이메일이나 문자 알림을 발송하거나, 스케줄된 마케팅 캠페인을 실행하는 등 예약된 이벤트를 구현할 때도 스케줄링이 사용외부 연..
개념관점 지향 프로그래밍(AOP)은 애플리케이션 전반에 걸쳐 반복적으로 등장하는 공통 기능, 즉 횡단 관심사를 개별 모듈(Aspect)로 분리하여 관리하는 프로그래밍 패러다임예를 들어, 로깅, 보안, 트랜잭션 관리와 같은 기능은 여러 클래스에 중복해서 들어가기 쉬운데, AOP를 사용하면 이들 기능을 한 곳에 모아 정의한 후 필요한 곳에 자동으로 적용할 수 있음이렇게 함으로써 코드의 중복을 줄이고, 핵심 비즈니스 로직과 부가기능을 분리하여 모듈성과 유지보수성을 크게 향상시킬 수 있음장점관심사의 분리 및 모듈화횡단 관심사를 하나의 Aspect로 모아 관리하므로, 핵심 로직은 깔끔하게 유지되고 부가기능은 중앙집중적으로 관리중복 코드 감소 및 재사용성공통 기능을 한 번만 구현하여 여러 클래스에서 재사용할 수 있..
개요H2 Database는 자바 기반의 경량 관계형 데이터베이스로, 인메모리 모드와 파일 기반 모드를 모두 지원하여 개발 및 테스트 환경에서 빠른 데이터 액세스와 간편한 설정이 가능한 도구Spring Boot DevTools는 Spring Boot 애플리케이션 개발 시 자동 재시작, 라이브 릴로드, 개발용 설정 최적화 등 다양한 기능을 제공하여 개발 주기를 단축하고 생산성을 향상장점H2 Database빠른 시작과 경량성인메모리 모드 사용 시 매우 빠르게 데이터베이스를 시작할 수 있으며, 설정이 간단개발 및 테스트 최적화인메모리와 파일 기반 저장 방식을 선택할 수 있어 로컬 개발과 단위 테스트에 적합웹 콘솔 지원내장 웹 콘솔을 통해 SQL 실행, 데이터 확인, 스키마 관리 등을 손쉽게 수행할 수 있음Spr..
개요트랜잭션 관리는 데이터베이스 작업 시 여러 연산을 하나의 단위로 묶어 처리하여 데이터의 일관성과 무결성을 보장하는 중요한 개념Spring 프레임워크에서는 @Transactional 어노테이션을 통해 선언적 트랜잭션 관리를 제공하며, 이를 활용하면 코드의 간결성과 유지보수성을 높일 수 있음@Transactional의 역할 및 주요 기능역할데이터 무결성 보장비즈니스 로직 수행 중 예외 발생 시 전체 작업을 롤백하여 데이터의 일관성을 유지원자성 보장여러 작업을 하나의 트랜잭션으로 묶어, 모두 성공해야만 최종 커밋되도록 함주요 기능자동 커밋 및 롤백정상 실행 시 변경사항을 커밋하고, 오류 발생 시 자동으로 롤백전파(Propagation) 설정트랜잭션 간의 상호 작용 방식을 정의하며, 기존 트랜잭션을 이어받거..
개요JPA (Java Persistence API)는 자바 객체와 관계형 데이터베이스 간의 매핑을 지원하는 표준 ORM 인터페이스개발자는 객체 지향 방식으로 CRUD 작업을 수행하고, 엔티티의 생명주기와 상태를 영속성 컨텍스트를 통해 관리할 수 있음JPA는 다양한 구현체(Hibernate, EclipseLink 등)를 기반으로 동작하며, 데이터 정합성과 트랜잭션 관리, 캐싱 및 지연 로딩 등 다양한 기능을 제공장점생산성 향상객체와 테이블 간의 자동 매핑을 통해 반복적인 SQL 작성 없이 개발할 수 있음유지보수성 개선데이터베이스와 비즈니스 로직이 분리되어 요구사항 변경에 유연하게 대응할 수 있음표준화JPA 표준 인터페이스를 사용하므로 다양한 구현체 간 전환이 용이하며, 코드 재사용성과 확장성이 높음영속성 ..
개요MyBatis는 자바 애플리케이션에서 SQL 문장을 XML 파일이나 애너테이션으로 분리 관리하면서, 자바 객체와 데이터베이스 테이블 간의 매핑을 지원하여 데이터베이스와 애플리케이션 간의 데이터 저장, 조회, 갱신 등을 쉽게 처리할 수 있도록 도와주는 소프트웨어 도구( 경량 퍼시스턴스 프레임워크 )개발자는 직접 SQL을 작성하여 복잡한 쿼리 로직을 세밀하게 제어할 수 있고, 동시에 객체 지향적인 데이터 접근 방식을 구현할 수 있음장점직접적인 SQL 제어개발자가 SQL을 직접 작성하므로 쿼리 최적화 및 복잡한 로직 구현이 용이유연한 매핑 구조XML 매퍼 파일 또는 애너테이션을 통해 SQL과 자바 객체 간의 매핑을 명확하게 관리할 수 있어 재사용성과 유지보수가 용이낮은 학습 곡선내부 복잡한 매커니즘 대신 ..
개요JDBC Template은 Spring Framework에서 제공하는 데이터베이스 연동 유틸리티로, JDBC의 반복 코드를 크게 줄여주고 자원 관리 및 예외 처리를 내부적으로 처리SQL 실행, 결과 매핑, 트랜잭션 통합 등 다양한 기능을 제공하여 개발자가 비즈니스 로직에 집중할 수 있도록 도와줌데이터 소스와 커넥션 풀, 예외 전환, 배치 처리 등과도 유기적으로 연동되어, 실무에서 성능과 안정성을 동시에 고려할 수 있음주요 특징과 활용핵심 기능1. 반복 코드 제거SQL 실행, 리소스 해제, 예외 전환 등 JDBC의 반복적인 코드를 추상화하여 코드의 간결성과 유지보수성을 높임2. SQL 실행 및 업데이트단순한 쿼리 실행뿐 아니라, 업데이트, 삭제, 삽입 작업을 손쉽게 수행할 수 있음3. 결과 매핑 (Ro..
- Total
- Today
- Yesterday
- 백트래킹
- HTTP
- MSA
- 우선순위 큐
- 알고리즘
- db
- CS
- 탐색 알고리즘
- 데이터베이스
- 자바
- restful api
- 운영체제
- 자료구조
- 스프링
- 그리디 알고리즘
- Spring Boot
- Java
- 동적 프로그래밍
- Spring
- 우아한 테크코스
- 우테코
- 프리코스
- CPU 스케줄링
- TRIE
- 분할 정복
- devops
- 해시 테이블
- i/o모델
- k8
- B+Tree
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |